view TaskManager/kernel/schedule/SchedTaskArrayLoad.cc @ 713:f725c6455d19

remove SIMPLE_TASK conditional
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 16 Dec 2009 15:27:46 +0900
parents 4c6bda4e474a
children 2708c4a7bade
line wrap: on
line source

#include "SchedTaskArrayLoad.h"
#include "SchedTaskArray.h"
#include "Task.h"


SchedTaskArrayLoad::SchedTaskArrayLoad(Scheduler *s, SchedTaskBase *savedTask_)
{
    scheduler = s;
    savedTask = savedTask_;
    task = savedTask->task;
}

SchedTaskArrayLoad::~SchedTaskArrayLoad() {}

void
SchedTaskArrayLoad::read()
{
    // if (task->r_size == 0) return; cannot happen...
    // load Task Array Data
    readbuf = scheduler->allocate(task->r_size);
    scheduler->dma_load(readbuf, task->rbuf,task->r_size, DMA_READ);
}

void
SchedTaskArrayLoad::exec() {
    // もっと、はやめに DMA_READ して、最初のcodeをloadするべきか?
    scheduler->dma_wait(DMA_READ);
}  // to empty the pipeline

void
SchedTaskArrayLoad::write() {} // to empty the pipeline

SchedTaskBase*
SchedTaskArrayLoad::next(Scheduler *scheduler, SchedTaskBase *p)
{
    Task *nextTask = (Task *)readbuf;
    return new SchedTaskArray(scheduler, savedTask, nextTask, nextTask);
}

/* end */