Mercurial > hg > Game > Cerium
view TaskManager/kernel/ppe/TaskManager.h @ 1602:e33e106ca3e0 draft
change default make parallel from fifo
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 06 Apr 2013 17:27:30 +0900 |
parents | 2a8826934b03 |
children | 93569219173e |
line wrap: on
line source
#ifndef INCLUDED_TASK_MANAGER #define INCLUDED_TASK_MANAGER #include "TaskManagerImpl.h" #include "MemList.h" #include "HTask.h" class Scheduler; class MemList; typedef struct nd_range { nd_range() { dimension = 1; gws[0]=1; gws[1]=1; gws[2]=1; lws[0]=1; lws[1]=1; lws[2]=1; } cl_uint dimension; size_t gws[3]; size_t lws[3]; } ND_RANGE_T, *ND_RANGE_T_PTR; class TaskManager { public: /* constructor */ TaskManager(int num); // The number of threads ~TaskManager(); /* variables */ TaskManagerImpl *m_impl; void (*tm_end)(TaskManager *manager); /* user function */ HTaskPtr create_task(int cmd); HTaskPtr create_task(int cmd, memaddr r, long rs, memaddr w, long ws); HTaskPtr create_task_array(int id, int num_task, int num_param, int num_inData, int num_outData); void run(); void *allocate(int size); void set_TMend(void (*endf)(TaskManager *manager)); int get_cpuNum(); int get_random(); Scheduler *get_scheduler(); void set_NDRange(ND_RANGE_T_PTR ndr) ; MemList* createMemList(int size, int count); void start_profile() { m_impl->start_profile(); } void show_profile() { m_impl->show_profile(); } void export_task_log() { m_impl->export_task_log(); } SchedTask *get_schedTask() { return m_impl->schedTaskManager; } /* functions */ void init(int spuIdle, int export_task_log, int useRefDma); void finish(); void error(const char* str); private: int machineNum; } ; #endif