comparison 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
comparison
equal deleted inserted replaced
682:80b23718df18 683:9a6cb2439593
31 #define add_inData(addr, size) \ 31 #define add_inData(addr, size) \
32 add_inData_t((memaddr)(addr), (size)); 32 add_inData_t((memaddr)(addr), (size));
33 #define add_outData(addr, size) \ 33 #define add_outData(addr, size) \
34 add_outData_t((memaddr)(addr), (size)); 34 add_outData_t((memaddr)(addr), (size));
35 }; 35 };
36
36 #else 37 #else
38
39 class SchedTask;
40
37 class Task { 41 class Task {
38 public: // variables 42 public: // variables
39 43
40 int task_id; 44 int command;
41 int param_size; 45 int param_size;
42 int inData_size; 46 int inData_size;
43 int outData_size; 47 int outData_size;
44 void *data[] __attribute__ ((aligned (DEFAULT_ALIGNMENT))); 48 void *data[] __attribute__ ((aligned (DEFAULT_ALIGNMENT)));
45 // memaddr param[param_size]; 49 // memaddr param[param_size];
48 52
49 public: // functions 53 public: // functions
50 // int add_inData_t(memaddr addr, int size); 54 // int add_inData_t(memaddr addr, int size);
51 // int add_outData_t(memaddr addr, int size); 55 // int add_outData_t(memaddr addr, int size);
52 56
53 void print(SchedTask *s); 57 void print();
54 58
55 memaddr param(int index) { 59 memaddr param(int index) {
56 memaddr p = (memaddr)data->data; 60 memaddr p = (memaddr)data;
57 return p + sizeof(memaddr)*index; 61 return p + sizeof(memaddr)*index;
58 } 62 }
59 memaddr inData(int index) { 63 memaddr inData(int index) {
60 memaddr p = (memaddr)data 64 return param(param_size) + sizeof(ListElement)*index;
61 + (sizeof(memaddr)*index);
62 return p + sizeof(ListElement)*index;
63 } 65 }
64 memaddr outData(int index) { 66 memaddr outData(int index) {
65 memaddr p = inData(inData_size); 67 memaddr p = inData(inData_size);
66 return p + sizeof(ListEelement)* index; 68 return p + sizeof(ListElement)* index;
67 } 69 }
68 70
69 void set_param_length(int i) { param_size = i; } 71 void set_param_length(int i) { param_size = i; }
70 void set_inData_length(int length) { inData_size = length; } 72 void set_inData_length(int length) { inData_size = length; }
71 void set_outData_length(int length) { outData_size = length; } 73 void set_outData_length(int length) { outData_size = length; }
72 void set_inData_t( int index, memaddr addr, int size); 74 void set_inData_t( int index, memaddr addr, int size);
73 void set_outData_t(int index, memaddr addr, int size); 75 void set_outData_t(int index, memaddr addr, int size);
74 void set_task_id(int id) { task_id = id; } 76 void set_task_id(int id) { command = id; }
75 int set_param_t(int index, memaddr param) { 77 void set_param_t(int index, memaddr param) {
76 memaddr *p = (memaddr*)param(index); 78 memaddr *p = (memaddr*)this->param(index);
77 *p = param; 79 *p = param;
78 } 80 }
79 int size() { 81 int size() {
80 return outData(outData_size)-(memaddr)data; 82 return outData(outData_size)-(memaddr)data;
81 } 83 }
82 84
85 static int count_size(int params, int ins, int outs) {
86 int size = sizeof(memaddr)*params
87 + sizeof(ListElement)*ins
88 + sizeof(ListElement)*outs;
89 return size;
90 }
91
83 // #define add_param(param) add_param_t((memaddr)(param)) 92 // #define add_param(param) add_param_t((memaddr)(param))
84 #define set_param(index,param) set_param_t(index, (memaddr) (param)) 93 #define set_param(index,param) set_param_t(index, (memaddr) (param))
85 94
86 // #define add_inData(addr, size) \ 95 // #define add_inData(addr, size)
87 // add_inData_t((memaddr)(addr), (size)); 96 // add_inData_t((memaddr)(addr), (size));
88 // #define add_outData(addr, size) \ 97 // #define add_outData(addr, size)
89 // add_outData_t((memaddr)(addr), (size)); 98 // add_outData_t((memaddr)(addr), (size));
99
90 #define set_inData(index, addr, size) \ 100 #define set_inData(index, addr, size) \
91 set_inData_t(index, (memaddr)(addr), (size)); 101 set_inData_t(index, (memaddr)(addr), (size));
92 #define set_outData(index, addr, size) \ 102 #define set_outData(index, addr, size) \
93 set_outData_t(index, (memaddr)(addr), (size)); 103 set_outData_t(index, (memaddr)(addr), (size));
94 }; 104 };