Mercurial > hg > Members > kono > Cerium
annotate TaskManager/kernel/ppe/Task.h @ 639:70c5c2d2eb24
fix
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 19 Nov 2009 18:45:24 +0900 |
parents | 0558abba673c |
children | dbe137505f2e |
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 | |
625
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
11 class Task : public SimpleTask { |
274 | 12 public: // variables |
13 | |
14 BASE_NEW_DELETE(Task); | |
634 | 15 int param_size; // 4 byte |
16 memaddr param[MAX_PARAMS]; // 4*MAX_PARAMS byte | |
274 | 17 |
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); |
625
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
25 int add_param0(memaddr param); // obsolete. do not use. |
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
26 int set_param0(int index, memaddr param); |
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
27 |
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
28 #define add_param(param) add_param0((memaddr)(param)) |
60aa3f241b10
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
615
diff
changeset
|
29 #define set_param(index,param) set_param0(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 }; |
36 | |
37 typedef Task* TaskPtr; | |
38 | |
39 #endif |