annotate TaskManager/Cell/spe/SchedMail.cc @ 109:5c194c71eca8

Cerium cvs version
author gongo@gendarme.local
date Wed, 12 Nov 2008 17:39:33 +0900
parents 588ab5f0e659
children d734af296d38
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
94
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
1 #include "SchedMail.h"
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
2 #include "SchedTaskList.h"
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
3 #include "SchedExit.h"
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
4 #include "error.h"
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
5
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents: 94
diff changeset
6 SchedMail::SchedMail(Scheduler *sched)
94
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
7 {
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents: 94
diff changeset
8 scheduler = sched;
94
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
9 }
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
10
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
11 void
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
12 SchedMail::read(void)
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
13 {
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
14
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
15 __debug("[SchedMail:%s]\n", __FUNCTION__);
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
16
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents: 94
diff changeset
17 params_addr = scheduler->mail_read();
94
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
18
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
19 __debug(" params_addr = 0x%x\n", params_addr);
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
20 }
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
21
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
22 SchedTaskBase*
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
23 SchedMail::next(Scheduler *m, SchedTaskBase *p)
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
24 {
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
25 delete p;
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
26
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
27 __debug("[SchedMail:%s]\n", __FUNCTION__);
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
28 // if 文なくすには・・・関数ポインタ?
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
29 if ((int)params_addr == MY_SPE_COMMAND_EXIT) {
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
30 return new SchedExit();
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
31 } else {
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents: 94
diff changeset
32 return new SchedTaskList(params_addr, m);
94
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
33 }
588ab5f0e659 *** empty log message ***
gongo
parents:
diff changeset
34 }