Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : fix MC_RANDOM simcall
[simgrid.git] / src / mc / mc_private.h
index c0b6287..70b34db 100644 (file)
@@ -41,6 +41,8 @@ typedef struct s_mc_snapshot{
   size_t *stack_sizes;
   xbt_dynar_t stacks;
   xbt_dynar_t to_ignore;
+  char hash_global[41];
+  char hash_local[41];
 } s_mc_snapshot_t, *mc_snapshot_t;
 
 typedef struct s_mc_snapshot_stack{
@@ -53,12 +55,12 @@ typedef struct s_mc_global_t{
   int raw_mem_set;
 }s_mc_global_t, *mc_global_t;
 
-//void MC_take_snapshot(mc_snapshot_t);
 mc_snapshot_t SIMIX_pre_mc_snapshot(smx_simcall_t simcall);
 mc_snapshot_t MC_take_snapshot(void);
 void MC_restore_snapshot(mc_snapshot_t);
 void MC_free_snapshot(mc_snapshot_t);
 void snapshot_stack_free_voidp(void *s);
+int is_stack_ignore_variable(char *frame, char *var_name);
 
 /********************************* MC Global **********************************/
 extern double *mc_time;
@@ -70,8 +72,8 @@ void MC_wait_for_requests(void);
 void MC_show_deadlock(smx_simcall_t req);
 void MC_show_stack_safety(xbt_fifo_t stack);
 void MC_dump_stack_safety(xbt_fifo_t stack);
-
-int SIMIX_pre_mc_random(smx_simcall_t simcall, int min, int max);
+void MC_init(void);
+int SIMIX_pre_mc_random(smx_simcall_t simcall);
 
 /********************************* Requests ***********************************/
 int MC_request_depend(smx_simcall_t req1, smx_simcall_t req2);
@@ -89,6 +91,7 @@ int MC_process_is_enabled(smx_process_t process);
 typedef enum {
   MC_NOT_INTERLEAVE=0,      /* Do not interleave (do not execute) */
   MC_INTERLEAVE,            /* Interleave the process (one or more request) */
+  MC_MORE_INTERLEAVE,       /* Interleave twice the process (for mc_random simcall) */
   MC_DONE                   /* Already interleaved */
 } e_mc_process_state_t;
 
@@ -223,6 +226,8 @@ typedef struct s_mc_comparison_times{
   double libsimgrid_global_variables_comparison_time;
   double heap_comparison_time;
   double stacks_comparison_time;
+  double hash_global_variables_comparison_time;
+  double hash_local_variables_comparison_time;
 }s_mc_comparison_times_t, *mc_comparison_times_t;
 
 extern mc_comparison_times_t mc_comp_times;
@@ -247,7 +252,6 @@ extern mc_global_t initial_state_safety;
 
 void MC_dpor_init(void);
 void MC_dpor(void);
-void MC_init(void);
 
 typedef struct s_mc_safety_visited_state{
   mc_snapshot_t system_state;