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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 */