Mercurial > hg > Members > kent > CbCTaskManager
view 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 |
line wrap: on
line source
#ifndef _TASK_H #define _TASK_H // ユーザ側でもこのヘッダファイルをインクルードする #include "List.h" /* used by User'sTask. */ typedef __code (*Taskrun)(void*, void*, void*); //typedef __code (*Scheduler)(TaskScheduler*,__code(*)(void*,void*,void*), void*, void*); //typedef __code (*Taskrun)(_code(*)(void*,void*,void*), void*, void*); //typedef __code (*Scheduler)(__code(*)(void*,void*,void*), void*, void*); //typedef __code (*Scheduler)(Taskrun, void*, void*); //typedef __code (*Taskrun)(Scheduler, void*, void*); #define END (NULL) /* C++CeriumでのTaskObjectにあたる */ typedef struct _TaskType { Taskrun code; char *name; } TaskType; /* defined by user automatically. */ extern const int max_tasktype; extern const TaskType tasktypes[]; enum cpu { ANY = 0, // not implemented yet. MAIN, SUB, }; /* C++CeriumでのHTaskにあたるのかな */ typedef struct _Task { char *name; // task name. int typeid; // index of tasktypes array. int id; // task identifier. void *rbuff; void *wbuff; int rsize; int wsize; List *waiter; // List of tasks waiting for me :-P List *waitee; // List of tasks keep me waiting :-( enum cpu cpu; } Task; /* user interfaces. */ extern Task * createTask (int, char *); extern void taskSetData (Task *, void *, int, void *, int); extern void taskSetWait (Task *, Task *); extern __code (*scheduler)(void*,Taskrun,void*,void*); #endif /* _TASK_H */