Mercurial > hg > Members > kono > Cerium
annotate TaskManager/kernel/ppe/Task.h @ 679:14d179ff1e9f
adding Array Task.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 06 Dec 2009 11:33:09 +0900 |
parents | dbe137505f2e |
children | b976bed4e46a |
rev | line source |
---|---|
274 | 1 #ifndef INCLUDED_TASK |
2 #define INCLUDED_TASK | |
3 | |
307 | 4 #include "base.h" |
5 #include "types.h" | |
6 #include "ListData.h" | |
625
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
7 #include "SimpleTask.h" |
274 | 8 |
9 #define MAX_PARAMS 8 | |
10 | |
679 | 11 #ifndef SIMPLE_TASK |
625
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
12 class Task : public SimpleTask { |
274 | 13 public: // variables |
14 | |
15 BASE_NEW_DELETE(Task); | |
634 | 16 int param_size; // 4 byte |
17 memaddr param[MAX_PARAMS]; // 4*MAX_PARAMS byte | |
625
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
18 ListData inData __attribute__ ((aligned (DEFAULT_ALIGNMENT))); |
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
19 ListData outData __attribute__ ((aligned (DEFAULT_ALIGNMENT))); |
274 | 20 |
21 public: // functions | |
603
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
22 int add_inData_t(memaddr addr, int size); // unsigned int ではなく 64bit |
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
23 int add_outData_t(memaddr addr, int size); // unsigned int ではなく 64bit |
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
24 int add_data(ListData &list, memaddr addr, int size); |
679 | 25 int add_param_t(memaddr param); // obsolete. do not use. |
26 int set_param_t(int index, memaddr param); | |
625
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
27 |
679 | 28 #define add_param(param) add_param_t((memaddr)(param)) |
29 #define set_param(index,param) set_param_t(index, (memaddr) (param)) | |
274 | 30 |
31 #define add_inData(addr, size) \ | |
603
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
32 add_inData_t((memaddr)(addr), (size)); |
274 | 33 #define add_outData(addr, size) \ |
603
42c94f85c779
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
34 add_outData_t((memaddr)(addr), (size)); |
274 | 35 }; |
679 | 36 #else |
37 class Task { | |
38 public: // variables | |
39 | |
40 BASE_NEW_DELETE(Task); | |
41 | |
42 int size; | |
43 int param_size; | |
44 memaddr *param; | |
45 int inData_size; | |
46 ListEelemnt *inData; | |
47 int outData_size; | |
48 ListElement *outData; | |
49 | |
50 public: // functions | |
51 int add_inData_t(memaddr addr, int size); | |
52 int add_outData_t(memaddr addr, int size); | |
53 int set_inData_length(int length); | |
54 int set_inData_t(int index, memaddr addr, int size); | |
55 int set_outData_length(int length); | |
56 int set_outData_t(int index, memaddr addr, int size); | |
57 int add_data(ListData &list, memaddr addr, int size); | |
58 void set_param_length(int i); | |
59 int add_param_t(memaddr param); // obsolete. do not use. | |
60 int set_param_t(int index, memaddr param); | |
61 int size() { return size; } | |
62 | |
63 #define add_param(param) add_param_t((memaddr)(param)) | |
64 #define set_param(index,param) set_param_t(index, (memaddr) (param)) | |
65 | |
66 #define add_inData(addr, size) \ | |
67 add_inData_t((memaddr)(addr), (size)); | |
68 #define add_outData(addr, size) \ | |
69 add_outData_t((memaddr)(addr), (size)); | |
70 #define set_inData(index, addr, size) \ | |
71 set_inData_t(index, (memaddr)(addr), (size)); | |
72 #define set_outData(index, addr, size) \ | |
73 set_outData_t(index, (memaddr)(addr), (size)); | |
74 }; | |
75 #endif | |
274 | 76 |
77 typedef Task* TaskPtr; | |
78 | |
79 #endif |