From 220a6109b767302515959ba7b80a36cfd9fd94ca Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Fri, 10 Oct 2014 01:08:53 +0200 Subject: [PATCH] make my previous commit also compile under MC (sorry) --- buildtools/Cmake/DefinePackages.cmake | 1 + src/mc/mc_interface.h | 23 +++++++++++++++++++++++ src/mc/mc_private.h | 8 +++----- src/simix/smx_user.c | 2 +- 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 src/mc/mc_interface.h diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index 24f231297d..3c7a22a26d 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -611,6 +611,7 @@ set(MC_SRC src/mc/mc_global.c src/mc/mc_hash.c src/mc/mc_ignore.c + src/mc/mc_interface.h src/mc/mc_liveness.c src/mc/mc_member.c src/mc/mc_memory.c diff --git a/src/mc/mc_interface.h b/src/mc/mc_interface.h new file mode 100644 index 0000000000..0105f37e92 --- /dev/null +++ b/src/mc/mc_interface.h @@ -0,0 +1,23 @@ +/* MC interface: definitions that non-MC modules must see, but not the user */ + +/* Copyright (c) 2007-2014. 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. */ + +#ifndef MC_INTERFACE_H +#define MC_INTERFACE_H +#include "mc/mc.h" + +SG_BEGIN_DECL() + +typedef struct s_mc_snapshot *mc_snapshot_t; + +/* These are the MC-specific simcalls, that smx_user needs to see */ +mc_snapshot_t SIMIX_pre_mc_snapshot(smx_simcall_t simcall); +int SIMIX_pre_mc_compare_snapshots(smx_simcall_t simcall, mc_snapshot_t s1, mc_snapshot_t s2); +int SIMIX_pre_mc_random(smx_simcall_t simcall, int min, int max); + +SG_END_DECL() + +#endif diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index 09413c4153..1147044e5b 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -31,6 +31,7 @@ #include "xbt/parmap.h" #include "mc_mmu.h" #include "mc_page_store.h" +#include "mc_interface.h" SG_BEGIN_DECL() @@ -39,7 +40,7 @@ typedef struct s_mc_function_index_item s_mc_function_index_item_t, *mc_function /****************************** Snapshots ***********************************/ -#define NB_REGIONS 3 /* binary data (data + BSS) (type = 2), libsimgrid data (data + BSS) (type = 1), std_heap (type = 0)*/ +#define NB_REGIONS 3 /* binary data (data + BSS) (type = 2), libsimgrid data (data + BSS) (type = 1), std_heap (type = 0)*/ /** @brief Copy/snapshot of a given memory region * @@ -105,7 +106,7 @@ typedef struct s_mc_snapshot{ xbt_dynar_t to_ignore; uint64_t hash; xbt_dynar_t ignored_data; -} s_mc_snapshot_t, *mc_snapshot_t; +} s_mc_snapshot_t; /** @brief Process index used when no process is available * @@ -167,7 +168,6 @@ typedef struct s_mc_checkpoint_ignore_region{ static void* mc_snapshot_get_heap_end(mc_snapshot_t snapshot); -mc_snapshot_t SIMIX_pre_mc_snapshot(smx_simcall_t simcall); mc_snapshot_t MC_take_snapshot(int num_state); void MC_restore_snapshot(mc_snapshot_t); void MC_free_snapshot(mc_snapshot_t); @@ -235,7 +235,6 @@ void MC_wait_for_requests(void); void MC_show_deadlock(smx_simcall_t req); void MC_show_stack_safety(xbt_fifo_t stack); void MC_dump_stack_safety(xbt_fifo_t stack); -int SIMIX_pre_mc_random(smx_simcall_t simcall, int min, int max); extern xbt_fifo_t mc_stack; int get_search_interval(xbt_dynar_t list, void *ref, int *min, int *max); @@ -388,7 +387,6 @@ extern __thread mc_comparison_times_t mc_comp_times; extern __thread double mc_snapshot_comparison_time; 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); //#define MC_DEBUG 1 diff --git a/src/simix/smx_user.c b/src/simix/smx_user.c index 74affb7968..16e1f6a097 100644 --- a/src/simix/smx_user.c +++ b/src/simix/smx_user.c @@ -7,7 +7,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "smx_private.h" -#include "mc/mc.h" +#include "mc/mc_interface.h" #include "xbt/ex.h" #include /* isfinite() */ -- 2.20.1