diff TaskManager/kernel/schedule/Scheduler.h @ 437:fd44dbd049aa

overlay...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 24 Sep 2009 22:40:58 +0900
parents fb62b7acc92b
children 95c0457a7d31
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/Scheduler.h	Thu Sep 24 21:09:27 2009 +0900
+++ b/TaskManager/kernel/schedule/Scheduler.h	Thu Sep 24 22:40:58 2009 +0900
@@ -152,6 +152,7 @@
     void *mainMem_get(int id);
 
     MemorySegment * get_segment(memaddr addr, MemList *m);
+    MemorySegment * get_segment(memaddr addr, MemList *m, int size);
     void allocate_code_segment(int count, int size);
 
     virtual uint32 get_tag();
@@ -199,17 +200,26 @@
         return new str();                                               \
     }
 
+#ifndef NO_OVERLAY
 #define SchedExternDynamicTask(str,segment)                             \
     extern char __load_start_##segment[],                             \
            __load_stop_##segment[];                              \
     extern void spe_load_entry();                                          \
-    extern SchedTask* createTask_##str(Scheduler *manager);
+    extern SchedTask* createTask_##str(Scheduler *manager); \
+    extern unsigned long long _EAR_;
+#else
+#define SchedExternDynamicTask(str,segment) SchedExternTask(str,segment)   
+#endif
 
 
+#ifndef NO_OVERLAY
 #define SchedRegisterDynamicTask(cmd, str, segment)                    \
-    register_dynamic_task(cmd,  (memaddr)__load_start_##segment, \
-                   (memaddr)__load_stop_##segment,\
+    register_dynamic_task(cmd,  _EAR_+(memaddr)__load_start_##segment, \
+                   _EAR_+(memaddr)__load_stop_##segment,\
                    ((char *)createTask_##str)-(char *)spe_load_entry);
+#else
+#define SchedRegisterDynamicTask(cmd, str, segment) SchedRegisterTask(cmd, str)
+#endif
 
 
 /* end */