Mercurial > hg > Game > Cerium
view TaskManager/kernel/schedule/SchedTaskList.cc @ 1467:d585a7614cd5 draft
look like working now.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 15 Jul 2012 17:33:50 +0900 |
parents | cb57420a8219 |
children | f82bb7393c4d |
line wrap: on
line source
#include <stdlib.h> #include <string.h> #include "SchedTaskList.h" #include "SchedTask.h" #include "SysFunc.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, int tag) { // next() で生成された時に、Task List read を始める memaddr params_addr = addr; // should check TaskList size Todo scheduler = sched; list = scheduler->get_curListBuf(); connector = scheduler->connector; list = (TaskListPtr)connector->dma_load1(list, params_addr, sizeof(TaskList), DMA_READ_TASKLIST); cur_index = 0; this->tag = tag; } void SchedTaskList::read() { // next() で TaskListの中身を見られてしまうので、 // ここで DMA 待ちを行う __debug("[SchedTaskList:%s]\n", __FUNCTION__); connector->dma_wait(DMA_READ_TASKLIST); } void SchedTaskList::exec() { } void SchedTaskList::write() { } /* end */