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;