X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f3c1ebdb5d5e4370a0efd5f4c0dd4f7131fe8370..984b8e1616cfd626c6244a34ccd42ee0b1e89bcd:/src/mc/mc_global.c diff --git a/src/mc/mc_global.c b/src/mc/mc_global.c index 211f26bbd1..f62e2f7230 100644 --- a/src/mc/mc_global.c +++ b/src/mc/mc_global.c @@ -12,7 +12,7 @@ #include "../simix/smx_private.h" #include "xbt/fifo.h" #include "mc_private.h" -#include "xbt/automaton/automaton_create.h" +#include "xbt/automaton.h" XBT_LOG_NEW_CATEGORY(mc, "All MC categories"); XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_global, mc, @@ -36,9 +36,8 @@ mc_stats_pair_t mc_stats_pair = NULL; xbt_fifo_t mc_stack_liveness = NULL; mc_snapshot_t initial_snapshot_liveness = NULL; -xbt_automaton_t automaton; +xbt_automaton_t _mc_property_automaton = NULL; -static void MC_init_liveness(xbt_automaton_t a); static void MC_assert_pair(int prop); @@ -78,8 +77,16 @@ void MC_init_safety(void) } -static void MC_init_liveness(xbt_automaton_t a){ +void MC_modelcheck(void) +{ + MC_init_safety(); + MC_dpor(); + MC_exit(); +} + +void MC_modelcheck_liveness(){ + /* init stuff */ XBT_DEBUG("Start init mc"); mc_time = xbt_new0(double, simix_process_maxpid); @@ -99,30 +106,10 @@ static void MC_init_liveness(xbt_automaton_t a){ MC_UNSET_RAW_MEM; - automaton = a; MC_ddfs_init(); - -} - - -void MC_modelcheck(void) -{ - MC_init_safety(); - MC_dpor(); - MC_exit(); -} - - - -void MC_modelcheck_liveness(xbt_automaton_t a){ - MC_init_liveness(a); - MC_exit_liveness(); -} - -void MC_exit_liveness(void) -{ + /* We're done */ MC_print_statistics_pairs(mc_stats_pair); //xbt_free(mc_time); //MC_memory_exit(); @@ -531,9 +518,17 @@ void MC_diff(void){ } -xbt_automaton_t MC_create_automaton(const char *file){ +void MC_automaton_load(const char *file){ + MC_SET_RAW_MEM; + if (_mc_property_automaton == NULL) + _mc_property_automaton = xbt_automaton_new(); + xbt_automaton_load(_mc_property_automaton,file); + MC_UNSET_RAW_MEM; +} +void MC_automaton_new_propositional_symbol(const char* id, void* fct) { MC_SET_RAW_MEM; - xbt_automaton_t a = xbt_create_automaton(file); + if (_mc_property_automaton == NULL) + _mc_property_automaton = xbt_automaton_new(); + xbt_new_propositional_symbol(_mc_property_automaton,id,fct); MC_UNSET_RAW_MEM; - return a; }