Mercurial > hg > Members > kent > CbCTaskManager
view TaskManager.h @ 0:5b089096921f
first commit.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Dec 2009 21:57:05 +0900 |
parents | |
children | aef83aed7a07 |
line wrap: on
line source
#ifndef _TASKMANAGER_H #define _TASKMANAGER_H #include <stdlib.h> #include "List.h" typedef List TaskList; // inline functionのがいいか 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) enum cpu { ANY = 0, MAIN, SUB, }; /* C++CeriumでのTaskObjectにあたる */ typedef struct _taskclass { Taskrun run; char *name; enum cpu cputype; } TaskClass; /* C++CeriumでのHTaskにあたる */ typedef struct _Task { TaskClass taskclass; unsigned int id; // is it needed? void *rbuff; void *wbuff; size_t rsize; size_t wsize; TaskList waiter; // List of tasks waiting for me :-P TaskList waitee; // List of tasks keep me waiting :-( } Task; extern int max_taskclass; /* defined by USERs. */ extern TaskClass taskclasses[]; /* defined by USERs. */ #endif /* !_TASKMANAGER_H */