annotate TaskManager/kernel/ppe/HTask.h @ 1048:40cde8c1a6cd default tip

add ScaleXY (not for allExecute...)
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 08 Dec 2010 06:22:15 +0900
parents 58ff7b6fdbce
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
1 #ifndef INCLUDED_HTASK
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
2 #define INCLUDED_HTASK
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
3
307
7075842aa155 clean up include
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
4 #include "base.h"
7075842aa155 clean up include
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
5 #include "types.h"
7075842aa155 clean up include
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 293
diff changeset
6 #include "Task.h"
955
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
7 #include "TaskQueue.h"
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
8 #include "QueueInfo.h"
787
5df90e02e34f fix Bulk
yutaka@localhost.localdomain
parents: 714
diff changeset
9 #include <stdio.h>
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
10
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
11 class TaskManagerImpl;
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 499
diff changeset
12 class SchedTask;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 499
diff changeset
13
519
5c76db2a07fa continue..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 518
diff changeset
14 typedef void (*PostFunction)(SchedTask *s, void *read, void *write);
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
15
956
15026ebf7a17 unified queue worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 955
diff changeset
16 extern QueueInfo<TaskQueue>* taskQueuePool;
15026ebf7a17 unified queue worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 955
diff changeset
17
293
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
18 /*!
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
19 @class
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
20
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
21 @brief
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
22
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
23 Cerium の Task で、spawn() でキューに格納されて順次実行される。
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
24 cpu の指定があれば並列に実行される。
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
25 特定の Task を待ち合わせる事が可能。
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
26 Task の入出力は dma などで copy される。
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
27 */
683
9a6cb2439593 on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
28
9a6cb2439593 on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
29 #include "SimpleTask.h"
9a6cb2439593 on going...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 682
diff changeset
30
641
0692b08f1cd6 Regression on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 634
diff changeset
31 class HTask : public SimpleTask {
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
32 public:
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
33 BASE_NEW_DELETE(HTask);
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
34
955
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
35 QueueInfo<TaskQueue> *wait_me; // List of task waiting for me
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
36 QueueInfo<TaskQueue> *wait_i; // List of task for which I am waiting
518
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 507
diff changeset
37 PostFunction post_func;
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 499
diff changeset
38 void *post_arg1;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 499
diff changeset
39 void *post_arg2;
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
40 CPU_TYPE cpu_type;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
41 TaskManagerImpl *mimpl;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
42
498
cb5ecfc5aaa3 double linked HTaskInfo/HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
43 HTask *waiter;
cb5ecfc5aaa3 double linked HTaskInfo/HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
44 HTask *next;
cb5ecfc5aaa3 double linked HTaskInfo/HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
45 HTask *prev;
cb5ecfc5aaa3 double linked HTaskInfo/HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 480
diff changeset
46
941
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
47 struct {
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
48 unsigned no_auto_free:1; // bit 0 auto free flag (0 .. auto, 1 manual)
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
49 } flag;
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
50
684
458a1ad91427 Task Array generation worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 683
diff changeset
51 void spawn();
293
9f4f99d459aa add wait_for document
e065746@localhost.localdomain
parents: 109
diff changeset
52 void wait_for(HTask *);
397
a4f690f44842 delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents: 366
diff changeset
53 void set_cpu(CPU_TYPE type);
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 499
diff changeset
54 void set_post(PostFunction func, void *read, void *write);
700
d3afc8777daa fix fix ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
55 Task *create_task_array(int task_id, int num_task, int num_param, int num_inData, int num_outData);
d3afc8777daa fix fix ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
56 Task *next_task_array(int task_id, Task *t);
d3afc8777daa fix fix ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 684
diff changeset
57 void spawn_task_array(Task *t);
703
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
58
955
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
59 HTask *init(int cmd, memaddr rbuf, int rs, memaddr wbuf, int ws) {
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
60 init(cmd);
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
61 set_input(rbuf, rs);
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
62 set_output(wbuf, ws);
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
63 return this;
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
64 }
714
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
65
956
15026ebf7a17 unified queue worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 955
diff changeset
66 void initOnce() {
15026ebf7a17 unified queue worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 955
diff changeset
67 wait_me = new QueueInfo<TaskQueue>(taskQueuePool);
15026ebf7a17 unified queue worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 955
diff changeset
68 wait_i = new QueueInfo<TaskQueue>(taskQueuePool);
15026ebf7a17 unified queue worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 955
diff changeset
69 }
15026ebf7a17 unified queue worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 955
diff changeset
70
958
58ff7b6fdbce add freeOnce()
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 956
diff changeset
71 void freeOnce() {
58ff7b6fdbce add freeOnce()
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 956
diff changeset
72 delete wait_me;
58ff7b6fdbce add freeOnce()
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 956
diff changeset
73 delete wait_i;
58ff7b6fdbce add freeOnce()
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 956
diff changeset
74 }
58ff7b6fdbce add freeOnce()
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 956
diff changeset
75
713
f725c6455d19 remove SIMPLE_TASK conditional
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 703
diff changeset
76 private:
703
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
77
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
78 int param_index;
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
79 int in_index;
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
80 int out_index;
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
81
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
82 // compatibility
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
83 public: // functions
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
84 void add_inData_t(memaddr addr, int size) {
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
85 Task *t = (Task*)rbuf;
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
86 t->set_inData_t(in_index++, addr,size);
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
87 }
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
88 void add_outData_t(memaddr addr, int size) {
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
89 Task *t = (Task*)rbuf;
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
90 t->set_outData_t(out_index++, addr,size);
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
91 }
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
92 void set_inData_t(int index, memaddr addr, int size) {
949
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
93 #ifdef EARLY_TOUCH
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
94 if ((unsigned long)addr&0xf) {
787
5df90e02e34f fix Bulk
yutaka@localhost.localdomain
parents: 714
diff changeset
95 printf("inData is not aligned. command = %d, index = %d, addr = 0x%lx, size = %d\n",
5df90e02e34f fix Bulk
yutaka@localhost.localdomain
parents: 714
diff changeset
96 command, index, (unsigned long)addr, size);
5df90e02e34f fix Bulk
yutaka@localhost.localdomain
parents: 714
diff changeset
97 }
949
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
98 char *p = (char *)addr; char b = *p;
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
99 p = (char *)(addr+size-1); b += *p;
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
100 #endif
703
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
101 Task *t = (Task*)rbuf;
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
102 t->set_inData_t(index, addr,size);
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
103 }
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
104 void set_outData_t(int index, memaddr addr, int size) {
949
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
105 #ifdef EARLY_TOUCH
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
106 if ((unsigned long)addr&0xf) {
787
5df90e02e34f fix Bulk
yutaka@localhost.localdomain
parents: 714
diff changeset
107 printf("inData is not aligned. command = %d, index = %d, addr = 0x%lx, size = %d\n",
5df90e02e34f fix Bulk
yutaka@localhost.localdomain
parents: 714
diff changeset
108 command, index, (unsigned long)addr, size);
5df90e02e34f fix Bulk
yutaka@localhost.localdomain
parents: 714
diff changeset
109 }
949
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
110 char *p = (char *)addr; char b = *p;
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
111 p = (char *)(addr+size-1); b += *p;
86aea6affe6c word count size fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 945
diff changeset
112 #endif
703
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
113 Task *t = (Task*)rbuf;
788
821ab210cafa ugoita!!
yutaka@localhost.localdomain
parents: 787
diff changeset
114 t->set_outData_t(index, addr,size);
703
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
115 }
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
116 void add_param_t(memaddr param) {
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
117 Task *t = (Task*)rbuf;
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
118 t->set_param_t(param_index++, param);
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
119 }
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
120 void set_param_t(int index, memaddr param) {
945
a9c7784e5dae sort example fix ( simple task accepts one param and more compatible with old task)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 941
diff changeset
121 if (command==TaskArray1) {
a9c7784e5dae sort example fix ( simple task accepts one param and more compatible with old task)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 941
diff changeset
122 Task *t = (Task*)rbuf;
a9c7784e5dae sort example fix ( simple task accepts one param and more compatible with old task)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 941
diff changeset
123 t->set_param_t(index, param);
a9c7784e5dae sort example fix ( simple task accepts one param and more compatible with old task)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 941
diff changeset
124 } else {
a9c7784e5dae sort example fix ( simple task accepts one param and more compatible with old task)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 941
diff changeset
125 this->param = param;
a9c7784e5dae sort example fix ( simple task accepts one param and more compatible with old task)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 941
diff changeset
126 }
703
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
127 }
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
128
941
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
129 void no_auto_free() {
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
130 flag.no_auto_free = 1;
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
131 }
954
6d3c954e510a auto_free
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 949
diff changeset
132 void auto_free() {
6d3c954e510a auto_free
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 949
diff changeset
133 flag.no_auto_free = 0;
6d3c954e510a auto_free
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 949
diff changeset
134 }
941
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
135
955
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
136 void init() {
714
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
137 next = prev = NULL;
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
138 waiter = NULL;
955
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
139 }
714
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
140
955
9989dd7b9ac2 unify all QueueInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 954
diff changeset
141 void init(int cmd) {
714
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
142 command = cmd;
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
143 param_index = 0;
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
144 in_index = 0;
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
145 out_index = 0;
941
0c11c2fd7e63 add no_auto_free flag on HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 895
diff changeset
146 flag.no_auto_free = 0;
714
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
147 self = (memaddr) this;
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
148
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
149 post_func = NULL;
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
150 mimpl = NULL;
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
151 cpu_type = CPU_PPE;
c42cab5ad4c3 HTask fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 713
diff changeset
152 }
703
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
153 #define add_param(param) add_param_t((memaddr)(param))
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
154 #define set_param(index,param) set_param_t(index, (memaddr) (param))
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
155
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
156 #define add_inData(addr, size) \
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
157 add_inData_t((memaddr)(addr), (size));
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
158 #define add_outData(addr, size) \
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
159 add_outData_t((memaddr)(addr), (size));
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
160
61b59376aec5 compatibility
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 700
diff changeset
161
895
bed529c55eda add alignment of classes in SPU
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 788
diff changeset
162 } __attribute__ ((aligned (DEFAULT_ALIGNMENT)));
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
163
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
164 typedef HTask* HTaskPtr;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
165
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
166 #endif