view include/TaskManager/SchedTask.h @ 84:c2e178b3415f

create SPUSPANLIST no use task/spu_span.cpp
author chiaki
date Tue, 26 Feb 2008 21:49:50 +0900
parents 14a5ca0be17e
children 504899860e66
line wrap: on
line source

#ifndef INCLUDED_SCHED_TASK
#define INCLUDED_SCHED_TASK

#ifndef INCLUDED_SCHEDULER
#  include "Scheduler.h"
#endif

#ifndef INCLUDED_SCHED_TASK_BASE
#  include "SchedTaskBase.h"
#endif

class SchedTask : public SchedTaskBase {
public:
    /* constructor */
    SchedTask(TaskListPtr, TaskPtr, void*, void*, DmaManager*);

    /* variables */
    TaskListPtr list;
    TaskPtr task;
    void *readbuf;
    void *writebuf;

    DmaManager* connector;

    // work area
    //   global variable 用とか
    //   次の task に引き渡したり
    // size : デフォルトで 4k
    //        ppuから教えてもらう? task に入れる
    void (*func)(void *wbuf, void *rbuf);

    /* functions */
    SchedTaskBase* next(Scheduler *, SchedTaskBase *);

    // override
    void read(void);
    void exec(void);
    void write(void);

    virtual int run(void* r, void *w) { return 0; }
};

#endif