comparison TaskManager/kernel/ppe/Task.h @ 681:b976bed4e46a

TaskArray structure
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 06 Dec 2009 16:41:10 +0900
parents 14d179ff1e9f
children 80b23718df18
comparison
equal deleted inserted replaced
680:af0942d42de0 681:b976bed4e46a
35 }; 35 };
36 #else 36 #else
37 class Task { 37 class Task {
38 public: // variables 38 public: // variables
39 39
40 BASE_NEW_DELETE(Task);
41
42 int size; 40 int size;
43 int param_size; 41 int param_size;
44 memaddr *param;
45 int inData_size; 42 int inData_size;
46 ListEelemnt *inData;
47 int outData_size; 43 int outData_size;
48 ListElement *outData; 44 void *data[] __attribute__ ((aligned (DEFAULT_ALIGNMENT)));
45 // memaddr param[param_size];
46 // ListEelemnt inData[inData_size];
47 // ListElement outData[outData_size];
49 48
50 public: // functions 49 public: // functions
51 int add_inData_t(memaddr addr, int size); 50 // int add_inData_t(memaddr addr, int size);
52 int add_outData_t(memaddr addr, int size); 51 // int add_outData_t(memaddr addr, int size);
53 int set_inData_length(int length); 52 memaddr param(int index) {
54 int set_inData_t(int index, memaddr addr, int size); 53 memaddr p = (memaddr)data->data;
55 int set_outData_length(int length); 54 return p + sizeof(memaddr)*index;
56 int set_outData_t(int index, memaddr addr, int size); 55 }
57 int add_data(ListData &list, memaddr addr, int size); 56 memaddr inData(int index) {
58 void set_param_length(int i); 57 memaddr p = (memaddr)data
59 int add_param_t(memaddr param); // obsolete. do not use. 58 + (sizeof(memaddr)*index);
60 int set_param_t(int index, memaddr param); 59 return p + sizeof(ListElement)*index;
61 int size() { return size; } 60 }
61 memaddr outData(int index) {
62 memaddr p = inData(inData_size);
63 return p + sizeof(ListEelement)* index;
64 }
62 65
63 #define add_param(param) add_param_t((memaddr)(param)) 66 void set_param_length(int i) { param_size = i; }
67 void set_inData_length(int length) { inData_size = length; }
68 void set_outData_length(int length) { outData_size = length; }
69 void set_inData_t( int index, memaddr addr, int size);
70 void set_outData_t(int index, memaddr addr, int size);
71 int set_param_t(int index, memaddr param) {
72 memaddr *p = (memaddr*)param(index);
73 *p = param;
74 }
75 int size() {
76 return outData(outData_size)-(memaddr)data;
77 }
78
79 // #define add_param(param) add_param_t((memaddr)(param))
64 #define set_param(index,param) set_param_t(index, (memaddr) (param)) 80 #define set_param(index,param) set_param_t(index, (memaddr) (param))
65 81
66 #define add_inData(addr, size) \ 82 // #define add_inData(addr, size) \
67 add_inData_t((memaddr)(addr), (size)); 83 // add_inData_t((memaddr)(addr), (size));
68 #define add_outData(addr, size) \ 84 // #define add_outData(addr, size) \
69 add_outData_t((memaddr)(addr), (size)); 85 // add_outData_t((memaddr)(addr), (size));
70 #define set_inData(index, addr, size) \ 86 #define set_inData(index, addr, size) \
71 set_inData_t(index, (memaddr)(addr), (size)); 87 set_inData_t(index, (memaddr)(addr), (size));
72 #define set_outData(index, addr, size) \ 88 #define set_outData(index, addr, size) \
73 set_outData_t(index, (memaddr)(addr), (size)); 89 set_outData_t(index, (memaddr)(addr), (size));
74 }; 90 };