X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/199b029b33b5b9fbe1eacb50828914f3b38bde2f..21756925d57a6fb6de1dfea9c3e1842d0f101d2c:/src/mc/private.h diff --git a/src/mc/private.h b/src/mc/private.h index 56a10029da..42b30001e9 100644 --- a/src/mc/private.h +++ b/src/mc/private.h @@ -16,7 +16,7 @@ #include "xbt/setset.h" #include "xbt/config.h" #include "xbt/function_types.h" -#include "mmalloc.h" +#include "xbt/mmalloc.h" #include "../simix/private.h" /****************************** Snapshots ***********************************/ @@ -66,27 +66,34 @@ void MC_dpor(void); typedef struct s_mc_transition{ XBT_SETSET_HEADERS; char* name; - unsigned int refcount; mc_trans_type_t type; smx_process_t process; smx_rdv_t rdv; smx_comm_t comm; /* reference to the simix network communication */ + + /* Used only for random transitions */ + int min; /* min random value */ + int max; /* max random value */ + int current_value; /* current value */ } s_mc_transition_t; +void MC_random_create(int,int); void MC_transition_delete(mc_transition_t); int MC_transition_depend(mc_transition_t, mc_transition_t); /******************************** States **************************************/ typedef struct mc_state{ - xbt_setset_set_t transitions; - xbt_setset_set_t enabled_transitions; - xbt_setset_set_t interleave; - xbt_setset_set_t done; - mc_transition_t executed_transition; + xbt_setset_set_t created_transitions; /* created in this state */ + xbt_setset_set_t transitions; /* created in this state + inherited */ + xbt_setset_set_t enabled_transitions; /* they can be executed by the mc */ + xbt_setset_set_t interleave; /* the ones to be executed by the mc */ + xbt_setset_set_t done; /* already executed transitions */ + mc_transition_t executed_transition; /* last executed transition */ } s_mc_state_t, *mc_state_t; extern xbt_fifo_t mc_stack; extern xbt_setset_t mc_setset; +extern mc_state_t mc_current_state; mc_state_t MC_state_new(void); void MC_state_delete(mc_state_t); @@ -108,14 +115,13 @@ void MC_print_statistics(mc_stats_t); /* Normally the system should operate in std, for switching to raw mode */ /* you must wrap the code between MC_SET_RAW_MODE and MC_UNSET_RAW_MODE */ -extern void *actual_heap; extern void *std_heap; extern void *raw_heap; extern void *libsimgrid_data_addr_start; extern size_t libsimgrid_data_size; -#define MC_SET_RAW_MEM actual_heap = raw_heap -#define MC_UNSET_RAW_MEM actual_heap = std_heap +#define MC_SET_RAW_MEM mmalloc_set_current_heap(raw_heap) +#define MC_UNSET_RAW_MEM mmalloc_set_current_heap(std_heap) /******************************* MEMORY MAPPINGS ***************************/ /* These functions and data structures implements a binary interface for */