Mercurial > hg > Members > kono > Cerium
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 }; |