diff 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
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/TaskManagerImpl.h	Wed Nov 18 19:09:40 2009 +0900
+++ b/TaskManager/kernel/ppe/TaskManagerImpl.h	Thu Nov 19 11:13:42 2009 +0900
@@ -23,6 +23,7 @@
     HTaskInfo *htaskImpl;
 
     SchedTask *schedTaskManager;
+    Scheduler *scheduler;
 
     /* constructor */
     TaskManagerImpl(int num = 1) ;
@@ -42,15 +43,38 @@
     void systask_init();
 
     // user
-    HTaskPtr create_task(int cmd);
-    HTaskPtr create_task(int cmd, memaddr rbuf, long r_size, memaddr wbuf, long w_size);
-    void set_task_depend(HTaskPtr master, HTaskPtr slave);
-    void spawn_task(HTaskPtr);
-    void set_task_cpu(HTaskPtr, CPU_TYPE);
+    virtual HTaskPtr create_task(int cmd);
+    virtual HTaskPtr create_task(int cmd, memaddr rbuf, long r_size, memaddr wbuf, long w_size);
+    virtual void set_task_depend(HTaskPtr master, HTaskPtr slave);
+    virtual void spawn_task(HTaskPtr);
+    virtual void set_task_cpu(HTaskPtr, CPU_TYPE);
 
-    virtual void* allocate(int size) = 0;
-    virtual void* allocate(int size,int align) = 0;
-    virtual Scheduler* get_scheduler() = 0;
+    void* allocate(int size, int alignment)
+    {
+	if (size==0) return 0;
+    #if defined(__SPU__) || ! defined(HAS_POSIX_MEMALIGN)
+	return malloc(size);
+    #else
+	void *buff;
+	posix_memalign(&buff, alignment, size);
+	return buff;
+    #endif
+    }
+
+    void* allocate(int size)
+    {
+	if (size==0) return 0;
+    #if defined(__SPU__) || ! defined(HAS_POSIX_MEMALIGN)
+	return malloc(size);
+    #else
+	void *buff;
+	posix_memalign(&buff, DEFAULT_ALIGNMENT, size);
+	return buff;
+    #endif
+    }
+
+    Scheduler* get_scheduler() { return scheduler; }
+    void set_scheduler(Scheduler *s) {  scheduler = s; }
 };
 
 #endif