Mercurial > hg > Members > kono > Cerium
view 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 |
line wrap: on
line source
#include <stdlib.h> #include <string.h> #include "SchedTaskList.h" #include "SchedTask.h" #include "SysFunc.h" #include "SchedTaskArray.h" #include "SchedTaskArrayLoad.h" #include "SchedNop2Ready.h" #include "DmaManager.h" #include "error.h" /** * SchedTaskList を返す * * @param[in] next_list 次の実行する TaskList のアドレス * @param[in] next_list がメインメモリのアドレスか、 * SPE で生成されたアドレスかのフラグ * SPE で生成されている場合、DMA の必要は無い * 0: メインメモリ, 1: SPE */ SchedTaskList::SchedTaskList(memaddr addr, Scheduler *sched) { // next() で生成された時に、Task List read を始める params_addr = addr; scheduler = sched; cur_index = 0; list = scheduler->get_curListBuf(); scheduler->dma_load(list, params_addr, sizeof(TaskList), DMA_READ_TASKLIST); } void SchedTaskList::read() { // next() で TaskListの中身を見られてしまうので、 // ここで DMA 待ちを行う __debug("[SchedTaskList:%s]\n", __FUNCTION__); scheduler->dma_wait(DMA_READ_TASKLIST); } void SchedTaskList::exec() { } void SchedTaskList::write() { } /** * next は、SchedTask のものが使われる。 * それで正しく動くはず。 * * next() が呼ばれた時点で、TaskList のloadが終了しているように工夫する。 * */ /* end */