Mercurial > hg > Members > kono > Cerium
comparison TaskManager/kernel/ppe/TaskManagerImpl.h @ 637:5530fa36d42e
not yet worked...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 19 Nov 2009 11:13:42 +0900 |
parents | d433fc37587d |
children | 7c9ded1ea750 |
comparison
equal
deleted
inserted
replaced
636:d433fc37587d | 637:5530fa36d42e |
---|---|
21 TaskListInfo *taskListImpl; | 21 TaskListInfo *taskListImpl; |
22 TaskQueueInfo *taskQueueImpl; | 22 TaskQueueInfo *taskQueueImpl; |
23 HTaskInfo *htaskImpl; | 23 HTaskInfo *htaskImpl; |
24 | 24 |
25 SchedTask *schedTaskManager; | 25 SchedTask *schedTaskManager; |
26 Scheduler *scheduler; | |
26 | 27 |
27 /* constructor */ | 28 /* constructor */ |
28 TaskManagerImpl(int num = 1) ; | 29 TaskManagerImpl(int num = 1) ; |
29 | 30 |
30 virtual ~TaskManagerImpl() { } | 31 virtual ~TaskManagerImpl() { } |
40 void wakeup_waitTask(); | 41 void wakeup_waitTask(); |
41 | 42 |
42 void systask_init(); | 43 void systask_init(); |
43 | 44 |
44 // user | 45 // user |
45 HTaskPtr create_task(int cmd); | 46 virtual HTaskPtr create_task(int cmd); |
46 HTaskPtr create_task(int cmd, memaddr rbuf, long r_size, memaddr wbuf, long w_size); | 47 virtual HTaskPtr create_task(int cmd, memaddr rbuf, long r_size, memaddr wbuf, long w_size); |
47 void set_task_depend(HTaskPtr master, HTaskPtr slave); | 48 virtual void set_task_depend(HTaskPtr master, HTaskPtr slave); |
48 void spawn_task(HTaskPtr); | 49 virtual void spawn_task(HTaskPtr); |
49 void set_task_cpu(HTaskPtr, CPU_TYPE); | 50 virtual void set_task_cpu(HTaskPtr, CPU_TYPE); |
50 | 51 |
51 virtual void* allocate(int size) = 0; | 52 void* allocate(int size, int alignment) |
52 virtual void* allocate(int size,int align) = 0; | 53 { |
53 virtual Scheduler* get_scheduler() = 0; | 54 if (size==0) return 0; |
55 #if defined(__SPU__) || ! defined(HAS_POSIX_MEMALIGN) | |
56 return malloc(size); | |
57 #else | |
58 void *buff; | |
59 posix_memalign(&buff, alignment, size); | |
60 return buff; | |
61 #endif | |
62 } | |
63 | |
64 void* allocate(int size) | |
65 { | |
66 if (size==0) return 0; | |
67 #if defined(__SPU__) || ! defined(HAS_POSIX_MEMALIGN) | |
68 return malloc(size); | |
69 #else | |
70 void *buff; | |
71 posix_memalign(&buff, DEFAULT_ALIGNMENT, size); | |
72 return buff; | |
73 #endif | |
74 } | |
75 | |
76 Scheduler* get_scheduler() { return scheduler; } | |
77 void set_scheduler(Scheduler *s) { scheduler = s; } | |
54 }; | 78 }; |
55 | 79 |
56 #endif | 80 #endif |