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