Mercurial > hg > Game > Cerium
annotate TaskManager/kernel/schedule/Scheduler.h @ 708:d41c62201b1e draft
cleean up SchedTasks.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 15 Dec 2009 10:49:30 +0900 |
parents | 72b2da99e875 |
children | 97adb3fe85c6 |
rev | line source |
---|---|
42 | 1 #ifndef INCLUDED_SCHEDULER |
2 #define INCLUDED_SCHEDULER | |
3 | |
621 | 4 #include <stdlib.h> |
301
7f991471d43f
remove deprecated source. not work.
tkaito@localhost.localdomain
parents:
298
diff
changeset
|
5 #include "base.h" |
7f991471d43f
remove deprecated source. not work.
tkaito@localhost.localdomain
parents:
298
diff
changeset
|
6 #include "TaskList.h" |
7f991471d43f
remove deprecated source. not work.
tkaito@localhost.localdomain
parents:
298
diff
changeset
|
7 #include "ListData.h" |
7f991471d43f
remove deprecated source. not work.
tkaito@localhost.localdomain
parents:
298
diff
changeset
|
8 #include "DmaManager.h" |
7f991471d43f
remove deprecated source. not work.
tkaito@localhost.localdomain
parents:
298
diff
changeset
|
9 #include "SchedTaskBase.h" |
373 | 10 #include "MemList.h" |
387
b6fce69839b5
no compile error but not worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
373
diff
changeset
|
11 #include "MemHash.h" |
619 | 12 |
109 | 13 |
14 #define MAX_USER_TASK 32 | |
15 #define MAX_SYSTEM_TASK 2 | |
16 #define MAX_TASK_OBJECT MAX_USER_TASK + MAX_SYSTEM_TASK | |
17 #define MAX_GLOBAL_AREA 32 | |
18 #define MAX_MAINMEM_AREA 32 | |
19 | |
42 | 20 class SchedTaskBase; |
109 | 21 class SchedTask; |
184 | 22 class SchedTaskList; |
621 | 23 class TaskManagerImpl; |
24 class HTask; | |
42 | 25 |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
26 typedef int (*TaskObjectRun)(SchedTask* smanager, void* r, void *w); |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
27 |
698
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
28 // Task Object Table |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
29 // this is named TaskObjectRun but it is not an object. |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
30 // It is a pointer to an object creation function |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
31 // 大きいので、SPEには置かない方が本当は良い... |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
32 // get_segment で取って来るのが、おそらくは正しい。 |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
33 typedef struct { |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
34 TaskObjectRun run; |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
35 memaddr location; // location address in a.out |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
36 memaddr end; |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
37 uint32 entry_offset; // offset for create(); |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
38 MemorySegment *segment; |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
39 void (*load)(Scheduler *,int); |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
40 void (*wait)(Scheduler *,int); |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
41 } TaskObject, *TaskObjectPtr; |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
42 |
621 | 43 extern "C" { |
44 extern long random(); | |
45 } | |
46 | |
42 | 47 class Scheduler { |
48 public: | |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
49 virtual ~Scheduler(); |
109 | 50 |
51 BASE_NEW_DELETE(Scheduler); | |
42 | 52 |
53 /* variables */ | |
194 | 54 int id; |
387
b6fce69839b5
no compile error but not worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
373
diff
changeset
|
55 MemHash *hash; |
109 | 56 |
57 // double buffering | |
58 TaskListPtr buff_taskList[2]; | |
59 | |
60 int buffFlag_taskList; | |
61 | |
62 /* GlobalMemoryList */ | |
631
30dd8a3deb4a
Cell 64 bit tried, but not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
626
diff
changeset
|
63 /* global among Tasks in the same CPU */ |
109 | 64 void* globalList[MAX_GLOBAL_AREA]; |
65 | |
66 /* MainMemory Allocate Command List */ | |
631
30dd8a3deb4a
Cell 64 bit tried, but not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
626
diff
changeset
|
67 memaddr mainMemList[MAX_MAINMEM_AREA]; |
109 | 68 |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
69 /* Code Area */ |
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
70 MemList *code_segment_pool; |
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
71 |
42 | 72 DmaManager* connector; |
619 | 73 TaskManagerImpl* manager; |
109 | 74 |
42 | 75 |
76 /* functions */ | |
635
c56f6847fb87
SimpleTask worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
634
diff
changeset
|
77 void init(TaskManagerImpl *m); |
697 | 78 void run(SchedTaskBase* task1); |
79 | |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
80 virtual void init_impl() {}; |
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
81 void finish(); |
42 | 82 |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
83 TaskListPtr get_curListBuf(); |
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
84 TaskListPtr get_renewListBuf(); |
109 | 85 |
187 | 86 void set_backupTaskList(TaskListPtr cur_taskList); |
87 void set_backupTaskListIndex(int cur_index); | |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
88 SchedTaskList* get_nextRenewTaskList(); |
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
89 TaskListPtr get_backupTaskList(); |
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
90 int get_backupTaskListIndex(); |
184 | 91 |
109 | 92 |
93 /* GlobalMemory */ | |
94 void* global_alloc(int id, int size); | |
95 void* global_get(int id); | |
373 | 96 void global_set(int id, void *addr); |
109 | 97 void global_free(int id); |
373 | 98 MemList* createMemList(int size, int count); |
467
839e34d0cc3c
fix all examples. test_render is not working now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
464
diff
changeset
|
99 void free_(void *p) { free(p); } |
109 | 100 |
101 virtual void mainMem_alloc(int id, int size) {}; | |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
102 virtual void mainMem_wait() {}; |
631
30dd8a3deb4a
Cell 64 bit tried, but not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
626
diff
changeset
|
103 memaddr mainMem_get(int id); |
109 | 104 |
389 | 105 MemorySegment * get_segment(memaddr addr, MemList *m); |
437 | 106 MemorySegment * get_segment(memaddr addr, MemList *m, int size); |
442 | 107 void allocate_code_segment(int size, int count); |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
108 |
389 | 109 virtual uint32 get_tag(); |
110 void put_segment(MemorySegment *s); | |
111 void wait_segment(MemorySegment *s); | |
387
b6fce69839b5
no compile error but not worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
373
diff
changeset
|
112 |
109 | 113 /* DMA Transfer */ |
625
94d82f2c842f
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
621
diff
changeset
|
114 void dma_load(void *buf, memaddr addr, uint32 size, uint32 mask); |
94d82f2c842f
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
621
diff
changeset
|
115 void dma_store(void *buf,memaddr addr, uint32 size, uint32 mask); |
109 | 116 void dma_wait(uint32 mask); |
255 | 117 void show_dma_wait() { connector->show_dma_wait(id); }; |
672 | 118 void start_profile() { connector->start_profile(); }; |
625
94d82f2c842f
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
621
diff
changeset
|
119 void mail_write(memaddr data); |
94d82f2c842f
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
621
diff
changeset
|
120 memaddr mail_read(); |
109 | 121 void dma_loadList(ListDataPtr list, void *, uint32 mask); |
122 void dma_storeList(ListDataPtr list, void *, uint32 mask); | |
619 | 123 |
124 /* manager */ | |
125 | |
621 | 126 void set_manager(TaskManagerImpl *m) { manager = m; }; |
619 | 127 |
128 // user | |
621 | 129 HTask * create_task(int cmd); |
634 | 130 HTask * create_task(int cmd, memaddr r, long rs, memaddr w, long ws); |
131 | |
621 | 132 void set_task_depend(HTask * master, HTask * slave) ; |
133 void spawn_task(HTask * t) ; | |
134 void set_task_cpu(HTask * t, CPU_TYPE cpu) ; | |
635
c56f6847fb87
SimpleTask worked on Mac OS X
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
634
diff
changeset
|
135 void *allocate(int size); |
621 | 136 void* allocate(int size,int align) ; |
137 long get_random() ; | |
138 Scheduler *get_scheduler() { return this; }; | |
619 | 139 |
140 | |
42 | 141 }; |
142 | |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
143 extern void register_task(int cmd, TaskObjectRun run); |
430
4d4443138484
code loading (on going...)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
426
diff
changeset
|
144 extern void register_dynamic_task(int cmd, |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
145 memaddr start, int size, TaskObjectRun run, |
439 | 146 int entry_offset); |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
147 |
441 | 148 struct tbl { |
149 unsigned int vma; | |
150 unsigned int size; | |
151 unsigned int file_offset; | |
152 unsigned int buf; | |
153 }; | |
154 | |
698
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
155 extern TaskObject task_list[MAX_TASK_OBJECT]; |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
156 |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
157 #ifdef SIMPLE_TASK |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
158 inline void |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
159 loadSchedTask(Scheduler *scheduler,int command) |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
160 { |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
161 // fprintf(stderr,"loadSchedTask %d\n",task->command); |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
162 task_list[command].load(scheduler,command); |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
163 } |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
164 #else |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
165 inline void |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
166 loadSchedTask(Scheduler *scheduler,int command) |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
167 { |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
168 // fprintf(stderr,"loadSchedTask %d\n",task->command); |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
169 task_list[command].load(scheduler,command); |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
170 } |
42 | 171 #endif |
109 | 172 |
698
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
173 #endif |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
174 |
72b2da99e875
no compile error for Task Array
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
697
diff
changeset
|
175 |
109 | 176 |
373 | 177 #define SchedConstructor(str) \ |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
178 str() {} \ |
373 | 179 BASE_NEW_DELETE(str) \ |
109 | 180 |
468
796f72cb21d9
test_nogl on Mac OS X worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
467
diff
changeset
|
181 #define SchedDefineTask(str) SchedDefineTask1(str,run) \ |
796f72cb21d9
test_nogl on Mac OS X worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
467
diff
changeset
|
182 |
796f72cb21d9
test_nogl on Mac OS X worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
467
diff
changeset
|
183 #define SchedDefineTask1(str,run) \ |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
184 static int run(SchedTask *smanager, void *rbuf, void *wbuf); \ |
460 | 185 extern "C" { \ |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
186 int runTask_##str(SchedTask *smanager, void *rbuf, void *wbuf) \ |
373 | 187 { \ |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
188 return run(smanager, rbuf, wbuf); \ |
460 | 189 } \ |
109 | 190 } |
191 | |
373 | 192 #define SchedExternTask(str) \ |
460 | 193 extern "C" { \ |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
194 extern int runTask_##str(SchedTask *manager, void *rbuf, void *wbuf) ; \ |
460 | 195 } |
109 | 196 |
373 | 197 #define SchedRegisterTask(cmd, str) \ |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
198 register_task(cmd, runTask_##str); |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
199 |
615
184d6d3f0cd9
remove uncessary Task Name definision
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
501
diff
changeset
|
200 #define SchedRegister(str) \ |
184d6d3f0cd9
remove uncessary Task Name definision
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
501
diff
changeset
|
201 register_task(str, runTask_##str); |
184d6d3f0cd9
remove uncessary Task Name definision
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
501
diff
changeset
|
202 |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
203 #define SchedDefineDynamicTask(str,segment) \ |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
204 SchedDefineTask(str) |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
205 |
437 | 206 #ifndef NO_OVERLAY |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
207 #define SchedExternDynamicTask(str,segment) \ |
441 | 208 extern "C" { \ |
209 extern unsigned long long _EAR_; \ | |
210 extern struct tbl _ovly_table[]; \ | |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
211 extern int runTask_##str(SchedTask *manager, void *rbuf, void *wbuf) ; \ |
441 | 212 } |
437 | 213 #else |
439 | 214 #define SchedExternDynamicTask(str,segment) SchedExternTask(str) |
437 | 215 #endif |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
216 |
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
217 |
437 | 218 #ifndef NO_OVERLAY |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
219 #define SchedRegisterDynamicTask(cmd, str, segment) \ |
626
0e91ddaad798
64bit mode compatibility on Cell
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
625
diff
changeset
|
220 register_dynamic_task(cmd, (memaddr)(_EAR_+_ovly_table[segment].file_offset), \ |
441 | 221 _ovly_table[segment].size, \ |
464
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
222 runTask_##str, \ |
0d64bdb63005
task run is mere C function now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
460
diff
changeset
|
223 runTask_##str##_offset); |
615
184d6d3f0cd9
remove uncessary Task Name definision
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
501
diff
changeset
|
224 #define SchedRegisterDynamic(str, segment) SchedRegisterDynamicTask(str, str, segment) |
437 | 225 #else |
226 #define SchedRegisterDynamicTask(cmd, str, segment) SchedRegisterTask(cmd, str) | |
615
184d6d3f0cd9
remove uncessary Task Name definision
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
501
diff
changeset
|
227 #define SchedRegisterDynamic(str, segment) SchedRegisterDynamicTask(str, str, segment) |
437 | 228 #endif |
423
609758f9f350
Code load implementation... (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
403
diff
changeset
|
229 |
403
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
230 |
e2f29e912d0b
clean up and add more info on task_list
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
389
diff
changeset
|
231 /* end */ |