view TaskManager/Fifo/MainScheduler.cc @ 645:07bd86a352eb

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 21 Nov 2009 11:18:49 +0900
parents a909c50081c2
children 7c9ded1ea750
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;
}

/**
 * PPE TaskManager が、 Task の終了やその他コマンドが格納された
 * メールキューを受け取る
 */
MailQueuePtr
MainScheduler::recv_mailList(void)
{
    MailQueuePtr m = ((FifoDmaManager*)connector)->mail_sendQueue;
    ((FifoDmaManager*)connector)->mail_sendQueue = 0;
    return m;
}



/**
 * メインメモリ領域を allocate する。
 * Fifo バージョンだから、まあ普通に malloc でおk
 */
void
MainScheduler::mainMem_alloc(int id, int size)
{
    mainMemList[id] = (memaddr)allocate(size);
}

/* end */