diff TaskManager/kernel/ppe/Task.h @ 679:14d179ff1e9f

adding Array Task.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 06 Dec 2009 11:33:09 +0900
parents dbe137505f2e
children b976bed4e46a
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/Task.h	Sun Dec 06 10:23:19 2009 +0900
+++ b/TaskManager/kernel/ppe/Task.h	Sun Dec 06 11:33:09 2009 +0900
@@ -8,32 +8,71 @@
 
 #define MAX_PARAMS 8
 
+#ifndef SIMPLE_TASK
 class Task : public SimpleTask {
 public: // variables
 
     BASE_NEW_DELETE(Task);
-#ifndef SIMPLE_TASK
     int param_size;        // 4 byte
     memaddr param[MAX_PARAMS]; // 4*MAX_PARAMS byte
     ListData inData  __attribute__ ((aligned (DEFAULT_ALIGNMENT)));  
     ListData outData  __attribute__ ((aligned (DEFAULT_ALIGNMENT))); 
-#endif
 
 public: // functions
     int add_inData_t(memaddr addr, int size);  // unsigned int ではなく 64bit
     int add_outData_t(memaddr addr, int size); // unsigned int ではなく 64bit
     int add_data(ListData &list, memaddr addr, int size);
-    int add_param0(memaddr param);  // obsolete. do not use.
-    int set_param0(int index, memaddr param);
+    int add_param_t(memaddr param);  // obsolete. do not use.
+    int set_param_t(int index, memaddr param);
 
-#define add_param(param) add_param0((memaddr)(param))
-#define set_param(index,param) set_param0(index, (memaddr) (param))
+#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)			\
     add_inData_t((memaddr)(addr), (size));
 #define add_outData(addr, size)			\
     add_outData_t((memaddr)(addr), (size));
 };
+#else
+class Task {
+public: // variables
+
+    BASE_NEW_DELETE(Task);
+
+    int size;
+    int param_size;
+    memaddr *param;
+    int inData_size;
+    ListEelemnt *inData;
+    int outData_size;
+    ListElement *outData;
+
+public: // functions
+    int add_inData_t(memaddr addr, int size);  
+    int add_outData_t(memaddr addr, int size); 
+    int set_inData_length(int length);
+    int set_inData_t(int index, memaddr addr, int size);  
+    int set_outData_length(int length);
+    int set_outData_t(int index, memaddr addr, int size); 
+    int add_data(ListData &list, memaddr addr, int size);
+    void set_param_length(int i);
+    int add_param_t(memaddr param);  // obsolete. do not use.
+    int set_param_t(int index, memaddr param);
+    int size() { 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)			\
+    add_inData_t((memaddr)(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)			\
+    set_outData_t(index, (memaddr)(addr), (size));
+};
+#endif
 
 typedef Task* TaskPtr;