Mercurial > hg > Members > kono > Cerium
comparison TaskManager/kernel/ppe/TaskManagerImpl.h @ 955:9989dd7b9ac2
unify all QueueInfo
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 04 Aug 2010 16:46:25 +0900 |
parents | 0c11c2fd7e63 |
children |
comparison
equal
deleted
inserted
replaced
954:6d3c954e510a | 955:9989dd7b9ac2 |
---|---|
1 #ifndef INCLUDED_TASK_MANAGER_IMPL | 1 #ifndef INCLUDED_TASK_MANAGER_IMPL |
2 #define INCLUDED_TASK_MANAGER_IMPL | 2 #define INCLUDED_TASK_MANAGER_IMPL |
3 | 3 |
4 #include "MailManager.h" | 4 #include "MailManager.h" |
5 #include "ListData.h" | 5 #include "ListData.h" |
6 #include "TaskListInfo.h" | 6 #include "QueueInfo.h" |
7 #include "TaskQueueInfo.h" | 7 #include "TaskQueue.h" |
8 #include "HTaskInfo.h" | 8 #include "HTask.h" |
9 #include "Scheduler.h" | 9 #include "Scheduler.h" |
10 class MemList; | 10 class MemList; |
11 | |
12 extern QueueInfo<TaskQueue> *taskQueuePool ; | |
13 extern QueueInfo<HTask> *htaskPool ; | |
14 extern QueueInfo<TaskList> *taskListPool; | |
15 | |
11 | 16 |
12 | 17 |
13 class TaskManagerImpl { | 18 class TaskManagerImpl { |
14 public: | 19 public: |
15 | 20 |
16 /* variables */ | 21 /* variables */ |
17 int machineNum; | 22 int machineNum; |
18 HTaskInfo *activeTaskQueue; | 23 QueueInfo<HTask> *activeTaskQueue; |
19 HTaskInfo *waitTaskQueue; | 24 QueueInfo<HTask> *waitTaskQueue; |
20 | 25 |
21 TaskQueueInfo *taskQueueImpl; | 26 QueueInfo<TaskQueue> *taskQueueImpl; |
22 HTaskInfo *htaskImpl; | 27 QueueInfo<HTask> *htaskImpl; |
23 | 28 |
24 SchedTask *schedTaskManager; | 29 SchedTask *schedTaskManager; |
25 Scheduler *scheduler; | 30 Scheduler *scheduler; |
26 TaskManagerImpl *others; | 31 TaskManagerImpl *others; |
27 | 32 |
38 virtual void show_profile() = 0; | 43 virtual void show_profile() = 0; |
39 virtual void append_activeTask(HTaskPtr); | 44 virtual void append_activeTask(HTaskPtr); |
40 virtual void append_waitTask(HTaskPtr); | 45 virtual void append_waitTask(HTaskPtr); |
41 virtual void polling() = 0; | 46 virtual void polling() = 0; |
42 | 47 |
43 void check_task_finish(HTaskPtr task, HTaskInfo *wait_queue); | 48 void check_task_finish(HTaskPtr task, QueueInfo<HTask> *wait_queue); |
44 void check_task_list_finish(SchedTask *s, TaskListPtr list, HTaskInfo *wait_queue); | 49 void check_task_list_finish(SchedTask *s, TaskListPtr list, QueueInfo<HTask> *wait_queue); |
45 | 50 |
46 void systask_init(); | 51 void systask_init(); |
47 | 52 |
48 // user | 53 // user |
49 virtual HTaskPtr create_task(int cmd,void *from); | 54 virtual HTaskPtr create_task(int cmd,void *from); |
50 virtual HTaskPtr create_task(int cmd, memaddr rbuf, long r_size, memaddr wbuf, long w_size,void *from); | 55 virtual HTaskPtr create_task(int cmd, memaddr rbuf, long r_size, memaddr wbuf, long w_size,void *from); |
51 virtual HTaskPtr create_task_array(int id, int num_task, int num_param, int num_inData, int num_outData,void *from); | 56 virtual HTaskPtr create_task_array(int id, int num_task, int num_param, int num_inData, int num_outData,void *from); |
52 virtual void set_task_depend(HTaskPtr master, HTaskPtr slave); | 57 virtual void set_task_depend(HTaskPtr master, HTaskPtr slave); |
53 virtual void spawn_task(HTaskPtr); | 58 virtual void spawn_task(HTaskPtr); |
54 virtual void set_task_cpu(HTaskPtr, CPU_TYPE); | 59 virtual void set_task_cpu(HTaskPtr, CPU_TYPE); |
55 void set_taskList(HTaskPtr htask, TaskListInfoPtr taskList) ; | 60 void set_taskList(HTaskPtr htask, QueueInfo<TaskList> * taskList) ; |
56 | 61 |
57 void free_htask(HTaskPtr htask) { | 62 void free_htask(HTaskPtr htask) { |
58 #if !defined(__SPU__) | 63 #if !defined(__SPU__) |
59 if (htask->self) { | 64 if (htask->self) { |
60 htask->flag.no_auto_free = 0; | 65 htask->flag.no_auto_free = 0; |