Mercurial > hg > Members > kono > Cerium
comparison TaskManager/kernel/schedule/SchedTaskList.cc @ 717:4c12f679a0fa
TaskList load timing...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Dec 2009 12:17:31 +0900 |
parents | 8ab63ded2c3f |
children | 33630c6ff445 |
comparison
equal
deleted
inserted
replaced
716:974672c4ea2a | 717:4c12f679a0fa |
---|---|
19 * 0: メインメモリ, 1: SPE | 19 * 0: メインメモリ, 1: SPE |
20 */ | 20 */ |
21 | 21 |
22 SchedTaskList::SchedTaskList(memaddr addr, Scheduler *sched) | 22 SchedTaskList::SchedTaskList(memaddr addr, Scheduler *sched) |
23 { | 23 { |
24 // next() で生成された時に、Task List read を始める | |
24 params_addr = addr; | 25 params_addr = addr; |
25 list = NULL; | |
26 scheduler = sched; | 26 scheduler = sched; |
27 cur_index = 0; | 27 cur_index = 0; |
28 | 28 list = scheduler->get_curListBuf(); |
29 scheduler->dma_load(list, params_addr, | |
30 sizeof(TaskList), DMA_READ_TASKLIST); | |
29 } | 31 } |
30 | 32 |
31 | 33 |
32 void | 34 void |
33 SchedTaskList::read() | 35 SchedTaskList::read() |
34 { | 36 { |
37 // next() で TaskListの中身を見られてしまうので、 | |
38 // ここで DMA 待ちを行う | |
35 __debug("[SchedTaskList:%s]\n", __FUNCTION__); | 39 __debug("[SchedTaskList:%s]\n", __FUNCTION__); |
36 | 40 scheduler->dma_wait(DMA_READ_TASKLIST); |
37 list = scheduler->get_curListBuf(); | |
38 scheduler->dma_load(list, params_addr, | |
39 sizeof(TaskList), DMA_READ_TASKLIST); | |
40 } | 41 } |
41 | 42 |
42 void | 43 void |
43 SchedTaskList::exec() {} | 44 SchedTaskList::exec() { |
45 } | |
44 | 46 |
45 void | 47 void |
46 SchedTaskList::write() | 48 SchedTaskList::write() |
47 { | 49 { |
48 __debug("[SchedTaskList:%s]\n", __FUNCTION__); | |
49 | |
50 scheduler->dma_wait(DMA_READ_TASKLIST); | |
51 } | 50 } |
52 | 51 |
53 /** | 52 /** |
54 * next は、SchedTask のものが使われる。 | 53 * next は、SchedTask のものが使われる。 |
54 * それで正しく動くはず。 | |
55 * | |
56 * next() が呼ばれた時点で、TaskList のloadが終了しているように工夫する。 | |
57 * | |
55 */ | 58 */ |
56 | 59 |
57 /* end */ | 60 /* end */ |