view include/TaskManager/SpeManager.h @ 3:2356238ebea7

*** empty log message ***
author gongo
date Tue, 05 Feb 2008 20:22:50 +0900
parents
children
line wrap: on
line source

#ifndef INCLUDED_SPE_MANAGER
#define INCLUDED_SPE_MANAGER

#ifndef INCLUDED_TASK
#  include "task.h"
#endif

#ifndef INCLUDED_DMA_MANAGER
#  include "DmaManager.h"
#endif

class SpeTaskBase;
class SpeManager;

class SpeTaskBase {
public:
    /* constructor */
    SpeTaskBase(void) {}
    virtual ~SpeTaskBase(void) {}

    /* variables */

    // noaction in default
    virtual void load(void) {}
    virtual void read(void) {}
    virtual void exec(void) {}
    virtual void write(void) {}

    /* functions */
    virtual SpeTaskBase* next(SpeManager *, SpeTaskBase *) = 0;
};


class SpeManager {
public:
    SpeManager(void);

    /* variables */
    int listBufFlg;
    int readBufFlg;
    int writeBufFlg;
    TaskListPtr listBuf[2];
    void *readBuf[2];
    void *writeBuf[2];

    DmaManager* connector;
    
    SpeTaskBase* task1;
    SpeTaskBase* task2;
    SpeTaskBase* task3;

    /* functions */
    void init(void);
    void set_connect(DmaManager*);
    void run(void);
    void finish(void);

    TaskListPtr get_curListBuf(void);
    void* get_curReadBuf(void);
    void* get_curWriteBuf(void);
};

#endif