- case SIMCALL_COMM_WAITANY:
- simcall_HANDLER_comm_waitany(
- &simcall, simgrid::simix::unmarshal<simgrid::kernel::activity::CommImpl**>(simcall.args[0]),
- simgrid::simix::unmarshal<size_t>(simcall.args[1]), simgrid::simix::unmarshal<double>(simcall.args[2]));
- break;
-
- case SIMCALL_COMM_WAIT:
- simcall_HANDLER_comm_wait(&simcall,
- simgrid::simix::unmarshal<simgrid::kernel::activity::CommImpl*>(simcall.args[0]),
- simgrid::simix::unmarshal<double>(simcall.args[1]));
- break;
-
- case SIMCALL_COMM_TEST:
- simcall_HANDLER_comm_test(&simcall,
- simgrid::simix::unmarshal<simgrid::kernel::activity::CommImpl*>(simcall.args[0]));
- break;
-
- case SIMCALL_COMM_TESTANY:
- simcall_HANDLER_comm_testany(&simcall,
- simgrid::simix::unmarshal<simgrid::kernel::activity::CommImpl**>(simcall.args[0]),
- simgrid::simix::unmarshal<size_t>(simcall.args[1]));
- break;
-
- case SIMCALL_MUTEX_LOCK:
- simcall_HANDLER_mutex_lock(&simcall, simgrid::simix::unmarshal<smx_mutex_t>(simcall.args[0]));
- break;
-
- case SIMCALL_MUTEX_TRYLOCK:
- simgrid::simix::marshal<int>(
- simcall.result,
- simcall_HANDLER_mutex_trylock(&simcall, simgrid::simix::unmarshal<smx_mutex_t>(simcall.args[0])));
- SIMIX_simcall_answer(&simcall);
- break;
-
- case SIMCALL_MUTEX_UNLOCK:
- simcall_HANDLER_mutex_unlock(&simcall, simgrid::simix::unmarshal<smx_mutex_t>(simcall.args[0]));
- SIMIX_simcall_answer(&simcall);
- break;
-
- case SIMCALL_COND_WAIT:
- simcall_HANDLER_cond_wait(&simcall, simgrid::simix::unmarshal<smx_cond_t>(simcall.args[0]),
- simgrid::simix::unmarshal<smx_mutex_t>(simcall.args[1]));
- break;
-
- case SIMCALL_COND_WAIT_TIMEOUT:
- simcall_HANDLER_cond_wait_timeout(&simcall, simgrid::simix::unmarshal<smx_cond_t>(simcall.args[0]),
- simgrid::simix::unmarshal<smx_mutex_t>(simcall.args[1]),
- simgrid::simix::unmarshal<double>(simcall.args[2]));
- break;
-
- case SIMCALL_SEM_ACQUIRE:
- simcall_HANDLER_sem_acquire(&simcall, simgrid::simix::unmarshal<smx_sem_t>(simcall.args[0]));
- break;
-
- case SIMCALL_SEM_ACQUIRE_TIMEOUT:
- simcall_HANDLER_sem_acquire_timeout(&simcall, simgrid::simix::unmarshal<smx_sem_t>(simcall.args[0]),
- simgrid::simix::unmarshal<double>(simcall.args[1]));
- break;
-
- case SIMCALL_IO_WAIT:
- simcall_HANDLER_io_wait(&simcall, simgrid::simix::unmarshal<simgrid::kernel::activity::IoImpl*>(simcall.args[0]));
- break;
-
- case SIMCALL_MC_RANDOM:
- simgrid::simix::marshal<int>(simcall.result,
- simcall_HANDLER_mc_random(&simcall, simgrid::simix::unmarshal<int>(simcall.args[0]),
- simgrid::simix::unmarshal<int>(simcall.args[1])));
- SIMIX_simcall_answer(&simcall);
- break;
-
- case SIMCALL_RUN_KERNEL:
- SIMIX_run_kernel(simgrid::simix::unmarshal<std::function<void()> const*>(simcall.args[0]));
- SIMIX_simcall_answer(&simcall);
- break;
-
- case SIMCALL_RUN_BLOCKING:
- SIMIX_run_blocking(simgrid::simix::unmarshal<std::function<void()> const*>(simcall.args[0]));
- break;
-
- case NUM_SIMCALLS:
- break;
- case SIMCALL_NONE:
- throw std::invalid_argument(simgrid::xbt::string_printf("Asked to do the noop syscall on %s@%s", get_cname(),