X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/46448320f12d59d0a5efc015ec51ec6ebba525c6..fea2606dff029fec63088d8e3d9f42925a67efea:/src/mc/mc_snapshot.cpp diff --git a/src/mc/mc_snapshot.cpp b/src/mc/mc_snapshot.cpp index 324c6eae15..fdcae06bcb 100644 --- a/src/mc/mc_snapshot.cpp +++ b/src/mc/mc_snapshot.cpp @@ -6,13 +6,13 @@ #include -#include "internal_config.h" -#include "smpi/private.h" +#include "src/internal_config.h" +#include "src/smpi/private.h" -#include "mc_snapshot.h" -#include "mc_private.h" -#include "mc_mmu.h" -#include "PageStore.hpp" +#include "src/mc/mc_snapshot.h" +#include "src/mc/mc_private.h" +#include "src/mc/mc_mmu.h" +#include "src/mc/PageStore.hpp" extern "C" { @@ -171,12 +171,12 @@ Snapshot::~Snapshot() const void* Snapshot::read_bytes(void* buffer, std::size_t size, remote_ptr address, int process_index, - AddressSpace::ReadMode mode) const + ReadOptions options) const { mc_mem_region_t region = mc_get_snapshot_region((void*)address.address(), this, process_index); if (region) { const void* res = MC_region_read(region, buffer, (void*)address.address(), size); - if (buffer == res || mode == AddressSpace::Lazy) + if (buffer == res || options & ReadOptions::lazy()) return res; else { memcpy(buffer, res, size); @@ -184,12 +184,15 @@ const void* Snapshot::read_bytes(void* buffer, std::size_t size, } } else - return this->read_bytes(buffer, size, address, process_index, mode); + return this->process()->read_bytes( + buffer, size, address, process_index, options); } } } +} + #ifdef SIMGRID_TEST #include @@ -197,11 +200,9 @@ const void* Snapshot::read_bytes(void* buffer, std::size_t size, #include -#include "mc/mc_private.h" -#include "mc/mc_snapshot.h" -#include "mc/mc_mmu.h" - -extern "C" { +#include "src/mc/mc_private.h" +#include "src/mc/mc_snapshot.h" +#include "src/mc/mc_mmu.h" XBT_TEST_SUITE("mc_snapshot", "Snapshots"); @@ -231,7 +232,10 @@ static void test_snapshot(bool sparse_checkpoint) { _sg_mc_sparse_checkpoint = sparse_checkpoint; xbt_assert(xbt_pagesize == getpagesize()); xbt_assert(1 << xbt_pagebits == xbt_pagesize); - mc_model_checker = new ::simgrid::mc::ModelChecker(getpid(), -1); + + std::unique_ptr process(new simgrid::mc::Process(getpid(), -1)); + process->init(); + mc_model_checker = new ::simgrid::mc::ModelChecker(std::move(process)); for(int n=1; n!=256; ++n) { @@ -296,8 +300,5 @@ static void test_snapshot(bool sparse_checkpoint) { mc_model_checker = NULL; } -} - #endif /* SIMGRID_TEST */ -}