Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : generate dot file for the verification of liveness properties
[simgrid.git] / src / mc / mc_private.h
index 15deac2..05336af 100644 (file)
@@ -53,6 +53,8 @@ typedef struct s_mc_snapshot_stack{
 typedef struct s_mc_global_t{
   mc_snapshot_t snapshot;
   int raw_mem_set;
+  int prev_pair;
+  char *prev_req;
 }s_mc_global_t, *mc_global_t;
 
 mc_snapshot_t SIMIX_pre_mc_snapshot(smx_simcall_t simcall);
@@ -140,7 +142,9 @@ void MC_state_remove_interleave_process(mc_state_t state, smx_process_t process)
 typedef struct mc_stats {
   unsigned long state_size;
   unsigned long visited_states;
+  unsigned long visited_pairs;
   unsigned long expanded_states;
+  unsigned long expanded_pairs;
   unsigned long executed_transitions;
 } s_mc_stats_t, *mc_stats_t;
 
@@ -259,6 +263,7 @@ typedef enum {
 extern e_mc_reduce_t mc_reduce_kind;
 extern mc_global_t initial_state_safety;
 extern xbt_fifo_t mc_stack_safety;
+extern xbt_dict_t first_enabled_state;
 
 void MC_dpor_init(void);
 void MC_dpor(void);
@@ -281,33 +286,24 @@ extern xbt_dynar_t mc_stack_comparison_ignore;
 extern xbt_dynar_t mc_data_bss_comparison_ignore;
 
 typedef struct s_mc_pair{
-  mc_snapshot_t system_state;
-  mc_state_t graph_state;
-  xbt_automaton_state_t automaton_state;
-  int requests;
-}s_mc_pair_t, *mc_pair_t;
-
-typedef struct s_mc_acceptance_pair{
   int num;
+  int search_cycle;
+  mc_state_t graph_state; /* System state included */
   xbt_automaton_state_t automaton_state;
-  xbt_dynar_t prop_ato;
-  mc_snapshot_t system_state;
-}s_mc_acceptance_pair_t, *mc_acceptance_pair_t;
-
-typedef struct s_mc_visited_pair{
-  xbt_automaton_state_t automaton_state;
-  xbt_dynar_t prop_ato;
-  mc_snapshot_t system_state;
-  int num;
+  xbt_dynar_t atomic_propositions;
+  int requests;
   size_t heap_bytes_used;
   int nb_processes;
-}s_mc_visited_pair_t, *mc_visited_pair_t;
+  int stack_removed;
+  int visited_removed;
+  int acceptance_removed;
+}s_mc_pair_t, *mc_pair_t;
 
-mc_pair_t MC_pair_new(mc_state_t sg, xbt_automaton_state_t st, int r);
+mc_pair_t MC_pair_new(void);
 void MC_pair_delete(mc_pair_t);
 
 void MC_ddfs_init(void);
-void MC_ddfs(int search_cycle);
+void MC_ddfs(void);
 void MC_show_stack_liveness(xbt_fifo_t stack);
 void MC_dump_stack_liveness(xbt_fifo_t stack);