diff TaskManager/kernel/schedule/SchedMail.cc @ 42:aa11038dbdc1

*** empty log message ***
author gongo
date Thu, 14 Feb 2008 18:27:37 +0900
parents
children 5c194c71eca8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/kernel/schedule/SchedMail.cc	Thu Feb 14 18:27:37 2008 +0900
@@ -0,0 +1,35 @@
+#include "SchedMail.h"
+#include "SchedTaskList.h"
+#include "SchedExit.h"
+#include "error.h"
+
+SchedMail::SchedMail(DmaManager *cn)
+{
+    connector = cn;
+}
+
+void
+SchedMail::read(void)
+{
+
+    __debug("[SchedMail:%s]\n", __FUNCTION__);
+    
+    params_addr = connector->mail_read();
+    
+    __debug("  params_addr = 0x%x\n", params_addr);
+}
+
+SchedTaskBase*
+SchedMail::next(Scheduler *m, SchedTaskBase *p)
+{
+    delete p;
+
+    __debug("[SchedMail:%s]\n", __FUNCTION__);
+
+    // if 文なくすには・・・関数ポインタ?
+    if ((int)params_addr == MY_SPE_COMMAND_EXIT) {
+	return new SchedExit();
+    } else {
+	return new SchedTaskList(params_addr, m->get_curListBuf(), connector);
+    }
+}