Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
ensure that the generated files are autonomous and not included within another file
[simgrid.git] / src / simix / simcalls_generated_case.c
1 /*********************************************
2  * File Generated by src/simix/simcalls.py   *
3  *                from src/simix/simcalls.in *
4  * Do not modify this file, add new simcalls *
5  * in src/simix/simcalls.in                  *
6  *********************************************/
7
8
9 #include "smx_private.h"
10 #ifdef HAVE_MC
11 #include "mc/mc_private.h"
12 #endif
13
14 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_smurf);
15
16 void SIMIX_simcall_pre(smx_simcall_t simcall, int value)
17 {
18   XBT_DEBUG("Handling simcall %p: %s", simcall, SIMIX_simcall_name(simcall->call));
19   SIMCALL_SET_MC_VALUE(simcall, value);
20   if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP)
21     return;
22   switch (simcall->call) {
23   case SIMCALL_HOST_GET_BY_NAME:
24       simcall->result.dp = SIMIX_pre_host_get_by_name(simcall ,  simcall->args[0].cc);
25       SIMIX_simcall_answer(simcall);
26       break;  
27
28 case SIMCALL_HOST_GET_NAME:
29       simcall->result.cc = SIMIX_pre_host_get_name(simcall , (smx_host_t) simcall->args[0].dp);
30       SIMIX_simcall_answer(simcall);
31       break;  
32
33 case SIMCALL_HOST_ON:
34        SIMIX_pre_host_on(simcall , (smx_host_t) simcall->args[0].dp);
35       SIMIX_simcall_answer(simcall);
36       break;  
37
38 case SIMCALL_HOST_OFF:
39        SIMIX_pre_host_off(simcall , (smx_host_t) simcall->args[0].dp);
40       SIMIX_simcall_answer(simcall);
41       break;  
42
43 case SIMCALL_HOST_GET_PROPERTIES:
44       simcall->result.dp = SIMIX_pre_host_get_properties(simcall , (smx_host_t) simcall->args[0].dp);
45       SIMIX_simcall_answer(simcall);
46       break;  
47
48 case SIMCALL_HOST_GET_CORE:
49       simcall->result.i = SIMIX_pre_host_get_core(simcall , (smx_host_t) simcall->args[0].dp);
50       SIMIX_simcall_answer(simcall);
51       break;  
52
53 case SIMCALL_HOST_GET_PROCESS_LIST:
54       simcall->result.dp = SIMIX_pre_host_get_process_list(simcall , (smx_host_t) simcall->args[0].dp);
55       SIMIX_simcall_answer(simcall);
56       break;  
57
58 case SIMCALL_HOST_GET_SPEED:
59       simcall->result.d = SIMIX_pre_host_get_speed(simcall , (smx_host_t) simcall->args[0].dp);
60       SIMIX_simcall_answer(simcall);
61       break;  
62
63 case SIMCALL_HOST_GET_AVAILABLE_SPEED:
64       simcall->result.d = SIMIX_pre_host_get_available_speed(simcall , (smx_host_t) simcall->args[0].dp);
65       SIMIX_simcall_answer(simcall);
66       break;  
67
68 case SIMCALL_HOST_GET_STATE:
69       simcall->result.i = SIMIX_pre_host_get_state(simcall , (smx_host_t) simcall->args[0].dp);
70       SIMIX_simcall_answer(simcall);
71       break;  
72
73 case SIMCALL_HOST_GET_CURRENT_POWER_PEAK:
74       simcall->result.d = SIMIX_pre_host_get_current_power_peak(simcall , (smx_host_t) simcall->args[0].dp);
75       SIMIX_simcall_answer(simcall);
76       break;  
77
78 case SIMCALL_HOST_GET_POWER_PEAK_AT:
79       simcall->result.d = SIMIX_pre_host_get_power_peak_at(simcall , (smx_host_t) simcall->args[0].dp,  simcall->args[1].i);
80       SIMIX_simcall_answer(simcall);
81       break;  
82
83 case SIMCALL_HOST_GET_NB_PSTATES:
84       simcall->result.i = SIMIX_pre_host_get_nb_pstates(simcall , (smx_host_t) simcall->args[0].dp);
85       SIMIX_simcall_answer(simcall);
86       break;  
87
88 case SIMCALL_HOST_SET_POWER_PEAK_AT:
89        SIMIX_pre_host_set_power_peak_at(simcall , (smx_host_t) simcall->args[0].dp,  simcall->args[1].i);
90       SIMIX_simcall_answer(simcall);
91       break;  
92
93 case SIMCALL_HOST_GET_CONSUMED_ENERGY:
94       simcall->result.d = SIMIX_pre_host_get_consumed_energy(simcall , (smx_host_t) simcall->args[0].dp);
95       SIMIX_simcall_answer(simcall);
96       break;  
97
98 case SIMCALL_HOST_EXECUTE:
99       simcall->result.dp = SIMIX_pre_host_execute(simcall ,  simcall->args[0].cc, (smx_host_t) simcall->args[1].dp,  simcall->args[2].d,  simcall->args[3].d,  simcall->args[4].d,  simcall->args[5].ul);
100       SIMIX_simcall_answer(simcall);
101       break;  
102
103 case SIMCALL_HOST_PARALLEL_EXECUTE:
104       simcall->result.dp = SIMIX_pre_host_parallel_execute(simcall ,  simcall->args[0].cc,  simcall->args[1].i, (smx_host_t*) simcall->args[2].dp, (double*) simcall->args[3].dp, (double*) simcall->args[4].dp,  simcall->args[5].d,  simcall->args[6].d);
105       SIMIX_simcall_answer(simcall);
106       break;  
107
108 case SIMCALL_HOST_EXECUTION_DESTROY:
109        SIMIX_pre_host_execution_destroy(simcall , (smx_action_t) simcall->args[0].dp);
110       SIMIX_simcall_answer(simcall);
111       break;  
112
113 case SIMCALL_HOST_EXECUTION_CANCEL:
114        SIMIX_pre_host_execution_cancel(simcall , (smx_action_t) simcall->args[0].dp);
115       SIMIX_simcall_answer(simcall);
116       break;  
117
118 case SIMCALL_HOST_EXECUTION_GET_REMAINS:
119       simcall->result.d = SIMIX_pre_host_execution_get_remains(simcall , (smx_action_t) simcall->args[0].dp);
120       SIMIX_simcall_answer(simcall);
121       break;  
122
123 case SIMCALL_HOST_EXECUTION_GET_STATE:
124       simcall->result.i = SIMIX_pre_host_execution_get_state(simcall , (smx_action_t) simcall->args[0].dp);
125       SIMIX_simcall_answer(simcall);
126       break;  
127
128 case SIMCALL_HOST_EXECUTION_SET_PRIORITY:
129        SIMIX_pre_host_execution_set_priority(simcall , (smx_action_t) simcall->args[0].dp,  simcall->args[1].d);
130       SIMIX_simcall_answer(simcall);
131       break;  
132
133 case SIMCALL_HOST_EXECUTION_SET_BOUND:
134        SIMIX_pre_host_execution_set_bound(simcall , (smx_action_t) simcall->args[0].dp,  simcall->args[1].d);
135       SIMIX_simcall_answer(simcall);
136       break;  
137
138 case SIMCALL_HOST_EXECUTION_SET_AFFINITY:
139        SIMIX_pre_host_execution_set_affinity(simcall , (smx_action_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp,  simcall->args[2].ul);
140       SIMIX_simcall_answer(simcall);
141       break;  
142
143 case SIMCALL_HOST_EXECUTION_WAIT:
144        SIMIX_pre_host_execution_wait(simcall , (smx_action_t) simcall->args[0].dp);
145        break;  
146
147 case SIMCALL_HOST_GET_MOUNTED_STORAGE_LIST:
148       simcall->result.dp = SIMIX_pre_host_get_mounted_storage_list(simcall , (smx_host_t) simcall->args[0].dp);
149       SIMIX_simcall_answer(simcall);
150       break;  
151
152 case SIMCALL_HOST_GET_ATTACHED_STORAGE_LIST:
153       simcall->result.dp = SIMIX_pre_host_get_attached_storage_list(simcall , (smx_host_t) simcall->args[0].dp);
154       SIMIX_simcall_answer(simcall);
155       break;  
156
157 case SIMCALL_HOST_GET_PARAMS:
158        SIMIX_pre_host_get_params(simcall , (smx_host_t) simcall->args[0].dp, (ws_params_t) simcall->args[1].dp);
159       SIMIX_simcall_answer(simcall);
160       break;  
161
162 case SIMCALL_HOST_SET_PARAMS:
163        SIMIX_pre_host_set_params(simcall , (smx_host_t) simcall->args[0].dp, (ws_params_t) simcall->args[1].dp);
164       SIMIX_simcall_answer(simcall);
165       break;  
166
167 case SIMCALL_VM_CREATE:
168       simcall->result.dp = SIMIX_pre_vm_create(simcall ,  simcall->args[0].cc, (smx_host_t) simcall->args[1].dp);
169       SIMIX_simcall_answer(simcall);
170       break;  
171
172 case SIMCALL_VM_START:
173        SIMIX_pre_vm_start(simcall , (smx_host_t) simcall->args[0].dp);
174       SIMIX_simcall_answer(simcall);
175       break;  
176
177 case SIMCALL_VM_GET_STATE:
178       simcall->result.i = SIMIX_pre_vm_get_state(simcall , (smx_host_t) simcall->args[0].dp);
179       SIMIX_simcall_answer(simcall);
180       break;  
181
182 case SIMCALL_VM_MIGRATE:
183        SIMIX_pre_vm_migrate(simcall , (smx_host_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp);
184       SIMIX_simcall_answer(simcall);
185       break;  
186
187 case SIMCALL_VM_GET_PM:
188       simcall->result.dp = SIMIX_pre_vm_get_pm(simcall , (smx_host_t) simcall->args[0].dp);
189       SIMIX_simcall_answer(simcall);
190       break;  
191
192 case SIMCALL_VM_SET_BOUND:
193        SIMIX_pre_vm_set_bound(simcall , (smx_host_t) simcall->args[0].dp,  simcall->args[1].d);
194       SIMIX_simcall_answer(simcall);
195       break;  
196
197 case SIMCALL_VM_SET_AFFINITY:
198        SIMIX_pre_vm_set_affinity(simcall , (smx_host_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp,  simcall->args[2].ul);
199       SIMIX_simcall_answer(simcall);
200       break;  
201
202 case SIMCALL_VM_DESTROY:
203        SIMIX_pre_vm_destroy(simcall , (smx_host_t) simcall->args[0].dp);
204       SIMIX_simcall_answer(simcall);
205       break;  
206
207 case SIMCALL_VM_SUSPEND:
208        SIMIX_pre_vm_suspend(simcall , (smx_host_t) simcall->args[0].dp);
209       SIMIX_simcall_answer(simcall);
210       break;  
211
212 case SIMCALL_VM_RESUME:
213        SIMIX_pre_vm_resume(simcall , (smx_host_t) simcall->args[0].dp);
214       SIMIX_simcall_answer(simcall);
215       break;  
216
217 case SIMCALL_VM_SHUTDOWN:
218        SIMIX_pre_vm_shutdown(simcall , (smx_host_t) simcall->args[0].dp);
219       SIMIX_simcall_answer(simcall);
220       break;  
221
222 case SIMCALL_VM_SAVE:
223        SIMIX_pre_vm_save(simcall , (smx_host_t) simcall->args[0].dp);
224       SIMIX_simcall_answer(simcall);
225       break;  
226
227 case SIMCALL_VM_RESTORE:
228        SIMIX_pre_vm_restore(simcall , (smx_host_t) simcall->args[0].dp);
229       SIMIX_simcall_answer(simcall);
230       break;  
231
232 case SIMCALL_PROCESS_CREATE:
233        SIMIX_pre_process_create(simcall , (smx_process_t*) simcall->args[0].dp,  simcall->args[1].cc, (xbt_main_func_t) simcall->args[2].fp,  simcall->args[3].dp,  simcall->args[4].cc,  simcall->args[5].d,  simcall->args[6].i, (char**) simcall->args[7].dp, (xbt_dict_t) simcall->args[8].dp,  simcall->args[9].i);
234       SIMIX_simcall_answer(simcall);
235       break;  
236
237 case SIMCALL_PROCESS_KILL:
238        SIMIX_pre_process_kill(simcall , (smx_process_t) simcall->args[0].dp);
239       SIMIX_simcall_answer(simcall);
240       break;  
241
242 case SIMCALL_PROCESS_KILLALL:
243        SIMIX_pre_process_killall(simcall ,  simcall->args[0].i);
244       SIMIX_simcall_answer(simcall);
245       break;  
246
247 case SIMCALL_PROCESS_CLEANUP:
248        SIMIX_pre_process_cleanup(simcall , (smx_process_t) simcall->args[0].dp);
249       SIMIX_simcall_answer(simcall);
250       break;  
251
252 case SIMCALL_PROCESS_CHANGE_HOST:
253        SIMIX_pre_process_change_host(simcall , (smx_process_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp);
254       SIMIX_simcall_answer(simcall);
255       break;  
256
257 case SIMCALL_PROCESS_SUSPEND:
258        SIMIX_pre_process_suspend(simcall , (smx_process_t) simcall->args[0].dp);
259        break;  
260
261 case SIMCALL_PROCESS_RESUME:
262        SIMIX_pre_process_resume(simcall , (smx_process_t) simcall->args[0].dp);
263       SIMIX_simcall_answer(simcall);
264       break;  
265
266 case SIMCALL_PROCESS_COUNT:
267       simcall->result.i = SIMIX_pre_process_count(simcall );
268       SIMIX_simcall_answer(simcall);
269       break;  
270
271 case SIMCALL_PROCESS_GET_PID:
272       simcall->result.i = SIMIX_pre_process_get_PID(simcall , (smx_process_t) simcall->args[0].dp);
273       SIMIX_simcall_answer(simcall);
274       break;  
275
276 case SIMCALL_PROCESS_GET_PPID:
277       simcall->result.i = SIMIX_pre_process_get_PPID(simcall , (smx_process_t) simcall->args[0].dp);
278       SIMIX_simcall_answer(simcall);
279       break;  
280
281 case SIMCALL_PROCESS_GET_DATA:
282       simcall->result.dp = SIMIX_pre_process_get_data(simcall , (smx_process_t) simcall->args[0].dp);
283       SIMIX_simcall_answer(simcall);
284       break;  
285
286 case SIMCALL_PROCESS_SET_DATA:
287        SIMIX_pre_process_set_data(simcall , (smx_process_t) simcall->args[0].dp,  simcall->args[1].dp);
288       SIMIX_simcall_answer(simcall);
289       break;  
290
291 case SIMCALL_PROCESS_GET_HOST:
292       simcall->result.dp = SIMIX_pre_process_get_host(simcall , (smx_process_t) simcall->args[0].dp);
293       SIMIX_simcall_answer(simcall);
294       break;  
295
296 case SIMCALL_PROCESS_GET_NAME:
297       simcall->result.cc = SIMIX_pre_process_get_name(simcall , (smx_process_t) simcall->args[0].dp);
298       SIMIX_simcall_answer(simcall);
299       break;  
300
301 case SIMCALL_PROCESS_IS_SUSPENDED:
302       simcall->result.i = SIMIX_pre_process_is_suspended(simcall , (smx_process_t) simcall->args[0].dp);
303       SIMIX_simcall_answer(simcall);
304       break;  
305
306 case SIMCALL_PROCESS_GET_PROPERTIES:
307       simcall->result.dp = SIMIX_pre_process_get_properties(simcall , (smx_process_t) simcall->args[0].dp);
308       SIMIX_simcall_answer(simcall);
309       break;  
310
311 case SIMCALL_PROCESS_JOIN:
312        SIMIX_pre_process_join(simcall , (smx_process_t) simcall->args[0].dp,  simcall->args[1].d);
313        break;  
314
315 case SIMCALL_PROCESS_SLEEP:
316        SIMIX_pre_process_sleep(simcall ,  simcall->args[0].d);
317        break;  
318
319 case SIMCALL_PROCESS_ON_EXIT:
320        SIMIX_pre_process_on_exit(simcall , (smx_process_t) simcall->args[0].dp, (int_f_pvoid_pvoid_t) simcall->args[1].fp,  simcall->args[2].dp);
321       SIMIX_simcall_answer(simcall);
322       break;  
323
324 case SIMCALL_PROCESS_AUTO_RESTART_SET:
325        SIMIX_pre_process_auto_restart_set(simcall , (smx_process_t) simcall->args[0].dp,  simcall->args[1].i);
326       SIMIX_simcall_answer(simcall);
327       break;  
328
329 case SIMCALL_PROCESS_RESTART:
330       simcall->result.dp = SIMIX_pre_process_restart(simcall , (smx_process_t) simcall->args[0].dp);
331       SIMIX_simcall_answer(simcall);
332       break;  
333
334 case SIMCALL_RDV_CREATE:
335       simcall->result.dp = SIMIX_pre_rdv_create(simcall ,  simcall->args[0].cc);
336       SIMIX_simcall_answer(simcall);
337       break;  
338
339 case SIMCALL_RDV_DESTROY:
340        SIMIX_pre_rdv_destroy(simcall , (smx_rdv_t) simcall->args[0].dp);
341       SIMIX_simcall_answer(simcall);
342       break;  
343
344 case SIMCALL_RDV_COMM_COUNT_BY_HOST:
345       simcall->result.ui = SIMIX_pre_rdv_comm_count_by_host(simcall , (smx_rdv_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp);
346       SIMIX_simcall_answer(simcall);
347       break;  
348
349 case SIMCALL_RDV_GET_HEAD:
350       simcall->result.dp = SIMIX_pre_rdv_get_head(simcall , (smx_rdv_t) simcall->args[0].dp);
351       SIMIX_simcall_answer(simcall);
352       break;  
353
354 case SIMCALL_RDV_SET_RECEIVER:
355        SIMIX_pre_rdv_set_receiver(simcall , (smx_rdv_t) simcall->args[0].dp, (smx_process_t) simcall->args[1].dp);
356       SIMIX_simcall_answer(simcall);
357       break;  
358
359 case SIMCALL_RDV_GET_RECEIVER:
360       simcall->result.dp = SIMIX_pre_rdv_get_receiver(simcall , (smx_rdv_t) simcall->args[0].dp);
361       SIMIX_simcall_answer(simcall);
362       break;  
363
364 case SIMCALL_COMM_IPROBE:
365       simcall->result.dp = SIMIX_pre_comm_iprobe(simcall , (smx_rdv_t) simcall->args[0].dp,  simcall->args[1].i,  simcall->args[2].i,  simcall->args[3].i, (simix_match_func_t) simcall->args[4].fp,  simcall->args[5].dp);
366       SIMIX_simcall_answer(simcall);
367       break;  
368
369 case SIMCALL_COMM_SEND:
370        SIMIX_pre_comm_send(simcall , (smx_process_t) simcall->args[0].dp, (smx_rdv_t) simcall->args[1].dp,  simcall->args[2].d,  simcall->args[3].d,  simcall->args[4].dp,  simcall->args[5].sz, (simix_match_func_t) simcall->args[6].fp, (simix_copy_data_func_t) simcall->args[7].fp,  simcall->args[8].dp,  simcall->args[9].d);
371        break;  
372
373 case SIMCALL_COMM_ISEND:
374       simcall->result.dp = SIMIX_pre_comm_isend(simcall , (smx_process_t) simcall->args[0].dp, (smx_rdv_t) simcall->args[1].dp,  simcall->args[2].d,  simcall->args[3].d,  simcall->args[4].dp,  simcall->args[5].sz, (simix_match_func_t) simcall->args[6].fp, (simix_clean_func_t) simcall->args[7].fp, (simix_copy_data_func_t) simcall->args[8].fp,  simcall->args[9].dp,  simcall->args[10].i);
375       SIMIX_simcall_answer(simcall);
376       break;  
377
378 case SIMCALL_COMM_RECV:
379        SIMIX_pre_comm_recv(simcall , (smx_rdv_t) simcall->args[0].dp,  simcall->args[1].dp, (size_t*) simcall->args[2].dp, (simix_match_func_t) simcall->args[3].fp, (simix_copy_data_func_t) simcall->args[4].fp,  simcall->args[5].dp,  simcall->args[6].d,  simcall->args[7].d);
380        break;  
381
382 case SIMCALL_COMM_IRECV:
383       simcall->result.dp = SIMIX_pre_comm_irecv(simcall , (smx_rdv_t) simcall->args[0].dp,  simcall->args[1].dp, (size_t*) simcall->args[2].dp, (simix_match_func_t) simcall->args[3].fp, (simix_copy_data_func_t) simcall->args[4].fp,  simcall->args[5].dp,  simcall->args[6].d);
384       SIMIX_simcall_answer(simcall);
385       break;  
386
387 case SIMCALL_COMM_CANCEL:
388        SIMIX_pre_comm_cancel(simcall , (smx_action_t) simcall->args[0].dp);
389       SIMIX_simcall_answer(simcall);
390       break;  
391
392 case SIMCALL_COMM_WAITANY:
393        SIMIX_pre_comm_waitany(simcall , (xbt_dynar_t) simcall->args[0].dp);
394        break;  
395
396 case SIMCALL_COMM_WAIT:
397        SIMIX_pre_comm_wait(simcall , (smx_action_t) simcall->args[0].dp,  simcall->args[1].d);
398        break;  
399
400 case SIMCALL_COMM_TEST:
401        SIMIX_pre_comm_test(simcall , (smx_action_t) simcall->args[0].dp);
402        break;  
403
404 case SIMCALL_COMM_TESTANY:
405        SIMIX_pre_comm_testany(simcall , (xbt_dynar_t) simcall->args[0].dp);
406        break;  
407
408 case SIMCALL_COMM_GET_REMAINS:
409       simcall->result.d = SIMIX_pre_comm_get_remains(simcall , (smx_action_t) simcall->args[0].dp);
410       SIMIX_simcall_answer(simcall);
411       break;  
412
413 case SIMCALL_COMM_GET_STATE:
414       simcall->result.i = SIMIX_pre_comm_get_state(simcall , (smx_action_t) simcall->args[0].dp);
415       SIMIX_simcall_answer(simcall);
416       break;  
417
418 case SIMCALL_COMM_GET_SRC_DATA:
419       simcall->result.dp = SIMIX_pre_comm_get_src_data(simcall , (smx_action_t) simcall->args[0].dp);
420       SIMIX_simcall_answer(simcall);
421       break;  
422
423 case SIMCALL_COMM_GET_DST_DATA:
424       simcall->result.dp = SIMIX_pre_comm_get_dst_data(simcall , (smx_action_t) simcall->args[0].dp);
425       SIMIX_simcall_answer(simcall);
426       break;  
427
428 case SIMCALL_COMM_GET_SRC_PROC:
429       simcall->result.dp = SIMIX_pre_comm_get_src_proc(simcall , (smx_action_t) simcall->args[0].dp);
430       SIMIX_simcall_answer(simcall);
431       break;  
432
433 case SIMCALL_COMM_GET_DST_PROC:
434       simcall->result.dp = SIMIX_pre_comm_get_dst_proc(simcall , (smx_action_t) simcall->args[0].dp);
435       SIMIX_simcall_answer(simcall);
436       break;  
437
438 case SIMCALL_MUTEX_INIT:
439       simcall->result.dp = SIMIX_pre_mutex_init(simcall );
440       SIMIX_simcall_answer(simcall);
441       break;  
442
443 case SIMCALL_MUTEX_DESTROY:
444        SIMIX_pre_mutex_destroy(simcall , (smx_mutex_t) simcall->args[0].dp);
445       SIMIX_simcall_answer(simcall);
446       break;  
447
448 case SIMCALL_MUTEX_LOCK:
449        SIMIX_pre_mutex_lock(simcall , (smx_mutex_t) simcall->args[0].dp);
450        break;  
451
452 case SIMCALL_MUTEX_TRYLOCK:
453       simcall->result.i = SIMIX_pre_mutex_trylock(simcall , (smx_mutex_t) simcall->args[0].dp);
454       SIMIX_simcall_answer(simcall);
455       break;  
456
457 case SIMCALL_MUTEX_UNLOCK:
458        SIMIX_pre_mutex_unlock(simcall , (smx_mutex_t) simcall->args[0].dp);
459       SIMIX_simcall_answer(simcall);
460       break;  
461
462 case SIMCALL_COND_INIT:
463       simcall->result.dp = SIMIX_pre_cond_init(simcall );
464       SIMIX_simcall_answer(simcall);
465       break;  
466
467 case SIMCALL_COND_DESTROY:
468        SIMIX_pre_cond_destroy(simcall , (smx_cond_t) simcall->args[0].dp);
469       SIMIX_simcall_answer(simcall);
470       break;  
471
472 case SIMCALL_COND_SIGNAL:
473        SIMIX_pre_cond_signal(simcall , (smx_cond_t) simcall->args[0].dp);
474       SIMIX_simcall_answer(simcall);
475       break;  
476
477 case SIMCALL_COND_WAIT:
478        SIMIX_pre_cond_wait(simcall , (smx_cond_t) simcall->args[0].dp, (smx_mutex_t) simcall->args[1].dp);
479        break;  
480
481 case SIMCALL_COND_WAIT_TIMEOUT:
482        SIMIX_pre_cond_wait_timeout(simcall , (smx_cond_t) simcall->args[0].dp, (smx_mutex_t) simcall->args[1].dp,  simcall->args[2].d);
483        break;  
484
485 case SIMCALL_COND_BROADCAST:
486        SIMIX_pre_cond_broadcast(simcall , (smx_cond_t) simcall->args[0].dp);
487       SIMIX_simcall_answer(simcall);
488       break;  
489
490 case SIMCALL_SEM_INIT:
491       simcall->result.dp = SIMIX_pre_sem_init(simcall ,  simcall->args[0].i);
492       SIMIX_simcall_answer(simcall);
493       break;  
494
495 case SIMCALL_SEM_DESTROY:
496        SIMIX_pre_sem_destroy(simcall , (smx_sem_t) simcall->args[0].dp);
497       SIMIX_simcall_answer(simcall);
498       break;  
499
500 case SIMCALL_SEM_RELEASE:
501        SIMIX_pre_sem_release(simcall , (smx_sem_t) simcall->args[0].dp);
502       SIMIX_simcall_answer(simcall);
503       break;  
504
505 case SIMCALL_SEM_WOULD_BLOCK:
506       simcall->result.i = SIMIX_pre_sem_would_block(simcall , (smx_sem_t) simcall->args[0].dp);
507       SIMIX_simcall_answer(simcall);
508       break;  
509
510 case SIMCALL_SEM_ACQUIRE:
511        SIMIX_pre_sem_acquire(simcall , (smx_sem_t) simcall->args[0].dp);
512        break;  
513
514 case SIMCALL_SEM_ACQUIRE_TIMEOUT:
515        SIMIX_pre_sem_acquire_timeout(simcall , (smx_sem_t) simcall->args[0].dp,  simcall->args[1].d);
516        break;  
517
518 case SIMCALL_SEM_GET_CAPACITY:
519       simcall->result.i = SIMIX_pre_sem_get_capacity(simcall , (smx_sem_t) simcall->args[0].dp);
520       SIMIX_simcall_answer(simcall);
521       break;  
522
523 case SIMCALL_FILE_READ:
524        SIMIX_pre_file_read(simcall , (smx_file_t) simcall->args[0].dp,  simcall->args[1].sgsz, (smx_host_t) simcall->args[2].dp);
525        break;  
526
527 case SIMCALL_FILE_WRITE:
528        SIMIX_pre_file_write(simcall , (smx_file_t) simcall->args[0].dp,  simcall->args[1].sgsz, (smx_host_t) simcall->args[2].dp);
529        break;  
530
531 case SIMCALL_FILE_OPEN:
532        SIMIX_pre_file_open(simcall ,  simcall->args[0].cc, (smx_host_t) simcall->args[1].dp);
533        break;  
534
535 case SIMCALL_FILE_CLOSE:
536        SIMIX_pre_file_close(simcall , (smx_file_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp);
537        break;  
538
539 case SIMCALL_FILE_UNLINK:
540       simcall->result.i = SIMIX_pre_file_unlink(simcall , (smx_file_t) simcall->args[0].dp, (smx_host_t) simcall->args[1].dp);
541       SIMIX_simcall_answer(simcall);
542       break;  
543
544 case SIMCALL_FILE_GET_SIZE:
545       simcall->result.sgsz = SIMIX_pre_file_get_size(simcall , (smx_file_t) simcall->args[0].dp);
546       SIMIX_simcall_answer(simcall);
547       break;  
548
549 case SIMCALL_FILE_TELL:
550       simcall->result.sgsz = SIMIX_pre_file_tell(simcall , (smx_file_t) simcall->args[0].dp);
551       SIMIX_simcall_answer(simcall);
552       break;  
553
554 case SIMCALL_FILE_SEEK:
555       simcall->result.i = SIMIX_pre_file_seek(simcall , (smx_file_t) simcall->args[0].dp,  simcall->args[1].sgoff,  simcall->args[2].i);
556       SIMIX_simcall_answer(simcall);
557       break;  
558
559 case SIMCALL_FILE_GET_INFO:
560       simcall->result.dp = SIMIX_pre_file_get_info(simcall , (smx_file_t) simcall->args[0].dp);
561       SIMIX_simcall_answer(simcall);
562       break;  
563
564 case SIMCALL_FILE_MOVE:
565       simcall->result.i = SIMIX_pre_file_move(simcall , (smx_file_t) simcall->args[0].dp,  simcall->args[1].cc);
566       SIMIX_simcall_answer(simcall);
567       break;  
568
569 case SIMCALL_STORAGE_GET_FREE_SIZE:
570       simcall->result.sgsz = SIMIX_pre_storage_get_free_size(simcall , (smx_storage_t) simcall->args[0].dp);
571       SIMIX_simcall_answer(simcall);
572       break;  
573
574 case SIMCALL_STORAGE_GET_USED_SIZE:
575       simcall->result.sgsz = SIMIX_pre_storage_get_used_size(simcall , (smx_storage_t) simcall->args[0].dp);
576       SIMIX_simcall_answer(simcall);
577       break;  
578
579 case SIMCALL_STORAGE_GET_PROPERTIES:
580       simcall->result.dp = SIMIX_pre_storage_get_properties(simcall , (smx_storage_t) simcall->args[0].dp);
581       SIMIX_simcall_answer(simcall);
582       break;  
583
584 case SIMCALL_STORAGE_GET_CONTENT:
585       simcall->result.dp = SIMIX_pre_storage_get_content(simcall , (smx_storage_t) simcall->args[0].dp);
586       SIMIX_simcall_answer(simcall);
587       break;  
588
589 case SIMCALL_ASR_GET_PROPERTIES:
590       simcall->result.dp = SIMIX_pre_asr_get_properties(simcall ,  simcall->args[0].cc);
591       SIMIX_simcall_answer(simcall);
592       break;  
593
594 #ifdef HAVE_LATENCY_BOUND_TRACKING
595 case SIMCALL_COMM_IS_LATENCY_BOUNDED:
596       simcall->result.i = SIMIX_pre_comm_is_latency_bounded(simcall , (smx_action_t) simcall->args[0].dp);
597       SIMIX_simcall_answer(simcall);
598       break;  
599
600 #endif
601
602 #ifdef HAVE_TRACING
603 case SIMCALL_SET_CATEGORY:
604        SIMIX_pre_set_category(simcall , (smx_action_t) simcall->args[0].dp,  simcall->args[1].cc);
605       SIMIX_simcall_answer(simcall);
606       break;  
607
608 #endif
609
610 #ifdef HAVE_MC
611 case SIMCALL_MC_SNAPSHOT:
612       simcall->result.dp = SIMIX_pre_mc_snapshot(simcall );
613       SIMIX_simcall_answer(simcall);
614       break;  
615
616 case SIMCALL_MC_COMPARE_SNAPSHOTS:
617       simcall->result.i = SIMIX_pre_mc_compare_snapshots(simcall ,  simcall->args[0].dp,  simcall->args[1].dp);
618       SIMIX_simcall_answer(simcall);
619       break;  
620
621 case SIMCALL_MC_RANDOM:
622       simcall->result.i = SIMIX_pre_mc_random(simcall ,  simcall->args[0].i,  simcall->args[1].i);
623       SIMIX_simcall_answer(simcall);
624       break;  
625
626 #endif
627
628     case NUM_SIMCALLS:
629       break;
630     case SIMCALL_NONE:
631       THROWF(arg_error,0,"Asked to do the noop syscall on %s@%s",
632           SIMIX_process_get_name(simcall->issuer),
633           SIMIX_host_get_name(SIMIX_process_get_host(simcall->issuer))
634           );
635       break;
636
637     /* ****************************************************************************************** */
638     /* TUTORIAL: New API                                                                        */
639     /* ****************************************************************************************** */
640     case SIMCALL_NEW_API_INIT:
641       SIMIX_pre_new_api_fct(simcall);
642       break;
643   }
644 }
645