Mercurial > hg > Members > kono > Cerium
view TaskManager/Fifo/MainScheduler.cc @ 629:8843edf37c0e
Cell 64 bit tried, but not yet worked.
Cell's list DMA is 32bit.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Nov 2009 13:32:58 +0900 |
parents | f64d75473f95 |
children | 8cc609285bbe |
line wrap: on
line source
#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) { #ifdef HAS_POSIX_MEMALIGN void *ptr; posix_memalign(&ptr,SPE_ALIGNMENT_FULL, size); #else void *ptr = malloc(size); #endif return ptr; } /** * メインメモリ領域を allocate する。 * Fifo バージョンだから、まあ普通に malloc でおk */ void MainScheduler::mainMem_alloc(int id, int size) { mainMemList[id] = (memaddr)allocate(size); } #if 0 /** * MainScheduler.h に書いてます */ void MainScheduler::mainMem_wait(void) { // 何もしねえ } #endif