view TaskManager/kernel/schedule/SchedTaskArrayNop.cc @ 890:baae338d91da

minor fix. possible schedTaskArray overrun
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 15 Jul 2010 11:59:53 +0900
parents 586ed400413a
children 96536163c0a0
line wrap: on
line source

#include "SchedTaskArrayNop.h"
#include "Scheduler.h"


SchedTaskArrayNop::SchedTaskArrayNop(Scheduler *s, SchedTaskBase *savedTask_, Task *curTask_, Task *_array)
{
    savedTask = savedTask_;
    atask = _array;
    scheduler = s;

    inListData.bound = 0;
    inListData.size = 0;
    inListData.length = 0;
    inListData.element = 0;
    outListData.bound = 0;
    outListData.size = 0;
    outListData.length = 0;
    outListData.element = 0;
}



/**
 */
SchedTaskArrayNop::~SchedTaskArrayNop()
{
}


/**
 * Task data / code read
 */
void
SchedTaskArrayNop::read()
{

}

/**
 *  Wait read data and execute task
 *  Start write DMA
 */
void
SchedTaskArrayNop::exec()
{

}

/**
 *   Wait write DMA
 *   send finish mail
 */
void
SchedTaskArrayNop::write()
{
    savedTask ->write();
    free(atask);
    delete savedTask;
    savedTask = 0;
}

SchedTaskBase*
SchedTaskArrayNop::next(Scheduler *scheduler, SchedTaskBase *p)
{

    // 最後のTask が exec されて、次の Task を実行してかまわない。

    SchedTaskBase *n =  savedTask->next(scheduler, savedTask);
    
    return n;

}


/* end */