Mercurial > hg > Game > Cerium
view TaskManager/kernel/ppe/TaskManager.cc @ 220:305ac1897c50 draft
fix
author | gongo@localhost.localdomain |
---|---|
date | Mon, 09 Feb 2009 21:58:45 +0900 |
parents | e9a52d68db42 |
children | e6eb4f8d6b0e |
line wrap: on
line source
#include "TaskManager.h" TaskManager::TaskManager(int num) : machineNum(num) {} TaskManager::~TaskManager(void) { delete m_impl; } /** * create_impl(int); * * [cell版] ../../Cell/CellTaskManagerImpl.cpp * [fifo版] ../../Fifo/FifoTaskManagerImpl.cpp * で定義されています。コンパイル時に * * % make cell ってすると cell 版が、 * % make fifo ってすると fifo 版 がリンクされるようにしているので * それに応じて create_impl が返す値を変えています。 * cell だったら CellManagerImpl, fifo だったら FifoManagerImpl です。 * * 今までは ifdef CELL とか書いてましたわ。どっちがいいかね * * てか、普通に TaskManagerImpl に関数持たせた方が早いか・・・? */ extern TaskManagerImpl* create_impl(int); void TaskManager::init(void) { m_impl = create_impl(machineNum); m_impl->init(); m_impl->systask_init(); } void TaskManager::finish(void) { delete m_impl; } /** * @param [command] Task executes method number * * @return this task */ HTaskPtr TaskManager::create_task(int cmd) { return m_impl->create_task(cmd); } /** * TaskManaer 終了時に実行される関数の設定 */ void TaskManager::set_TMend(void (*endf)(void)) { tm_end = endf; } void TaskManager::run(void) { m_impl->run(); } void* TaskManager::allocate(int size) { return m_impl->allocate(size); } int TaskManager::get_cpuNum(void) { return machineNum; }