diff example/get_segment/spe/spe-main.cc @ 441:7bae2117f239

slightly worked...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 25 Sep 2009 03:49:01 +0900
parents 95c0457a7d31
children 95a856a2d552
line wrap: on
line diff
--- a/example/get_segment/spe/spe-main.cc	Fri Sep 25 01:47:03 2009 +0900
+++ b/example/get_segment/spe/spe-main.cc	Fri Sep 25 03:49:01 2009 +0900
@@ -2,8 +2,12 @@
 #include "Scheduler.h"
 #include "LoadEntry.h"
 
-SchedExternDynamicTask(Hello,segment1);
-SchedExternDynamicTask(Hello1,segment2);
+#include "createTask_offset.h"
+
+SchedExternDynamicTask(Hello,0);
+SchedExternDynamicTask(Hello1,1);
+
+void print_ovly_table();
 
 /**
  * この関数は SpeScheduler から呼ばれるので
@@ -12,7 +16,46 @@
 void
 task_init(Scheduler *scheduler)
 {
-    SchedRegisterDynamicTask(HELLO_TASK, Hello, segment1);
-    SchedRegisterDynamicTask(HELLO_TASK1, Hello1, segment2);
+    SchedRegisterDynamicTask(HELLO_TASK, Hello, 0);
+    SchedRegisterDynamicTask(HELLO_TASK1, Hello1, 1);
     scheduler->allocate_code_segment(4,1024);
+    print_ovly_table();
 }
+
+typedef unsigned int u32;
+extern unsigned long long _EAR_;
+
+/*
+extern struct tbl1 {
+    u32 vma;
+    u32 size;
+    u32 file_offset;
+    u32 buf;
+} _ovly_table;
+ */
+
+#if 0
+unsigned long long _EAR_ = 0;
+struct tbl _ovly_table;
+#endif
+
+void
+print_ovly_table()
+{
+    int i;
+    struct tbl *ov;
+
+    ov = _ovly_table;
+
+    fprintf(stderr,"memaddr = %d\n",sizeof(memaddr));	
+    for(i=0;i<2;i++) {
+        unsigned long long adr = _EAR_;
+        fprintf(stderr,"ovly_table[%d] vma=%08x size=%08x offset=%08x address=%08llx\n",
+               i, 
+                ov[i].vma,
+                ov[i].size, ov[i].file_offset, 
+               (adr) + ov[i].file_offset);
+    }
+}
+
+/* end */