Mercurial > hg > Game > Cerium
diff TaskManager/Fifo/MainScheduler.cc @ 109:028ffc9c0375 draft
Cerium cvs version
author | gongo@gendarme.local |
---|---|
date | Wed, 12 Nov 2008 17:39:33 +0900 |
parents | |
children | 768452fab95e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Fifo/MainScheduler.cc Wed Nov 12 17:39:33 2008 +0900 @@ -0,0 +1,70 @@ +#include <stdlib.h> +#include <string.h> +#include "MainScheduler.h" +#include "FifoDmaManager.h" +#include "error.h" + +void +MainScheduler::init_impl(void) +{ + connector = new FifoDmaManager(); +} + +void +MainScheduler::set_mailManager(MailManager *m) +{ + ((FifoDmaManager*)connector)->mailManager = m; +} + +/** + * PPE TaskManager から TaskList やその他コマンドが格納された + * メールキューが送られてくる + */ +void +MainScheduler::send_mailList(MailQueuePtr mail_list) +{ + ((FifoDmaManager*)connector)->mail_recvQueue = mail_list; + ((FifoDmaManager*)connector)->mail_sendQueue = NULL; +} + +/** + * PPE TaskManager が、 Task の終了やその他コマンドが格納された + * メールキューを受け取る + */ +MailQueuePtr +MainScheduler::recv_mailList(void) +{ + return ((FifoDmaManager*)connector)->mail_sendQueue; +} + + +void* +MainScheduler::allocate(int size) +{ + void *ptr = malloc(size); + bzero(ptr, size); + + return ptr; +} + + +/** + * メインメモリ領域を allocate する。 + * Fifo バージョンだから、まあ普通に malloc でおk + */ +void +MainScheduler::mainMem_alloc(int id, int size) +{ + mainMemList[id] = allocate(size); +} + +#if 0 +/** + * MainScheduler.h に書いてます + */ +void +MainScheduler::mainMem_wait(void) +{ + // 何もしねえ +} +#endif