# HG changeset patch # User Shinji KONO # Date 1261186999 -32400 # Node ID dac59b74e02a9690de0942b423b6ee70427bd1a7 # Parent cafffff0f45ad8250c0f5bf06f14c75f6a3f1863 Cell fix diff -r cafffff0f45a -r dac59b74e02a TaskManager/Cell/CellTaskManagerImpl.cc --- a/TaskManager/Cell/CellTaskManagerImpl.cc Sat Dec 19 10:34:43 2009 +0900 +++ b/TaskManager/Cell/CellTaskManagerImpl.cc Sat Dec 19 10:43:19 2009 +0900 @@ -11,7 +11,7 @@ #include "types.h" #include "SysFunc.h" -static void send_alloc_reply(SpeThreads *speThreads); +static void send_alloc_reply(CellTaskManagerImpl *tm, int id, SpeThreads *speThreads); CellTaskManagerImpl::~CellTaskManagerImpl() { @@ -162,10 +162,10 @@ // PPE side ppeTaskList = ppeManager->get_runTaskList(); ppeManager->schedule(ppeTaskList); - ppeManager->mail_check(waitTaskQueue); + ppeManager->mail_check(); // SPE side do { - mail_check(waitTaskQueue); + mail_check(); // SPE に送る TaskList の準備 set_runTaskList(); // TaskList 待ちの SPE に TaskList を送る @@ -197,7 +197,7 @@ spe_running--; } else if (data == (memaddr)MY_SPE_COMMAND_MALLOC) { // MY_SPE_COMMAND_MALLOC SPE からのmain memory request - send_alloc_reply(speThreads); + send_alloc_reply(this, id, speThreads); } else if (data > (memaddr)MY_SPE_NOP) { // 終了したタスク(PPEにあるのでアドレス) HTaskPtr task = (HTaskPtr)data; @@ -210,7 +210,7 @@ } static void -send_alloc_reply(SpeThreads *speThreads) +send_alloc_reply(CellTaskManagerImpl *tm, int id, SpeThreads *speThreads) { /** @@ -226,7 +226,7 @@ alloc_size = (long)alloc_info[1]; - alloc_info[1] = (memaddr)allocate(alloc_size); + alloc_info[1] = (memaddr)tm->allocate(alloc_size); //__debug_ppe("[PPE] MALLOCED 0x%lx from [SPE %d]\n", alloc_info[1],id); // 今のところ何もしてない。どうも、この allocate を free // するのは、SPE task が返した値を見て行うらしい。それは、 diff -r cafffff0f45a -r dac59b74e02a TaskManager/Cell/CellTaskManagerImpl.h --- a/TaskManager/Cell/CellTaskManagerImpl.h Sat Dec 19 10:34:43 2009 +0900 +++ b/TaskManager/Cell/CellTaskManagerImpl.h Sat Dec 19 10:43:19 2009 +0900 @@ -24,7 +24,7 @@ // system void init(); void run(); - TaskListPtr mail_check(HTaskInfo *); + void mail_check(); void set_runTaskList(); void append_activeTask(HTaskPtr); void show_profile() ; diff -r cafffff0f45a -r dac59b74e02a TaskManager/Fifo/FifoTaskManagerImpl.h --- a/TaskManager/Fifo/FifoTaskManagerImpl.h Sat Dec 19 10:34:43 2009 +0900 +++ b/TaskManager/Fifo/FifoTaskManagerImpl.h Sat Dec 19 10:43:19 2009 +0900 @@ -28,7 +28,6 @@ void mail_check(); - void mail_check(HTaskInfo *waitQueue); TaskListPtr get_runTaskList(void); void schedule(TaskListPtr);