view include/TaskManager/CellTaskManagerImpl.h @ 201:b257e27d995c

add SceneGraphIterator
author gongo@gendarme.cr.ie.u-ryukyu.ac.jp
date Mon, 26 Jan 2009 16:46:59 +0900
parents 5c194c71eca8
children 7075842aa155
line wrap: on
line source

#ifndef INCLUDED_CELL_TASK_MANAGER_IMPL
#define INCLUDED_CELL_TASK_MANAGER_IMPL

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

#ifndef INCLUDED_FIFO_TASK_MANAGER_IMPL
#  include "FifoTaskManagerImpl.h"
#endif

#ifndef INCLUDED_SPE_THREADS
#  include "SpeThreads.h"
#endif

class CellTaskManagerImpl : public TaskManagerImpl {
public:
    /* constructor */
    CellTaskManagerImpl(int num = 1) : TaskManagerImpl(num) {}
    ~CellTaskManagerImpl(void);

    /* variables */
    TaskListPtr *speTaskList;
    TaskListPtr *speTaskList_bg;

    SpeThreads *speThreads;
    int *flag_sendTaskList;
    FifoTaskManagerImpl *ppeManager;

    /* functions */
    // system
    void init(void);
    void run(void);
    TaskListPtr mail_check(MailQueuePtr mail_list);
    void set_runTaskList(void);
    void append_activeTask(HTaskPtr);

    // user
    int add_data(ListDataPtr, uint32, int);
    void* allocate(int size);

private:
    void send_taskList(int id);
};

#ifdef Cerium_malloc
#undef Cerium_malloc
#endif

#define Cerium_malloc(dest, align, size) \
    posix_memalign((void**)(dest), (align), (size))

#endif