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 *********************************************/
9 #include "smx_private.h"
11 #include "mc/mc_private.h"
14 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_smurf);
16 void SIMIX_simcall_pre(smx_simcall_t simcall, int value)
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)
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);
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);
34 SIMIX_pre_host_on(simcall , (smx_host_t) simcall->args[0].dp);
35 SIMIX_simcall_answer(simcall);
38 case SIMCALL_HOST_OFF:
39 SIMIX_pre_host_off(simcall , (smx_host_t) simcall->args[0].dp);
40 SIMIX_simcall_answer(simcall);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
143 case SIMCALL_HOST_EXECUTION_WAIT:
144 SIMIX_pre_host_execution_wait(simcall , (smx_action_t) simcall->args[0].dp);
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);
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);
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);
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);
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);
172 case SIMCALL_VM_START:
173 SIMIX_pre_vm_start(simcall , (smx_host_t) simcall->args[0].dp);
174 SIMIX_simcall_answer(simcall);
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);
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);
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);
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);
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);
202 case SIMCALL_VM_DESTROY:
203 SIMIX_pre_vm_destroy(simcall , (smx_host_t) simcall->args[0].dp);
204 SIMIX_simcall_answer(simcall);
207 case SIMCALL_VM_SUSPEND:
208 SIMIX_pre_vm_suspend(simcall , (smx_host_t) simcall->args[0].dp);
209 SIMIX_simcall_answer(simcall);
212 case SIMCALL_VM_RESUME:
213 SIMIX_pre_vm_resume(simcall , (smx_host_t) simcall->args[0].dp);
214 SIMIX_simcall_answer(simcall);
217 case SIMCALL_VM_SHUTDOWN:
218 SIMIX_pre_vm_shutdown(simcall , (smx_host_t) simcall->args[0].dp);
219 SIMIX_simcall_answer(simcall);
222 case SIMCALL_VM_SAVE:
223 SIMIX_pre_vm_save(simcall , (smx_host_t) simcall->args[0].dp);
224 SIMIX_simcall_answer(simcall);
227 case SIMCALL_VM_RESTORE:
228 SIMIX_pre_vm_restore(simcall , (smx_host_t) simcall->args[0].dp);
229 SIMIX_simcall_answer(simcall);
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);
237 case SIMCALL_PROCESS_KILL:
238 SIMIX_pre_process_kill(simcall , (smx_process_t) simcall->args[0].dp);
239 SIMIX_simcall_answer(simcall);
242 case SIMCALL_PROCESS_KILLALL:
243 SIMIX_pre_process_killall(simcall , simcall->args[0].i);
244 SIMIX_simcall_answer(simcall);
247 case SIMCALL_PROCESS_CLEANUP:
248 SIMIX_pre_process_cleanup(simcall , (smx_process_t) simcall->args[0].dp);
249 SIMIX_simcall_answer(simcall);
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);
257 case SIMCALL_PROCESS_SUSPEND:
258 SIMIX_pre_process_suspend(simcall , (smx_process_t) simcall->args[0].dp);
261 case SIMCALL_PROCESS_RESUME:
262 SIMIX_pre_process_resume(simcall , (smx_process_t) simcall->args[0].dp);
263 SIMIX_simcall_answer(simcall);
266 case SIMCALL_PROCESS_COUNT:
267 simcall->result.i = SIMIX_pre_process_count(simcall );
268 SIMIX_simcall_answer(simcall);
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);
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);
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);
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);
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);
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);
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);
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);
311 case SIMCALL_PROCESS_JOIN:
312 SIMIX_pre_process_join(simcall , (smx_process_t) simcall->args[0].dp, simcall->args[1].d);
315 case SIMCALL_PROCESS_SLEEP:
316 SIMIX_pre_process_sleep(simcall , simcall->args[0].d);
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);
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);
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);
334 case SIMCALL_RDV_CREATE:
335 simcall->result.dp = SIMIX_pre_rdv_create(simcall , simcall->args[0].cc);
336 SIMIX_simcall_answer(simcall);
339 case SIMCALL_RDV_DESTROY:
340 SIMIX_pre_rdv_destroy(simcall , (smx_rdv_t) simcall->args[0].dp);
341 SIMIX_simcall_answer(simcall);
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);
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);
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);
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);
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);
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);
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);
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);
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);
387 case SIMCALL_COMM_CANCEL:
388 SIMIX_pre_comm_cancel(simcall , (smx_action_t) simcall->args[0].dp);
389 SIMIX_simcall_answer(simcall);
392 case SIMCALL_COMM_WAITANY:
393 SIMIX_pre_comm_waitany(simcall , (xbt_dynar_t) simcall->args[0].dp);
396 case SIMCALL_COMM_WAIT:
397 SIMIX_pre_comm_wait(simcall , (smx_action_t) simcall->args[0].dp, simcall->args[1].d);
400 case SIMCALL_COMM_TEST:
401 SIMIX_pre_comm_test(simcall , (smx_action_t) simcall->args[0].dp);
404 case SIMCALL_COMM_TESTANY:
405 SIMIX_pre_comm_testany(simcall , (xbt_dynar_t) simcall->args[0].dp);
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);
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);
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);
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);
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);
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);
438 case SIMCALL_MUTEX_INIT:
439 simcall->result.dp = SIMIX_pre_mutex_init(simcall );
440 SIMIX_simcall_answer(simcall);
443 case SIMCALL_MUTEX_DESTROY:
444 SIMIX_pre_mutex_destroy(simcall , (smx_mutex_t) simcall->args[0].dp);
445 SIMIX_simcall_answer(simcall);
448 case SIMCALL_MUTEX_LOCK:
449 SIMIX_pre_mutex_lock(simcall , (smx_mutex_t) simcall->args[0].dp);
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);
457 case SIMCALL_MUTEX_UNLOCK:
458 SIMIX_pre_mutex_unlock(simcall , (smx_mutex_t) simcall->args[0].dp);
459 SIMIX_simcall_answer(simcall);
462 case SIMCALL_COND_INIT:
463 simcall->result.dp = SIMIX_pre_cond_init(simcall );
464 SIMIX_simcall_answer(simcall);
467 case SIMCALL_COND_DESTROY:
468 SIMIX_pre_cond_destroy(simcall , (smx_cond_t) simcall->args[0].dp);
469 SIMIX_simcall_answer(simcall);
472 case SIMCALL_COND_SIGNAL:
473 SIMIX_pre_cond_signal(simcall , (smx_cond_t) simcall->args[0].dp);
474 SIMIX_simcall_answer(simcall);
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);
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);
485 case SIMCALL_COND_BROADCAST:
486 SIMIX_pre_cond_broadcast(simcall , (smx_cond_t) simcall->args[0].dp);
487 SIMIX_simcall_answer(simcall);
490 case SIMCALL_SEM_INIT:
491 simcall->result.dp = SIMIX_pre_sem_init(simcall , simcall->args[0].i);
492 SIMIX_simcall_answer(simcall);
495 case SIMCALL_SEM_DESTROY:
496 SIMIX_pre_sem_destroy(simcall , (smx_sem_t) simcall->args[0].dp);
497 SIMIX_simcall_answer(simcall);
500 case SIMCALL_SEM_RELEASE:
501 SIMIX_pre_sem_release(simcall , (smx_sem_t) simcall->args[0].dp);
502 SIMIX_simcall_answer(simcall);
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);
510 case SIMCALL_SEM_ACQUIRE:
511 SIMIX_pre_sem_acquire(simcall , (smx_sem_t) simcall->args[0].dp);
514 case SIMCALL_SEM_ACQUIRE_TIMEOUT:
515 SIMIX_pre_sem_acquire_timeout(simcall , (smx_sem_t) simcall->args[0].dp, simcall->args[1].d);
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);
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);
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);
531 case SIMCALL_FILE_OPEN:
532 SIMIX_pre_file_open(simcall , simcall->args[0].cc, (smx_host_t) simcall->args[1].dp);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
611 case SIMCALL_MC_SNAPSHOT:
612 simcall->result.dp = SIMIX_pre_mc_snapshot(simcall );
613 SIMIX_simcall_answer(simcall);
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);
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);
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))
637 /* ****************************************************************************************** */
638 /* TUTORIAL: New API */
639 /* ****************************************************************************************** */
640 case SIMCALL_NEW_API_INIT:
641 SIMIX_pre_new_api_fct(simcall);