* That's not about http://en.wikipedia.org/wiki/Poop, despite the odor :)
*/
+#include <xbt/base.h>
#include "smx_private.h"
#ifdef HAVE_MC
-#include "mc/mc_forward.h"
+#include "src/mc/mc_forward.h"
#endif
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_popping);
/** @brief Simcalls' names (generated from src/simix/simcalls.in) */
const char* simcall_names[] = {
- [SIMCALL_HOST_GET_BY_NAME] = "SIMCALL_HOST_GET_BY_NAME",
- [SIMCALL_HOST_GET_NAME] = "SIMCALL_HOST_GET_NAME",
[SIMCALL_HOST_ON] = "SIMCALL_HOST_ON",
[SIMCALL_HOST_OFF] = "SIMCALL_HOST_OFF",
[SIMCALL_HOST_GET_PROPERTIES] = "SIMCALL_HOST_GET_PROPERTIES",
- [SIMCALL_HOST_GET_CORE] = "SIMCALL_HOST_GET_CORE",
[SIMCALL_HOST_GET_PROCESS_LIST] = "SIMCALL_HOST_GET_PROCESS_LIST",
- [SIMCALL_HOST_GET_SPEED] = "SIMCALL_HOST_GET_SPEED",
- [SIMCALL_HOST_GET_AVAILABLE_SPEED] = "SIMCALL_HOST_GET_AVAILABLE_SPEED",
- [SIMCALL_HOST_GET_STATE] = "SIMCALL_HOST_GET_STATE",
[SIMCALL_HOST_GET_CURRENT_POWER_PEAK] = "SIMCALL_HOST_GET_CURRENT_POWER_PEAK",
[SIMCALL_HOST_GET_POWER_PEAK_AT] = "SIMCALL_HOST_GET_POWER_PEAK_AT",
- [SIMCALL_HOST_GET_NB_PSTATES] = "SIMCALL_HOST_GET_NB_PSTATES",
[SIMCALL_HOST_GET_WATTMIN_AT] = "SIMCALL_HOST_GET_WATTMIN_AT",
[SIMCALL_HOST_GET_WATTMAX_AT] = "SIMCALL_HOST_GET_WATTMAX_AT",
[SIMCALL_HOST_SET_PSTATE] = "SIMCALL_HOST_SET_PSTATE",
- [SIMCALL_HOST_GET_PSTATE] = "SIMCALL_HOST_GET_PSTATE",
- [SIMCALL_HOST_GET_CONSUMED_ENERGY] = "SIMCALL_HOST_GET_CONSUMED_ENERGY",
- [SIMCALL_HOST_EXECUTE] = "SIMCALL_HOST_EXECUTE",
- [SIMCALL_HOST_PARALLEL_EXECUTE] = "SIMCALL_HOST_PARALLEL_EXECUTE",
- [SIMCALL_HOST_EXECUTION_DESTROY] = "SIMCALL_HOST_EXECUTION_DESTROY",
- [SIMCALL_HOST_EXECUTION_CANCEL] = "SIMCALL_HOST_EXECUTION_CANCEL",
- [SIMCALL_HOST_EXECUTION_GET_REMAINS] = "SIMCALL_HOST_EXECUTION_GET_REMAINS",
- [SIMCALL_HOST_EXECUTION_GET_STATE] = "SIMCALL_HOST_EXECUTION_GET_STATE",
- [SIMCALL_HOST_EXECUTION_SET_PRIORITY] = "SIMCALL_HOST_EXECUTION_SET_PRIORITY",
- [SIMCALL_HOST_EXECUTION_SET_BOUND] = "SIMCALL_HOST_EXECUTION_SET_BOUND",
- [SIMCALL_HOST_EXECUTION_SET_AFFINITY] = "SIMCALL_HOST_EXECUTION_SET_AFFINITY",
- [SIMCALL_HOST_EXECUTION_WAIT] = "SIMCALL_HOST_EXECUTION_WAIT",
[SIMCALL_HOST_GET_MOUNTED_STORAGE_LIST] = "SIMCALL_HOST_GET_MOUNTED_STORAGE_LIST",
[SIMCALL_HOST_GET_ATTACHED_STORAGE_LIST] = "SIMCALL_HOST_GET_ATTACHED_STORAGE_LIST",
[SIMCALL_HOST_GET_PARAMS] = "SIMCALL_HOST_GET_PARAMS",
[SIMCALL_PROCESS_KILL] = "SIMCALL_PROCESS_KILL",
[SIMCALL_PROCESS_KILLALL] = "SIMCALL_PROCESS_KILLALL",
[SIMCALL_PROCESS_CLEANUP] = "SIMCALL_PROCESS_CLEANUP",
- [SIMCALL_PROCESS_CHANGE_HOST] = "SIMCALL_PROCESS_CHANGE_HOST",
[SIMCALL_PROCESS_SUSPEND] = "SIMCALL_PROCESS_SUSPEND",
[SIMCALL_PROCESS_RESUME] = "SIMCALL_PROCESS_RESUME",
[SIMCALL_PROCESS_COUNT] = "SIMCALL_PROCESS_COUNT",
[SIMCALL_PROCESS_GET_PPID] = "SIMCALL_PROCESS_GET_PPID",
[SIMCALL_PROCESS_GET_DATA] = "SIMCALL_PROCESS_GET_DATA",
[SIMCALL_PROCESS_SET_DATA] = "SIMCALL_PROCESS_SET_DATA",
+ [SIMCALL_PROCESS_SET_HOST] = "SIMCALL_PROCESS_SET_HOST",
[SIMCALL_PROCESS_GET_HOST] = "SIMCALL_PROCESS_GET_HOST",
[SIMCALL_PROCESS_GET_NAME] = "SIMCALL_PROCESS_GET_NAME",
[SIMCALL_PROCESS_IS_SUSPENDED] = "SIMCALL_PROCESS_IS_SUSPENDED",
[SIMCALL_PROCESS_GET_PROPERTIES] = "SIMCALL_PROCESS_GET_PROPERTIES",
[SIMCALL_PROCESS_JOIN] = "SIMCALL_PROCESS_JOIN",
[SIMCALL_PROCESS_SLEEP] = "SIMCALL_PROCESS_SLEEP",
+ [SIMCALL_PROCESS_EXECUTE] = "SIMCALL_PROCESS_EXECUTE",
+ [SIMCALL_PROCESS_PARALLEL_EXECUTE] = "SIMCALL_PROCESS_PARALLEL_EXECUTE",
+ [SIMCALL_PROCESS_EXECUTION_DESTROY] = "SIMCALL_PROCESS_EXECUTION_DESTROY",
+ [SIMCALL_PROCESS_EXECUTION_CANCEL] = "SIMCALL_PROCESS_EXECUTION_CANCEL",
+ [SIMCALL_PROCESS_EXECUTION_GET_REMAINS] = "SIMCALL_PROCESS_EXECUTION_GET_REMAINS",
+ [SIMCALL_PROCESS_EXECUTION_GET_STATE] = "SIMCALL_PROCESS_EXECUTION_GET_STATE",
+ [SIMCALL_PROCESS_EXECUTION_SET_PRIORITY] = "SIMCALL_PROCESS_EXECUTION_SET_PRIORITY",
+ [SIMCALL_PROCESS_EXECUTION_SET_BOUND] = "SIMCALL_PROCESS_EXECUTION_SET_BOUND",
+ [SIMCALL_PROCESS_EXECUTION_SET_AFFINITY] = "SIMCALL_PROCESS_EXECUTION_SET_AFFINITY",
+ [SIMCALL_PROCESS_EXECUTION_WAIT] = "SIMCALL_PROCESS_EXECUTION_WAIT",
[SIMCALL_PROCESS_ON_EXIT] = "SIMCALL_PROCESS_ON_EXIT",
[SIMCALL_PROCESS_AUTO_RESTART_SET] = "SIMCALL_PROCESS_AUTO_RESTART_SET",
[SIMCALL_PROCESS_RESTART] = "SIMCALL_PROCESS_RESTART",
if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP)
return;
switch (simcall->call) {
-case SIMCALL_HOST_GET_BY_NAME:
- simcall->result.dp = SIMIX_host_get_by_name( simcall->args[0].cc);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_GET_NAME:
- simcall->result.cc = SIMIX_host_get_name((sg_host_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
case SIMCALL_HOST_ON:
SIMIX_host_on((sg_host_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
SIMIX_simcall_answer(simcall);
break;
-case SIMCALL_HOST_GET_CORE:
- simcall->result.i = SIMIX_host_get_core((sg_host_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
case SIMCALL_HOST_GET_PROCESS_LIST:
simcall->result.dp = SIMIX_host_get_process_list((sg_host_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
-case SIMCALL_HOST_GET_SPEED:
- simcall->result.d = SIMIX_host_get_speed((sg_host_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_GET_AVAILABLE_SPEED:
- simcall->result.d = SIMIX_host_get_available_speed((sg_host_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_GET_STATE:
- simcall->result.i = SIMIX_host_get_state((sg_host_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
case SIMCALL_HOST_GET_CURRENT_POWER_PEAK:
simcall->result.d = SIMIX_host_get_current_power_peak((sg_host_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
SIMIX_simcall_answer(simcall);
break;
-case SIMCALL_HOST_GET_NB_PSTATES:
- simcall->result.i = SIMIX_host_get_nb_pstates((sg_host_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
case SIMCALL_HOST_GET_WATTMIN_AT:
simcall->result.d = SIMIX_host_get_wattmin_at((sg_host_t) simcall->args[0].dp, simcall->args[1].i);
SIMIX_simcall_answer(simcall);
SIMIX_simcall_answer(simcall);
break;
-case SIMCALL_HOST_GET_PSTATE:
- simcall->result.i = SIMIX_host_get_pstate((sg_host_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_GET_CONSUMED_ENERGY:
- simcall->result.d = SIMIX_host_get_consumed_energy((sg_host_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTE:
- simcall->result.dp = SIMIX_host_execute( simcall->args[0].cc,(sg_host_t) simcall->args[1].dp, simcall->args[2].d, simcall->args[3].d, simcall->args[4].d, simcall->args[5].ul);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_PARALLEL_EXECUTE:
- simcall->result.dp = SIMIX_host_parallel_execute( simcall->args[0].cc, simcall->args[1].i,(sg_host_t*) simcall->args[2].dp,(double*) simcall->args[3].dp,(double*) simcall->args[4].dp, simcall->args[5].d, simcall->args[6].d);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTION_DESTROY:
- SIMIX_host_execution_destroy((smx_synchro_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTION_CANCEL:
- SIMIX_host_execution_cancel((smx_synchro_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTION_GET_REMAINS:
- simcall->result.d = SIMIX_host_execution_get_remains((smx_synchro_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTION_GET_STATE:
- simcall->result.i = SIMIX_host_execution_get_state((smx_synchro_t) simcall->args[0].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTION_SET_PRIORITY:
- SIMIX_host_execution_set_priority((smx_synchro_t) simcall->args[0].dp, simcall->args[1].d);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTION_SET_BOUND:
- SIMIX_host_execution_set_bound((smx_synchro_t) simcall->args[0].dp, simcall->args[1].d);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTION_SET_AFFINITY:
- SIMIX_host_execution_set_affinity((smx_synchro_t) simcall->args[0].dp,(sg_host_t) simcall->args[1].dp, simcall->args[2].ul);
- SIMIX_simcall_answer(simcall);
- break;
-
-case SIMCALL_HOST_EXECUTION_WAIT:
- simcall_HANDLER_host_execution_wait(simcall , (smx_synchro_t) simcall->args[0].dp);
- break;
-
case SIMCALL_HOST_GET_MOUNTED_STORAGE_LIST:
simcall->result.dp = SIMIX_host_get_mounted_storage_list((sg_host_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_GET_PARAMS:
- SIMIX_host_get_params((sg_host_t) simcall->args[0].dp,(ws_params_t) simcall->args[1].dp);
+ SIMIX_host_get_params((sg_host_t) simcall->args[0].dp,(vm_params_t) simcall->args[1].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_HOST_SET_PARAMS:
- SIMIX_host_set_params((sg_host_t) simcall->args[0].dp,(ws_params_t) simcall->args[1].dp);
+ SIMIX_host_set_params((sg_host_t) simcall->args[0].dp,(vm_params_t) simcall->args[1].dp);
SIMIX_simcall_answer(simcall);
break;
break;
case SIMCALL_PROCESS_CREATE:
- simcall_HANDLER_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);
+ simcall->result.dp = simcall_HANDLER_process_create(simcall , simcall->args[0].cc, (xbt_main_func_t) simcall->args[1].fp, simcall->args[2].dp, simcall->args[3].cc, simcall->args[4].d, simcall->args[5].i, (char**) simcall->args[6].dp, (xbt_dict_t) simcall->args[7].dp, simcall->args[8].i);
SIMIX_simcall_answer(simcall);
break;
SIMIX_simcall_answer(simcall);
break;
-case SIMCALL_PROCESS_CHANGE_HOST:
- simcall_HANDLER_process_change_host(simcall , (smx_process_t) simcall->args[0].dp, (sg_host_t) simcall->args[1].dp);
- SIMIX_simcall_answer(simcall);
- break;
-
case SIMCALL_PROCESS_SUSPEND:
simcall_HANDLER_process_suspend(simcall , (smx_process_t) simcall->args[0].dp);
break;
SIMIX_simcall_answer(simcall);
break;
+case SIMCALL_PROCESS_SET_HOST:
+ simcall_HANDLER_process_set_host(simcall , (smx_process_t) simcall->args[0].dp, (sg_host_t) simcall->args[1].dp);
+ SIMIX_simcall_answer(simcall);
+ break;
+
case SIMCALL_PROCESS_GET_HOST:
simcall->result.dp = SIMIX_process_get_host((smx_process_t) simcall->args[0].dp);
SIMIX_simcall_answer(simcall);
simcall_HANDLER_process_sleep(simcall , simcall->args[0].d);
break;
+case SIMCALL_PROCESS_EXECUTE:
+ simcall->result.dp = simcall_HANDLER_process_execute(simcall , simcall->args[0].cc, simcall->args[1].d, simcall->args[2].d, simcall->args[3].d, simcall->args[4].ul);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_PARALLEL_EXECUTE:
+ simcall->result.dp = SIMIX_process_parallel_execute( simcall->args[0].cc, simcall->args[1].i,(sg_host_t*) simcall->args[2].dp,(double*) simcall->args[3].dp,(double*) simcall->args[4].dp, simcall->args[5].d, simcall->args[6].d);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_EXECUTION_DESTROY:
+ SIMIX_process_execution_destroy((smx_synchro_t) simcall->args[0].dp);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_EXECUTION_CANCEL:
+ SIMIX_process_execution_cancel((smx_synchro_t) simcall->args[0].dp);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_EXECUTION_GET_REMAINS:
+ simcall->result.d = SIMIX_process_execution_get_remains((smx_synchro_t) simcall->args[0].dp);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_EXECUTION_GET_STATE:
+ simcall->result.i = SIMIX_process_execution_get_state((smx_synchro_t) simcall->args[0].dp);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_EXECUTION_SET_PRIORITY:
+ SIMIX_process_execution_set_priority((smx_synchro_t) simcall->args[0].dp, simcall->args[1].d);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_EXECUTION_SET_BOUND:
+ SIMIX_process_execution_set_bound((smx_synchro_t) simcall->args[0].dp, simcall->args[1].d);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_EXECUTION_SET_AFFINITY:
+ SIMIX_process_execution_set_affinity((smx_synchro_t) simcall->args[0].dp,(sg_host_t) simcall->args[1].dp, simcall->args[2].ul);
+ SIMIX_simcall_answer(simcall);
+ break;
+
+case SIMCALL_PROCESS_EXECUTION_WAIT:
+ simcall_HANDLER_process_execution_wait(simcall , (smx_synchro_t) simcall->args[0].dp);
+ break;
+
case SIMCALL_PROCESS_ON_EXIT:
SIMIX_process_on_exit((smx_process_t) simcall->args[0].dp,(int_f_pvoid_pvoid_t) simcall->args[1].fp, simcall->args[2].dp);
SIMIX_simcall_answer(simcall);
break;
case SIMCALL_COMM_RECV:
- simcall_HANDLER_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);
+ simcall_HANDLER_comm_recv(simcall , (smx_process_t) simcall->args[0].dp, (smx_rdv_t) simcall->args[1].dp, simcall->args[2].dp, (size_t*) simcall->args[3].dp, (simix_match_func_t) simcall->args[4].fp, (simix_copy_data_func_t) simcall->args[5].fp, simcall->args[6].dp, simcall->args[7].d, simcall->args[8].d);
break;
case SIMCALL_COMM_IRECV:
- simcall->result.dp = simcall_HANDLER_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);
+ simcall->result.dp = simcall_HANDLER_comm_irecv(simcall , (smx_process_t) simcall->args[0].dp, (smx_rdv_t) simcall->args[1].dp, simcall->args[2].dp, (size_t*) simcall->args[3].dp, (simix_match_func_t) simcall->args[4].fp, (simix_copy_data_func_t) simcall->args[5].fp, simcall->args[6].dp, simcall->args[7].d);
SIMIX_simcall_answer(simcall);
break;