Mercurial > hg > Members > kono > Cerium
annotate TaskManager/kernel/ppe/TaskManager.cc @ 216:894675539cbf
rename cerium_main to TMmain, add TMend()
author | gongo@localhost.localdomain |
---|---|
date | Wed, 04 Feb 2009 22:44:16 +0900 |
parents | 72dcf908ec52 |
children | 29e338dbc280 |
rev | line source |
---|---|
3 | 1 #include "TaskManager.h" |
2 | |
67 | 3 TaskManager::TaskManager(int num) : machineNum(num) {} |
3 | 4 |
194 | 5 TaskManager::~TaskManager(void) |
6 { | |
7 delete m_impl; | |
8 } | |
9 | |
3 | 10 /** |
11 * create_impl(int); | |
12 * | |
109 | 13 * [cell版] ../../Cell/CellTaskManagerImpl.cpp |
14 * [fifo版] ../../Fifo/FifoTaskManagerImpl.cpp | |
15 * で定義されています。コンパイル時に | |
3 | 16 * |
109 | 17 * % make cell ってすると cell 版が、 |
18 * % make fifo ってすると fifo 版 がリンクされるようにしているので | |
19 * それに応じて create_impl が返す値を変えています。 | |
20 * cell だったら CellManagerImpl, fifo だったら FifoManagerImpl です。 | |
3 | 21 * |
109 | 22 * 今までは ifdef CELL とか書いてましたわ。どっちがいいかね |
3 | 23 * |
109 | 24 * てか、普通に TaskManagerImpl に関数持たせた方が早いか・・・? |
3 | 25 */ |
26 extern TaskManagerImpl* create_impl(int); | |
27 | |
28 void | |
29 TaskManager::init(void) | |
30 { | |
31 m_impl = create_impl(machineNum); | |
32 m_impl->init(); | |
109 | 33 m_impl->systask_init(); |
3 | 34 } |
35 | |
20 | 36 void |
37 TaskManager::finish(void) | |
38 { | |
39 delete m_impl; | |
40 } | |
41 | |
3 | 42 /** |
109 | 43 * @param [command] Task executes method number |
3 | 44 * |
45 * @return this task | |
46 */ | |
47 HTaskPtr | |
109 | 48 TaskManager::create_task(int cmd) |
3 | 49 { |
109 | 50 return m_impl->create_task(cmd); |
3 | 51 } |
52 | |
216
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
53 /** |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
54 * TaskManaer 終了時に実行される関数の設定 |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
55 */ |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
56 void |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
57 TaskManager::set_TMend(void (*endf)(void)) |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
58 { |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
59 tm_end = endf; |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
60 } |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
61 |
3 | 62 void |
63 TaskManager::run(void) | |
64 { | |
65 m_impl->run(); | |
66 } | |
216
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
67 |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
68 void* |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
69 TaskManager::allocate(int size) { |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
70 return m_impl->allocate(size); |
894675539cbf
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
71 } |