diff src/parallel_execution/context.c @ 138:337fdbffa693 default tip

Merge
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Sat, 01 Oct 2016 00:23:35 +0900
parents 36ac17d37be4 77e60b6cdace
children
line wrap: on
line diff
--- a/src/parallel_execution/context.c	Thu Sep 29 22:22:36 2016 +0900
+++ b/src/parallel_execution/context.c	Sat Oct 01 00:23:35 2016 +0900
@@ -55,13 +55,29 @@
 extern __code createTask2_stub(struct Context*);
 extern __code createTask3_stub(struct Context*);
 extern __code createTask4_stub(struct Context*);
+extern __code createTask5_stub(struct Context*);
+extern __code createTask6_stub(struct Context*);
+extern __code poll1_stub(struct Context*);
+extern __code poll2_stub(struct Context*);
+/* extern __code createTask3_stub(struct Context*); */
+/* extern __code createTask4_stub(struct Context*); */
 extern __code putQueue1_stub(struct Context*);
 extern __code putQueue2_stub(struct Context*);
 extern __code putQueue3_stub(struct Context*);
 extern __code putQueue4_stub(struct Context*);
-extern __code getQueue_stub(struct Context*);
+extern __code getTask_stub(struct Context*);
+extern __code getQueue1_stub(struct Context*);
+extern __code getInputData1_stub(struct Context*);
+extern __code getInputData2_stub(struct Context*);
+extern __code getOutputData1_stub(struct Context*);
+extern __code getOutputData2_stub(struct Context*);
+extern __code waitFor_stub(struct Context*);
 extern __code spawnTask_stub(struct Context*);
+extern __code checkTaskFinish1_stub(struct Context*);
+extern __code checkTaskFinish2_stub(struct Context*);
 extern __code twice_stub(struct Context*);
+extern __code add_stub(struct Context*);
+extern __code mult_stub(struct Context*);
 extern __code start_time_stub(struct Context*);
 extern __code end_time_stub(struct Context*);
 extern __code exit_code(struct Context*);
@@ -70,6 +86,7 @@
     context->heapLimit = sizeof(union Data)*ALLOCATE_SIZE;
     context->code = (__code(**) (struct Context*)) NEWN(ALLOCATE_SIZE, void*);
     context->data = NEWN(ALLOCATE_SIZE, union Data*);
+    context->mData = NEWN(ALLOCATE_SIZE, union MetaData*);
     context->heapStart = NEWN(context->heapLimit, char);
     context->heap = context->heapStart;
 
@@ -124,13 +141,27 @@
     context->code[CreateTask2]   = createTask2_stub;
     context->code[CreateTask3]   = createTask3_stub;
     context->code[CreateTask4]   = createTask4_stub;
+    context->code[CreateTask5]   = createTask5_stub;
+    context->code[CreateTask6]   = createTask6_stub;
+    context->code[Poll1]         = poll1_stub;
+    context->code[Poll2]         = poll2_stub;
     context->code[PutQueue1]     = putQueue1_stub;
     context->code[PutQueue2]     = putQueue2_stub;
     context->code[PutQueue3]     = putQueue3_stub;
     context->code[PutQueue4]     = putQueue4_stub;
-    context->code[GetQueue]      = getQueue_stub;
+    context->code[GetTask]       = getTask_stub;
+    context->code[GetQueue1]     = getQueue1_stub;
+    context->code[GetInputData1] = getInputData1_stub;
+    context->code[GetInputData2] = getInputData2_stub;
+    context->code[GetOutputData1] = getOutputData1_stub;
+    context->code[GetOutputData2] = getOutputData2_stub;
+    context->code[WaitFor]       = waitFor_stub;
     context->code[SpawnTask]     = spawnTask_stub;
+    context->code[CheckTaskFinish1] = checkTaskFinish1_stub;
+    context->code[CheckTaskFinish2] = checkTaskFinish2_stub;
     context->code[Twice]         = twice_stub;
+    context->code[Add]           = add_stub;
+    context->code[Mult]          = mult_stub;
     context->code[StartTime]     = start_time_stub;
     context->code[EndTime]       = end_time_stub;
     context->code[Exit]          = exit_code;
@@ -175,6 +206,7 @@
 
     context->dataNum = Queue;
     
+    context->metaDataNum = 0;
     context->node_stack = stack_init(sizeof(struct Node*), 100);
     context->code_stack = stack_init(sizeof(enum Code), 100);
 }