-/********************************** DPOR for safety property **************************************/
-
-typedef enum {
- e_mc_reduce_unset,
- e_mc_reduce_none,
- e_mc_reduce_dpor
-} e_mc_reduce_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);
-
-typedef struct s_mc_visited_state{
- mc_snapshot_t system_state;
- size_t heap_bytes_used;
- int nb_processes;
- int num;
-}s_mc_visited_state_t, *mc_visited_state_t;
-
-
-/********************************** Double-DFS for liveness property **************************************/
-
-extern xbt_fifo_t mc_stack_liveness;
-extern mc_global_t initial_state_liveness;
-extern xbt_automaton_t _mc_property_automaton;
-extern int compare;
-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;
- int num;
-}s_mc_pair_t, *mc_pair_t;
-
-typedef struct s_mc_acceptance_pair{
- int num;
- xbt_automaton_state_t automaton_state;
- xbt_dynar_t prop_ato;
- mc_snapshot_t system_state;
- size_t heap_bytes_used;
- int nb_processes;
-}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;
- size_t heap_bytes_used;
- int nb_processes;
-}s_mc_visited_pair_t, *mc_visited_pair_t;
-
-mc_pair_t MC_pair_new(mc_state_t sg, xbt_automaton_state_t st, int r);
-void MC_pair_delete(mc_pair_t);
-
-void MC_ddfs_init(void);
-void MC_ddfs(int search_cycle);
-void MC_show_stack_liveness(xbt_fifo_t stack);
-void MC_dump_stack_liveness(xbt_fifo_t stack);
-
-
-/********************************** Local variables with DWARF **********************************/
-
-typedef enum {
- e_dw_loclist,
- e_dw_register,
- e_dw_bregister_op,
- e_dw_lit,
- e_dw_fbregister_op,
- e_dw_piece,
- e_dw_arithmetic,
- e_dw_plus_uconst,
- e_dw_compose,
- e_dw_deref,
- e_dw_uconstant,
- e_dw_sconstant,
- e_dw_unsupported
-} e_dw_location_type;
-
-typedef struct s_dw_location{
- e_dw_location_type type;
- union{
-
- xbt_dynar_t loclist;
-
- int reg;
-
- struct{
- unsigned int reg;
- int offset;
- }breg_op;
-
- unsigned int lit;
-
- int fbreg_op;
-
- int piece;
-
- unsigned short int deref_size;
-
- xbt_dynar_t compose;
-
- char *arithmetic;
-
- struct{
- int bytes;
- long unsigned int value;
- }uconstant;
-
- struct{
- int bytes;
- long signed int value;
- }sconstant;
-
- unsigned int plus_uconst;
-
- }location;
-}s_dw_location_t, *dw_location_t;
-
-typedef struct s_dw_location_entry{
- long lowpc;
- long highpc;
- dw_location_t location;
-}s_dw_location_entry_t, *dw_location_entry_t;
-
-typedef struct s_dw_local_variable{
- char *name;
- dw_location_t location;
-}s_dw_local_variable_t, *dw_local_variable_t;
-
-typedef struct s_dw_frame{
- char *name;
- void *low_pc;
- void *high_pc;
- dw_location_t frame_base;
- xbt_dict_t variables;
- unsigned long int start;
- unsigned long int end;
-}s_dw_frame_t, *dw_frame_t;
-
-/* FIXME : implement free functions for each structure */
-
-extern xbt_dict_t mc_local_variables;
-
-typedef struct s_variable_value{
- char *type;
-
- union{
- void *address;
- long int res;
- }value;
-}s_variable_value_t, *variable_value_t;
-
-void variable_value_free_voidp(void* v);
-void variable_value_free(variable_value_t v);
-
-void MC_get_local_variables(const char *elf_file, xbt_dict_t location_list, xbt_dict_t *variables);
-void print_local_variables(xbt_dict_t list);
-xbt_dict_t MC_get_location_list(const char *elf_file);
-
-
-/********************************** Global variables with objdump **********************************/
-
-typedef struct s_global_variable{
- char *name;
- size_t size;
- void *address;
-}s_global_variable_t, *global_variable_t;
-
-void global_variable_free(global_variable_t v);
-void global_variable_free_voidp(void *v);
-
-extern xbt_dynar_t mc_global_variables;