Mercurial > hg > GearsTemplate
comparison src/parallel_execution/examples/calc.cbc @ 344:b8be1d51f002
Add CodeGear interface
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 26 May 2017 07:39:23 +0900 |
parents | de1e315379c6 |
children | 2da00c034fbc |
comparison
equal
deleted
inserted
replaced
343:5065d1e4adbb | 344:b8be1d51f002 |
---|---|
127 __code createTask3(struct TaskManager* taskManager) { | 127 __code createTask3(struct TaskManager* taskManager) { |
128 taskManager->next = C_createTask4; | 128 taskManager->next = C_createTask4; |
129 goto meta(context, taskManager->taskManager->TaskManager.spawn); | 129 goto meta(context, taskManager->taskManager->TaskManager.spawn); |
130 } | 130 } |
131 | 131 |
132 __code createTask4(struct TaskManager* taskManager) { | 132 __code createTask4(LoopCounter* loopCounter, TaskManager* taskManager, struct Context* task, Integer *integer1, Integer *integer2, Integer *integer3) { |
133 taskManager->next = C_createTask5; | |
134 goto meta(context, taskManager->taskManager->TaskManager.createTask); | |
135 } | |
136 | |
137 __code createTask5(LoopCounter* loopCounter, TaskManager* taskManager, struct Context* task, Integer *integer1, Integer *integer2, Integer *integer3) { | |
138 int i = loopCounter->i; | 133 int i = loopCounter->i; |
139 integer1->value = i; | 134 integer1->value = i; |
140 integer2->value = i+1; | 135 integer2->value = i+1; |
141 task->next = C_add; | 136 codeGear->codeGear= createAdd(context); |
142 task->idgCount = 0; | 137 codeGear->codeGear[0] = (union Data*)integer1; |
143 task->data[task->idg] = (union Data*)integer1; | 138 codeGear->codeGear[1] = (union Data*)integer2; |
144 task->data[task->idg+1] = (union Data*)integer2; | 139 codeGear->codeGear[2] = (union Data*)integer3; |
145 task->maxIdg = task->idg + 2; | 140 codeGear->next = C_createTask1 |
146 task->odg = task->maxIdg; | |
147 task->data[task->odg] = (union Data*)integer3; | |
148 task->maxOdg = task->odg + 1; | |
149 taskManager->context = task; | 141 taskManager->context = task; |
150 taskManager->next = C_createTask1; | 142 taskManager->next = C_createTask1; |
151 goto meta(context, taskManager->taskManager->TaskManager.spawn); | 143 goto meta(context, taskManager->taskManager->TaskManager.spawn); |
152 } | 144 goto meta(context, codeGear->codeGear->CodeGear.); |
153 | 145 } |
154 __code createTask5_stub(struct Context* context) { | 146 |
147 __code createTask4_stub(struct Context* context) { | |
155 Integer* integer1 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer; | 148 Integer* integer1 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer; |
156 Integer* integer2 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer; | 149 Integer* integer2 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer; |
157 goto createTask5(context, | 150 goto createTask5(context, |
158 Gearef(context, LoopCounter), | 151 Gearef(context, LoopCounter), |
159 Gearef(context, TaskManager), | 152 Gearef(context, TaskManager), |