view include/TaskManager/TaskManager.h @ 105:3e331f7576a1

*** empty log message ***
author gongo
date Mon, 03 Mar 2008 18:55:28 +0900
parents 504899860e66
children 5c194c71eca8
line wrap: on
line source

#ifndef INCLUDED_TASK_MANAGER
#define INCLUDED_TASK_MANAGER

#ifndef INCLUDED_TASK_MANAGER_IMPL
#  include "TaskManagerImpl.h"
#endif

#ifndef INCLUDED_SYMTABLE
#  include "SymTable.h"
#endif

class TaskManager {
public:
    /* constructor */
    TaskManager(int num = 1); // The number of threads

    /* variables */
    TaskManagerImpl *m_impl;
    static SymTable *symtb;

    /* functions */
    void init(void);
    void finish(void);
    //HTaskPtr create_task(int cmd, int siz, DmaBuffer *in_addr,
    //DmaBuffer *out_addr, void (*func)(void));
    HTaskPtr create_task(int cmd, int siz, unsigned int in_addr,
			 unsigned int out_addr, void (*func)(void));
    //void set_task_depend(HTaskPtr master, HTaskPtr slave);
    //void spawn_task(HTaskPtr);
    void run(void);

    void set_init_task(const char *sym);

    void set_symbol(const char *sym, SymTable::FuncObject addr);
    void set_func(int id, SymTable::FuncObject addr);
    int open(const char *sym);
    static SymTable::FuncObject get_address(int fd);

    DmaBuffer* allocate(int size);
    
private:
    int machineNum;
};

#endif