Mercurial > hg > Game > Cerium
changeset 1884:d28f0c5489c3 draft
ppe conditional wait done.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 03 Jan 2014 16:32:21 +0900 |
parents | c5ae9bbd5eff |
children | dc5e06fb63ea |
files | TaskManager/Cell/CellTaskManagerImpl.cc TaskManager/Fifo/ReferencedDmaManager.h TaskManager/kernel/ppe/MailManager.h TaskManager/kernel/ppe/SynchronizedMailManager.h example/word_count/Makefile |
diffstat | 5 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/TaskManager/Cell/CellTaskManagerImpl.cc Fri Jan 03 15:54:36 2014 +0900 +++ b/TaskManager/Cell/CellTaskManagerImpl.cc Fri Jan 03 16:32:21 2014 +0900 @@ -28,7 +28,7 @@ spe_running = 0; spuIdle = spuIdle_; int m = (machineNum == 0?1:machineNum) + ioNum ; // at least 1 tasklistinfo in -cpu 0 - receive_wait = 0; // new Sem(0); + receive_wait = new Sem(0); // 実行される Task 用の パイプライン用のダブルバッファ speTaskList = new QueueInfo<TaskList>*[m]; // spe上の走っている Task の配列
--- a/TaskManager/Fifo/ReferencedDmaManager.h Fri Jan 03 15:54:36 2014 +0900 +++ b/TaskManager/Fifo/ReferencedDmaManager.h Fri Jan 03 16:32:21 2014 +0900 @@ -16,6 +16,11 @@ virtual void free_(void *buff); virtual void bound(ListData *list); + + virtual void set_mail_waiter(SemPtr w) { + mail_queue1->set_waiter(w); + } + } ; #endif/* REFERENCED_DMA_MANAGER */
--- a/TaskManager/kernel/ppe/MailManager.h Fri Jan 03 15:54:36 2014 +0900 +++ b/TaskManager/kernel/ppe/MailManager.h Fri Jan 03 16:32:21 2014 +0900 @@ -2,6 +2,7 @@ #define INCLUDED_MAIL_MANAGER #include "types.h" +#include "Sem.h" class MailManager { public: @@ -14,6 +15,7 @@ virtual void send(memaddr data); virtual memaddr recv(); virtual int count(); + virtual void set_waiter(SemPtr w) = 0; private: /* variables */
--- a/TaskManager/kernel/ppe/SynchronizedMailManager.h Fri Jan 03 15:54:36 2014 +0900 +++ b/TaskManager/kernel/ppe/SynchronizedMailManager.h Fri Jan 03 16:32:21 2014 +0900 @@ -17,7 +17,7 @@ void send(memaddr data); memaddr recv(); int count(); - void set_waiter(SemPtr w); + virtual void set_waiter(SemPtr w); private: /* variables */