Mercurial > hg > Members > kono > Cerium
diff 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 |
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/Task.h Sun Dec 06 18:13:46 2009 +0900 +++ b/TaskManager/kernel/ppe/Task.h Sun Dec 06 18:53:46 2009 +0900 @@ -33,11 +33,15 @@ #define add_outData(addr, size) \ add_outData_t((memaddr)(addr), (size)); }; + #else + +class SchedTask; + class Task { public: // variables - int task_id; + int command; int param_size; int inData_size; int outData_size; @@ -50,20 +54,18 @@ // int add_inData_t(memaddr addr, int size); // int add_outData_t(memaddr addr, int size); - void print(SchedTask *s); + void print(); memaddr param(int index) { - memaddr p = (memaddr)data->data; + memaddr p = (memaddr)data; return p + sizeof(memaddr)*index; } memaddr inData(int index) { - memaddr p = (memaddr)data - + (sizeof(memaddr)*index); - return p + sizeof(ListElement)*index; + return param(param_size) + sizeof(ListElement)*index; } memaddr outData(int index) { memaddr p = inData(inData_size); - return p + sizeof(ListEelement)* index; + return p + sizeof(ListElement)* index; } void set_param_length(int i) { param_size = i; } @@ -71,22 +73,30 @@ void set_outData_length(int length) { outData_size = length; } void set_inData_t( int index, memaddr addr, int size); void set_outData_t(int index, memaddr addr, int size); - void set_task_id(int id) { task_id = id; } - int set_param_t(int index, memaddr param) { - memaddr *p = (memaddr*)param(index); + void set_task_id(int id) { command = id; } + void set_param_t(int index, memaddr param) { + memaddr *p = (memaddr*)this->param(index); *p = param; } int size() { return outData(outData_size)-(memaddr)data; } + static int count_size(int params, int ins, int outs) { + int size = sizeof(memaddr)*params + + sizeof(ListElement)*ins + + sizeof(ListElement)*outs; + 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) \ +// #define add_inData(addr, size) // add_inData_t((memaddr)(addr), (size)); -// #define add_outData(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) \