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:
|
|
14 /* constructor */
|
|
15 SchedTask(TaskListPtr, TaskPtr, void*, void*, DmaManager*);
|
|
16
|
|
17 /* variables */
|
|
18 TaskListPtr list;
|
|
19 TaskPtr task;
|
|
20 void *readbuf;
|
|
21 void *writebuf;
|
|
22
|
|
23 DmaManager* connector;
|
|
24
|
|
25 // work area
|
|
26 // global variable 用とか
|
|
27 // 次の task に引き渡したり
|
|
28 // size : デフォルトで 4k
|
|
29 // ppuから教えてもらう? task に入れる
|
|
30 void (*func)(void *wbuf, void *rbuf);
|
|
31
|
|
32 /* functions */
|
|
33 SchedTaskBase* next(Scheduler *, SchedTaskBase *);
|
|
34
|
|
35 // override
|
|
36 void read(void);
|
|
37 void exec(void);
|
|
38 void write(void);
|
|
39 };
|
|
40
|
|
41 #endif
|