X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e47b3e4c9b5ea0bd18d8c088320844200e4ff07e..3ae4039533d80613612bb81524c164f33384df92:/src/mc/mc_smx.h diff --git a/src/mc/mc_smx.h b/src/mc/mc_smx.h index 363bd89092..510bd2aab7 100644 --- a/src/mc/mc_smx.h +++ b/src/mc/mc_smx.h @@ -12,6 +12,8 @@ #include #include +#include "smpi/private.h" + #include "mc_process.h" #include "mc_protocol.h" @@ -43,12 +45,13 @@ struct s_mc_smx_process_info { /** (Flat) Copy of the process data structure */ struct s_smx_process copy; /** Hostname (owned by `mc_modelchecker->hostnames`) */ - char* hostname; + const char* hostname; + char* name; }; -xbt_dynar_t MC_smx_process_info_list_new(void); +XBT_INTERNAL xbt_dynar_t MC_smx_process_info_list_new(void); -void MC_process_smx_refresh(mc_process_t process); +XBT_INTERNAL void MC_process_smx_refresh(mc_process_t process); /** Get the issuer of a simcall (`req->issuer`) * @@ -59,39 +62,41 @@ void MC_process_smx_refresh(mc_process_t process); * @param process the MCed process * @param req the simcall (copied in the local process) */ -smx_process_t MC_smx_simcall_get_issuer(smx_simcall_t req); +XBT_INTERNAL smx_process_t MC_smx_simcall_get_issuer(smx_simcall_t req); -const char* MC_smx_process_get_host_name(smx_process_t p); +XBT_INTERNAL const char* MC_smx_process_get_name(smx_process_t p); +XBT_INTERNAL const char* MC_smx_process_get_host_name(smx_process_t p); #define MC_EACH_SIMIX_PROCESS(process, code) \ - if (MC_process_is_self(&mc_model_checker->process)) { \ + if (mc_mode == MC_MODE_CLIENT) { \ xbt_swag_foreach(process, simix_global->process_list) { \ code; \ } \ } else { \ - MC_process_smx_refresh(&mc_model_checker->process); \ + MC_process_smx_refresh(&mc_model_checker->process()); \ unsigned int _smx_process_index; \ mc_smx_process_info_t _smx_process_info; \ - xbt_dynar_foreach_ptr(mc_model_checker->process.smx_process_infos, _smx_process_index, _smx_process_info) { \ + xbt_dynar_foreach_ptr(mc_model_checker->process().smx_process_infos, _smx_process_index, _smx_process_info) { \ smx_process_t process = &_smx_process_info->copy; \ code; \ } \ } /** Execute a given simcall */ -void MC_simcall_handle(smx_simcall_t req, int value); +XBT_INTERNAL void MC_simcall_handle(smx_simcall_t req, int value); +XBT_INTERNAL int MC_smpi_process_count(void); /* ***** Resolve (local/MCer structure from remote/MCed addresses) ***** */ /** Get a local copy of the process from the process remote address */ -smx_process_t MC_smx_resolve_process(smx_process_t process_remote_address); +XBT_INTERNAL smx_process_t MC_smx_resolve_process(smx_process_t process_remote_address); /** Get the process info structure from the process remote address */ -mc_smx_process_info_t MC_smx_resolve_process_info(smx_process_t process_remote_address); - +XBT_INTERNAL mc_smx_process_info_t MC_smx_resolve_process_info(smx_process_t process_remote_address); +XBT_INTERNAL unsigned long MC_smx_get_maxpid(void); SG_END_DECL()