X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d3794e5a4de776ee8051b047f9a3da5652457038..573a49afcc1a146f9776a7a772d87efd9db77657:/src/mc/mc_base.h diff --git a/src/mc/mc_base.h b/src/mc/mc_base.h index 7027a930d6..c3a63c1bf1 100644 --- a/src/mc/mc_base.h +++ b/src/mc/mc_base.h @@ -7,22 +7,39 @@ #ifndef MC_BASE_H #define MC_BASE_H +#include #include #include "simgrid_config.h" #include "internal_config.h" #include "../simix/smx_private.h" -SG_BEGIN_DECL() +// Marker for symbols which should be defined as XBT_PRIVATE but are used in +// unit tests: +#define MC_SHOULD_BE_INTERNAL -// This variable is set by simgrid-mc in order to enable MC support in the -// children MC processes: -#define MC_ENV_VARIABLE "SIMGRIC_MC" +SG_BEGIN_DECL() +/** Check if the given simcall can be resolved + * + * \return `TRUE` or `FALSE` + */ int MC_request_is_enabled(smx_simcall_t req); + +/** Check if the given simcall is visible + * + * \return `TRUE` or `FALSE` + */ int MC_request_is_visible(smx_simcall_t req); + +/** Execute everything which is invisible + * + * Execute all the processes that are ready to run and all invisible simcalls + * iteratively until there doesn't remain any. At this point, the function + * returns to the caller which can handle the visible (and ready) simcalls. + */ void MC_wait_for_requests(void); -extern double *mc_time; +XBT_INTERNAL extern double *mc_time; SG_END_DECL()