Mercurial > hg > Members > kent > CbCTaskManager
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 |