42
|
1 #include "SchedMail.h"
|
|
2 #include "SchedTaskList.h"
|
|
3 #include "SchedExit.h"
|
|
4 #include "error.h"
|
|
5
|
|
6 SchedMail::SchedMail(DmaManager *cn)
|
|
7 {
|
|
8 connector = cn;
|
|
9 }
|
|
10
|
|
11 void
|
|
12 SchedMail::read(void)
|
|
13 {
|
|
14
|
|
15 __debug("[SchedMail:%s]\n", __FUNCTION__);
|
|
16
|
|
17 params_addr = connector->mail_read();
|
|
18
|
|
19 __debug(" params_addr = 0x%x\n", params_addr);
|
|
20 }
|
|
21
|
|
22 SchedTaskBase*
|
|
23 SchedMail::next(Scheduler *m, SchedTaskBase *p)
|
|
24 {
|
|
25 delete p;
|
|
26
|
|
27 __debug("[SchedMail:%s]\n", __FUNCTION__);
|
|
28
|
|
29 // if 文なくすには・・・関数ポインタ?
|
|
30 if ((int)params_addr == MY_SPE_COMMAND_EXIT) {
|
|
31 return new SchedExit();
|
|
32 } else {
|
|
33 return new SchedTaskList(params_addr, m->get_curListBuf(), connector);
|
|
34 }
|
|
35 }
|