diff TaskManager/kernel/ppe/TaskManagerImpl.cc @ 519:5c76db2a07fa

continue..
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 20 Oct 2009 20:34:47 +0900
parents 125a72948e44
children 47b61865ea8c
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/TaskManagerImpl.cc	Fri Oct 16 17:57:17 2009 +0900
+++ b/TaskManager/kernel/ppe/TaskManagerImpl.cc	Tue Oct 20 20:34:47 2009 +0900
@@ -34,10 +34,10 @@
 
     schedTaskManager = new SchedTaskManager(this);
 
-    systask_start = create_task(SYSTASK_START);
-    systask_finish = create_task(SYSTASK_FINISH);
+    systask_start = create_task(SYSTASK_START,0,0,0,0);
+    systask_finish = create_task(SYSTASK_FINISH,0,0,0,0);
 
-    systask_start->spawn();
+    spawn(systask_start);
 
     // systask_finish で spawn すると
     //   systask_finish->wait_for(systask_finish);
@@ -46,6 +46,19 @@
     append_waitTask(systask_finish);
 }
 
+void *
+TaskManagerImpl::get_rbuf()
+{
+    return 0;
+}
+
+void *
+TaskManagerImpl::get_wbuf()
+{
+    return 0;
+}
+
+
 HTaskPtr
 TaskManagerImpl::create_task(int cmd)
 {
@@ -53,18 +66,35 @@
 
     new_task = htaskImpl->create(cmd);
     new_task->post_func = noaction;
-    new_task->mimpl = this;
+    new_task->rbuf = get_rbuf();
+    new_task->wbuf = get_wbuf();
 
     return new_task;
 }
 
+HTaskPtr
+TaskManagerImpl::create_task(int cmd, void *read, int rsize, void *write, int wsize)
+{
+    HTaskPtr new_task;
+
+    new_task = htaskImpl->create(cmd);
+    new_task->post_func = noaction;
+    new_task->rbuf = read;
+    new_task->rsize = rsize;
+    new_task->wbuf = write;
+    new_task->wsize = wsize;
+
+    return new_task;
+}
+
+
 /**
  * タスクを実行可能キューまたは待機キューへ追加する。
  * 依存関係が満たされていれば active, まだだったら wait へ。
  * task->spawn();
  */
 void
-TaskManagerImpl::spawn_task(HTaskPtr task)
+TaskManagerImpl::spawn(HTask *task)
 {
     // waiter // master
     // waitee // slave