42
|
1 #ifndef INCLUDED_SCHED_TASK
|
|
2 #define INCLUDED_SCHED_TASK
|
|
3
|
|
4 #ifndef INCLUDED_SCHEDULER
|
|
5 # include "Scheduler.h"
|
|
6 #endif
|
|
7
|
|
8 #ifndef INCLUDED_SCHED_TASK_BASE
|
|
9 # include "SchedTaskBase.h"
|
|
10 #endif
|
|
11
|
|
12 class SchedTask : public SchedTaskBase {
|
|
13 public:
|
88
|
14 typedef SchedTask* (*TaskObject)(TaskListPtr, TaskPtr, void*, void*,
|
|
15 DmaManager*);
|
|
16
|
42
|
17 /* constructor */
|
|
18 SchedTask(TaskListPtr, TaskPtr, void*, void*, DmaManager*);
|
|
19
|
|
20 /* variables */
|
|
21 TaskListPtr list;
|
|
22 TaskPtr task;
|
|
23 void *readbuf;
|
|
24 void *writebuf;
|
|
25
|
|
26 DmaManager* connector;
|
|
27
|
|
28 // work area
|
|
29 // global variable 用とか
|
|
30 // 次の task に引き渡したり
|
|
31 // size : デフォルトで 4k
|
|
32 // ppuから教えてもらう? task に入れる
|
|
33 void (*func)(void *wbuf, void *rbuf);
|
|
34
|
|
35 /* functions */
|
|
36 SchedTaskBase* next(Scheduler *, SchedTaskBase *);
|
|
37
|
|
38 // override
|
|
39 void read(void);
|
|
40 void exec(void);
|
|
41 void write(void);
|
82
|
42
|
|
43 virtual int run(void* r, void *w) { return 0; }
|
42
|
44 };
|
|
45
|
|
46 #endif
|