diff TaskManager/kernel/ppe/TaskManagerImpl.cc @ 897:ad95be23c794

add return address in SimpleTask for debugging.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 16 Jul 2010 19:00:22 +0900
parents e2af25174a05
children 9cfac2e8fc2e
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/TaskManagerImpl.cc	Fri Jul 16 17:23:49 2010 +0900
+++ b/TaskManager/kernel/ppe/TaskManagerImpl.cc	Fri Jul 16 19:00:22 2010 +0900
@@ -36,8 +36,8 @@
 TaskManagerImpl::systask_init()
 {
     systask_register();
-    systask_start = create_task(StartTask,0,0,0,0);
-    systask_finish = create_task(FinishTask,0,0,0,0);
+    systask_start = create_task(StartTask,0,0,0,0,__builtin_return_address(0));
+    systask_finish = create_task(FinishTask,0,0,0,0,__builtin_return_address(0));
 
     systask_start->spawn();
 
@@ -49,19 +49,19 @@
 }
 
 HTaskPtr
-TaskManagerImpl::create_task(int cmd,memaddr rbuf, long r_size, memaddr wbuf, long w_size)
-{
+TaskManagerImpl::create_task(int cmd,memaddr rbuf, long r_size, memaddr wbuf, long w_size, void *from) {
     HTaskPtr new_task;
 
     new_task = htaskImpl->create(cmd, rbuf, r_size, wbuf, w_size);
     new_task->post_func = noaction;
     new_task->mimpl = this;
+    new_task->from = (memaddr)from;
 
     return new_task;
 }
 
 HTaskPtr
-TaskManagerImpl::create_task(int cmd)
+TaskManagerImpl::create_task(int cmd,void *from)
 {
     HTaskPtr new_task;
 
@@ -72,14 +72,15 @@
     new_task->create_task_array(cmd,1,8,8,8);
     // rbuf, r_size were set
     new_task->command = TaskArray1;
+    new_task->from = (memaddr)from;
 
     return new_task;
 }
 
 HTaskPtr
-TaskManagerImpl::create_task_array(int id, int num_task, int num_param, int num_inData, int num_outData)
+TaskManagerImpl::create_task_array(int id, int num_task, int num_param, int num_inData, int num_outData, void *from)
 {
-    HTaskPtr ta = create_task(TaskArray,0,0,0,0);
+    HTaskPtr ta = create_task(TaskArray,0,0,0,0, from);
     ta->create_task_array(id, num_task, num_param, num_inData, num_outData) ;
     return ta;
 }