comparison Task.h @ 2:803d6bf22e6d default tip

second commit. it's far to complete..
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Dec 2009 16:19:56 +0900
parents 5b089096921f
children
comparison
equal deleted inserted replaced
1:aef83aed7a07 2:803d6bf22e6d
1 #ifndef _TASK_H 1 #ifndef _TASK_H
2 #define _TASK_H 2 #define _TASK_H
3 // ユーザ側でもこのヘッダファイルをインクルードする
4 #include "List.h"
3 5
4 typedef __code (*Taskrun)(__code(*)(void*,void*,void*), void*, void*); 6 /* used by User'sTask. */
5 typedef __code (*Scheduler)(__code(*)(void*,void*,void*), void*, void*); 7 typedef __code (*Taskrun)(void*, void*, void*);
8 //typedef __code (*Scheduler)(TaskScheduler*,__code(*)(void*,void*,void*), void*, void*);
9 //typedef __code (*Taskrun)(_code(*)(void*,void*,void*), void*, void*);
10 //typedef __code (*Scheduler)(__code(*)(void*,void*,void*), void*, void*);
6 //typedef __code (*Scheduler)(Taskrun, void*, void*); 11 //typedef __code (*Scheduler)(Taskrun, void*, void*);
7 //typedef __code (*Taskrun)(Scheduler, void*, void*); 12 //typedef __code (*Taskrun)(Scheduler, void*, void*);
8 #define END (NULL) 13 #define END (NULL)
9 14
15 /* C++CeriumでのTaskObjectにあたる */
16 typedef struct _TaskType {
17 Taskrun code;
18 char *name;
19 } TaskType;
20
21
22 /* defined by user automatically. */
23 extern const int max_tasktype;
24 extern const TaskType tasktypes[];
25
10 enum cpu { 26 enum cpu {
11 ANY = 0, 27 ANY = 0, // not implemented yet.
12 MAIN, 28 MAIN,
13 SUB, 29 SUB,
14 }; 30 };
15 31
32 /* C++CeriumでのHTaskにあたるのかな */
33 typedef struct _Task {
34 char *name; // task name.
35 int typeid; // index of tasktypes array.
36 int id; // task identifier.
37
38 void *rbuff;
39 void *wbuff;
40 int rsize;
41 int wsize;
42 List *waiter; // List of tasks waiting for me :-P
43 List *waitee; // List of tasks keep me waiting :-(
44
45 enum cpu cpu;
46 } Task;
47
48 /* user interfaces. */
49 extern Task * createTask (int, char *);
50 extern void taskSetData (Task *, void *, int, void *, int);
51 extern void taskSetWait (Task *, Task *);
52
53 extern __code (*scheduler)(void*,Taskrun,void*,void*);
54
16 #endif /* _TASK_H */ 55 #endif /* _TASK_H */
56