X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e694957c5830a9f1407392fa7f76796274aa4d18..9e73c4e472a5a372d79e5716735b6557bee3f224:/src/mc/mc_private.h diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index 596e5eb984..cc581b9b32 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -1,4 +1,5 @@ -/* Copyright (c) 2007-2013 Da SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2013. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -23,6 +24,7 @@ #include "msg/msg.h" #include "msg/datatypes.h" #include "xbt/strbuff.h" +#include "xbt/parmap.h" /****************************** Snapshots ***********************************/ @@ -64,7 +66,7 @@ typedef struct s_mc_checkpoint_ignore_region{ }s_mc_checkpoint_ignore_region_t, *mc_checkpoint_ignore_region_t; mc_snapshot_t SIMIX_pre_mc_snapshot(smx_simcall_t simcall); -mc_snapshot_t MC_take_snapshot(void); +mc_snapshot_t MC_take_snapshot(int num_state); void MC_restore_snapshot(mc_snapshot_t); void MC_free_snapshot(mc_snapshot_t); @@ -75,6 +77,7 @@ extern xbt_dynar_t mc_checkpoint_ignore; extern double *mc_time; extern FILE *dot_output; extern const char* colors[13]; +extern xbt_parmap_t parmap; extern int user_max_depth_reached; @@ -249,10 +252,10 @@ typedef struct s_mc_comparison_times{ double hash_local_variables_comparison_time; }s_mc_comparison_times_t, *mc_comparison_times_t; -extern mc_comparison_times_t mc_comp_times; -extern double mc_snapshot_comparison_time; +extern __thread mc_comparison_times_t mc_comp_times; +extern __thread double mc_snapshot_comparison_time; -int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2); +int snapshot_compare(void *state1, void *state2); int SIMIX_pre_mc_compare_snapshots(smx_simcall_t simcall, mc_snapshot_t s1, mc_snapshot_t s2); void print_comparison_times(void); @@ -296,22 +299,31 @@ extern xbt_dynar_t mc_data_bss_comparison_ignore; typedef struct s_mc_pair{ int num; - int other_num; /* Dot output for */ int search_cycle; mc_state_t graph_state; /* System state included */ xbt_automaton_state_t automaton_state; xbt_dynar_t atomic_propositions; int requests; +}s_mc_pair_t, *mc_pair_t; + +typedef struct s_mc_visited_pair{ + int num; + int other_num; /* Dot output for */ + int acceptance_pair; + mc_state_t graph_state; /* System state included */ + xbt_automaton_state_t automaton_state; + xbt_dynar_t atomic_propositions; size_t heap_bytes_used; int nb_processes; - int stack_removed; - int visited_removed; int acceptance_removed; -}s_mc_pair_t, *mc_pair_t; + int visited_removed; +}s_mc_visited_pair_t, *mc_visited_pair_t; mc_pair_t MC_pair_new(void); void MC_pair_delete(mc_pair_t); void mc_pair_free_voidp(void *p); +mc_visited_pair_t MC_visited_pair_new(int pair_num, xbt_automaton_state_t automaton_state, xbt_dynar_t atomic_propositions); +void MC_visited_pair_delete(mc_visited_pair_t p); void MC_ddfs_init(void); void MC_ddfs(void); @@ -385,8 +397,8 @@ typedef struct s_dw_location{ }s_dw_location_t, *dw_location_t; typedef struct s_dw_location_entry{ - long lowpc; - long highpc; + unsigned long lowpc; + unsigned long highpc; dw_location_t location; }s_dw_location_entry_t, *dw_location_entry_t;