Mercurial > hg > Members > kono > Cerium
annotate TaskManager/kernel/schedule/SchedTaskArrayNop.cc @ 888:586ed400413a
call savedTask->write() in TaskArray finish.
TASK_LIST_MAIL is working now.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Jul 2010 23:54:36 +0900 |
parents | c7905ead974f |
children | baae338d91da |
rev | line source |
---|---|
786
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
1 #include "SchedTaskArrayNop.h" |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
2 #include "Scheduler.h" |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
3 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
4 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
5 SchedTaskArrayNop::SchedTaskArrayNop(Scheduler *s, SchedTaskBase *savedTask_, Task *curTask_, Task *_array) |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
6 { |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
7 savedTask = savedTask_; |
797
45c141669de7
SchedTask instance variable clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
786
diff
changeset
|
8 atask = _array; |
786
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
9 scheduler = s; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
10 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
11 inListData.bound = 0; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
12 inListData.size = 0; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
13 inListData.length = 0; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
14 inListData.element = 0; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
15 outListData.bound = 0; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
16 outListData.size = 0; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
17 outListData.length = 0; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
18 outListData.element = 0; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
19 } |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
20 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
21 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
22 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
23 /** |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
24 */ |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
25 SchedTaskArrayNop::~SchedTaskArrayNop() |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
26 { |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
27 } |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
28 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
29 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
30 /** |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
31 * Task data / code read |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
32 */ |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
33 void |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
34 SchedTaskArrayNop::read() |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
35 { |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
36 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
37 } |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
38 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
39 /** |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
40 * Wait read data and execute task |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
41 * Start write DMA |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
42 */ |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
43 void |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
44 SchedTaskArrayNop::exec() |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
45 { |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
46 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
47 } |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
48 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
49 /** |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
50 * Wait write DMA |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
51 * send finish mail |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
52 */ |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
53 void |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
54 SchedTaskArrayNop::write() |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
55 { |
888
586ed400413a
call savedTask->write() in TaskArray finish.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
830
diff
changeset
|
56 savedTask ->write(); |
797
45c141669de7
SchedTask instance variable clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
786
diff
changeset
|
57 free(atask); |
888
586ed400413a
call savedTask->write() in TaskArray finish.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
830
diff
changeset
|
58 delete savedTask; |
786
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
59 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
60 } |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
61 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
62 SchedTaskBase* |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
63 SchedTaskArrayNop::next(Scheduler *scheduler, SchedTaskBase *p) |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
64 { |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
65 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
66 // 最後のTask が exec されて、次の Task を実行してかまわない。 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
67 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
68 SchedTaskBase *n = savedTask->next(scheduler, savedTask); |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
69 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
70 return n; |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
71 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
72 } |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
73 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
74 |
ccf78a465459
fix early free of TaskArray, add SchedTaskArrayNop stage.
yutaka@localhost.localdomain
parents:
diff
changeset
|
75 /* end */ |