annotate include/TaskManager/SchedTask.h @ 246:4a0300aa4a1b draft

little change CellTaskManagerImpl.cc
author e065746@localhost.localdomain
date Mon, 01 Jun 2009 11:40:04 +0900
parents c020ccff4627
children 768452fab95e cfd20d609ace
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
1 #ifndef INCLUDED_SCHED_TASK
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
2 #define INCLUDED_SCHED_TASK
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
3
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
4 #ifndef INCLUDED_BASE_H_
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
5 # include "base.h"
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
6 #endif
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
7
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
8 #ifndef INCLUDED_SCHEDULER
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
9 # include "Scheduler.h"
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
10 #endif
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
11
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
12 #ifndef INCLUDED_SCHED_TASK_BASE
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
13 # include "SchedTaskBase.h"
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
14 #endif
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
15
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
16 #ifndef INCLUDED_LIST_DATA
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
17 # include "ListData.h"
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
18 #endif
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
19
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
20 #ifndef INCLUDED_TASK_GROUP
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
21 # include "TaskGroup.h"
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
22 #endif
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
23
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
24
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
25 class SchedTask : public SchedTaskBase {
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
26 public:
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
27 /* constructor */
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
28 SchedTask(void);
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
29 ~SchedTask(void);
88
504899860e66 *** empty log message ***
gongo
parents: 82
diff changeset
30
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
31 BASE_NEW_DELETE(SchedTask);
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
32
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
33 /* variables */
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
34
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
35 // Task ¹Ԥ륹塼鼫
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
36 Scheduler *__scheduler;
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
37
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
38 // ߥ塼餬¹ԤƤ TaskList ȡΥб Task
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
39 TaskListPtr __list;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
40 TaskPtr __task;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
41
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
42 // read/write Ѥ ListData
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
43 ListDataPtr __inListData;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
44 ListDataPtr __outListData;
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
45
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
46 /**
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
47 * read ǡwrite ѤΥХåե
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
48 * readbuf ˤ ϿꤷϥǡäƤ롣
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
49 * writebuf ˥ǡǤȡ
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
50 * Ͽꤷ˽񤭹
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
51 */
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
52 void *__readbuf;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
53 void *__writebuf;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
54
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
55 // Task ΡTasklist Ǥΰ֡(task = &list[cur_index-1])
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
56 int __cur_index;
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
57
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
58 // 줿Υ롼
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
59 TaskGroup *__taskGroup;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
60
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
61 // Υ줿ο
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
62 int __renew_flag;
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
63
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
64 // Υ SPE 줿ݤ 1: Yes, 0: No
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
65 int __flag_renewTask;
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
66
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
67 // ᥤ¦줿Τ
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
68 // SPE 줿ΤˤäơǡΰѤäƤ롣
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
69 // Τ if (__flag_renewTask) ϢȯΤϤ褯ʤΤ
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
70 // ؿݥ󥿤ǻäƤ
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
71 void (SchedTask::*ex_init)(void);
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
72 void (SchedTask::*ex_read)(void);
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
73 void (SchedTask::*ex_exec)(void);
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
74 void (SchedTask::*ex_write)(void);
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
75 SchedTaskBase* (SchedTask::*ex_next)(void);
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
76
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
77 /* functions */
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
78 void __setRenew(void);
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
79 void __init__(TaskListPtr _list, TaskPtr _task, int index,
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
80 ListDataPtr rbuf, ListDataPtr wbuf, Scheduler* sc);
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
81
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
82 // override
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
83 void read(void);
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
84 void exec(void);
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
85 void write(void);
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
86 SchedTaskBase* next(Scheduler *, SchedTaskBase *);
82
14a5ca0be17e *** empty log message ***
gongo
parents: 42
diff changeset
87
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
88 // 桼Ѿ
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
89 // 줾Υб򵭽Ҥ
82
14a5ca0be17e *** empty log message ***
gongo
parents: 42
diff changeset
90 virtual int run(void* r, void *w) { return 0; }
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
91
212
gongo@localhost.localdomain
parents: 194
diff changeset
92 int (SchedTask::*run_func)(void* r, void *w);
gongo@localhost.localdomain
parents: 194
diff changeset
93
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
94 //--- System API ---
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
95 SchedTask* get_nextTask(TaskListPtr list);
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
96
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
97 /**
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
98 * PPE 줿Ф
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
99 * __init__, read,exec,write,next °(?)
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
100 */
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
101 void ex_init_normal(void);
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
102 void ex_read_normal(void);
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
103 void ex_exec_normal(void);
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
104 void ex_write_normal(void);
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
105 SchedTaskBase* ex_next_normal(void);
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
106
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
107 /**
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
108 * SPE 줿Ф
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
109 * __inti__, ead,exec,write,next °(?)
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
110 */
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
111 void ex_init_renew(void);
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
112 void ex_read_renew(void);
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
113 void ex_exec_renew(void);
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
114 void ex_write_renew(void);
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
115 SchedTaskBase* ex_next_renew(void);
180
e3b7776b1420 いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents: 109
diff changeset
116
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
117
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
118 //--- User API ---
194
gongo@localhost.localdomain
parents: 184
diff changeset
119 int get_cpuid(void);
gongo@localhost.localdomain
parents: 184
diff changeset
120
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
121 void* get_input(void *buff, int index);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
122 void* get_output(void *buff, int index);
182
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
123 uint32 get_inputAddr(int index);
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
124 uint32 get_outputAddr(int index);
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
125 int get_inputSize(int index);
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
126 int get_outputSize(int index);
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
127 int get_param(int index);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
128
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
129 TaskPtr create_task(int cmd);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
130 void wait_task(TaskPtr waitTask);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
131
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
132 void* global_alloc(int id, int size);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
133 void* global_get(int id);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
134 void global_free(int id);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
135
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
136 void mainMem_alloc(int id, int size);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
137 void mainMem_wait(void);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
138 void* mainMem_get(int id);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
139
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
140 void *allocate(int size);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
141
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
142 void dma_load(void *buf, uint32 addr, uint32 size, uint32 mask);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
143 void dma_store(void *buf,uint32 addr, uint32 size, uint32 mask);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
144 void dma_wait(uint32 mask);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
145
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
146 class STaskManager {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
147 public:
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
148 STaskManager(SchedTask *_t) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
149 outer = _t;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
150 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
151
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
152 BASE_NEW_DELETE(STaskManager);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
153
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
154 SchedTask *outer;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
155
194
gongo@localhost.localdomain
parents: 184
diff changeset
156 int get_cpuid(void) {
gongo@localhost.localdomain
parents: 184
diff changeset
157 return outer->get_cpuid();
gongo@localhost.localdomain
parents: 184
diff changeset
158 }
gongo@localhost.localdomain
parents: 184
diff changeset
159
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
160 void* get_input(int index) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
161 return outer->get_input(outer->__readbuf, index);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
162 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
163
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
164 void* get_output(int index) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
165 return outer->get_output(outer->__writebuf, index);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
166 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
167
182
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
168 uint32 get_inputAddr(int index) {
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
169 return outer->get_inputAddr(index);
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
170 }
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
171
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
172 uint32 get_outputAddr(int index) {
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
173 return outer->get_outputAddr(index);
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
174 }
8e9ada0c1ed0 add get_inputAddr, get_outputAddr
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 180
diff changeset
175
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
176 uint32 get_inputSize(int index) {
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
177 return outer->get_inputSize(index);
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
178 }
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
179
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
180 uint32 get_outputSize(int index) {
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
181 return outer->get_outputSize(index);
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
182 }
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
183
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
184 int get_param(int index) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
185 return outer->get_param(index);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
186 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
187
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
188 TaskPtr create_task(int cmd) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
189 return outer->create_task(cmd);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
190 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
191
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
192 void wait_task(TaskPtr waitTask) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
193 outer->wait_task(waitTask);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
194 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
195
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
196 void* global_alloc(int id, int size) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
197 return outer->global_alloc(id, size);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
198 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
199
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
200 void* global_get(int id) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
201 return outer->global_get(id);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
202 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
203
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
204 void global_free(int id) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
205 outer->global_free(id);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
206 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
207
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
208 void mainMem_alloc(int id, int size) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
209 outer->mainMem_alloc(id, size);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
210 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
211
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
212 void mainMem_wait(void) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
213 outer->mainMem_wait();
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
214 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
215
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
216 void* mainMem_get(int id) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
217 return outer->mainMem_get(id);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
218 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
219
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
220 void *allocate(int size) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
221 return outer->allocate(size);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
222 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
223
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
224 void dma_load(void *buf, uint32 addr, uint32 size, uint32 mask) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
225 outer->dma_load(buf, addr, size, mask);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
226 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
227
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
228 void dma_store(void *buf,uint32 addr, uint32 size, uint32 mask) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
229 outer->dma_store(buf, addr, size, mask);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
230 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
231
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
232 void dma_wait(uint32 mask) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
233 outer->dma_wait(mask);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
234 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
235 };
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
236
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
237 STaskManager *smanager;
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
238 };
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
239
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
240 const int SCHED_TASK_NORMAL = 0;
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
241 const int SCHED_TASK_RENEW = 1;
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
242
42
aa11038dbdc1 *** empty log message ***
gongo
parents:
diff changeset
243 #endif
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents: 105
diff changeset
244
184
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 182
diff changeset
245 extern SchedTask* createSchedTask(TaskPtr);