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);
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;
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);
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);