diff TaskManager/kernel/ppe/Task.h @ 683:9a6cb2439593

on going...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 06 Dec 2009 18:53:46 +0900
parents 80b23718df18
children 458a1ad91427
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/Task.h	Sun Dec 06 18:13:46 2009 +0900
+++ b/TaskManager/kernel/ppe/Task.h	Sun Dec 06 18:53:46 2009 +0900
@@ -33,11 +33,15 @@
 #define add_outData(addr, size)			\
     add_outData_t((memaddr)(addr), (size));
 };
+
 #else
+
+class SchedTask;
+
 class Task {
 public: // variables
 
-    int task_id;
+    int command;
     int param_size;
     int inData_size;
     int outData_size;
@@ -50,20 +54,18 @@
     // int add_inData_t(memaddr addr, int size);  
     // int add_outData_t(memaddr addr, int size); 
 
-    void print(SchedTask *s);
+    void print();
 
     memaddr param(int index) {
-	memaddr p = (memaddr)data->data;
+	memaddr p = (memaddr)data;
 	return p + sizeof(memaddr)*index;
     }
     memaddr inData(int index) {
-	memaddr p = (memaddr)data
-	     + (sizeof(memaddr)*index);
-	return p + sizeof(ListElement)*index;
+	return param(param_size) + sizeof(ListElement)*index;
     }
     memaddr outData(int index) {
 	memaddr p = inData(inData_size);
-	return p + sizeof(ListEelement)* index;
+	return p + sizeof(ListElement)* index;
     }
 
     void set_param_length(int i) { param_size = i; }
@@ -71,22 +73,30 @@
     void set_outData_length(int length) { outData_size = length; }
     void set_inData_t( int index, memaddr addr, int size); 
     void set_outData_t(int index, memaddr addr, int size); 
-    void set_task_id(int id) { task_id = id; }
-    int set_param_t(int index, memaddr param) {
-	memaddr *p = (memaddr*)param(index);
+    void set_task_id(int id) { command = id; }
+    void set_param_t(int index, memaddr param) {
+	memaddr *p = (memaddr*)this->param(index);
 	*p = param;
     }
     int size() {
 	return outData(outData_size)-(memaddr)data;
     }
 
+    static int count_size(int params, int ins, int outs) {
+	int size = sizeof(memaddr)*params
+           + sizeof(ListElement)*ins
+           + sizeof(ListElement)*outs;
+	return size;
+    }
+
 // #define add_param(param) add_param_t((memaddr)(param))
 #define set_param(index,param) set_param_t(index, (memaddr) (param))
 
-// #define add_inData(addr, size)			\
+// #define add_inData(addr, size)			
 //     add_inData_t((memaddr)(addr), (size));
-// #define add_outData(addr, size)			\
+// #define add_outData(addr, size)			
 //     add_outData_t((memaddr)(addr), (size));
+
 #define set_inData(index, addr, size)			\
     set_inData_t(index, (memaddr)(addr), (size));
 #define set_outData(index, addr, size)			\