X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/61cb4e2573cc8a606e2e09cfb97a8546db50530d..d574355c7629f9f18b0667c69bfb0f1695b7b3b6:/src/mc/sosp/RegionSnapshot.cpp diff --git a/src/mc/sosp/RegionSnapshot.cpp b/src/mc/sosp/RegionSnapshot.cpp deleted file mode 100644 index 006ff2ba51..0000000000 --- a/src/mc/sosp/RegionSnapshot.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (c) 2007-2019. 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. */ - -#include - -#include -#ifdef __FreeBSD__ -#define MAP_POPULATE MAP_PREFAULT_READ -#endif - -#include "src/mc/ModelChecker.hpp" -#include "src/mc/mc_config.hpp" -#include "src/mc/mc_forward.hpp" - -#include "src/mc/mc_smx.hpp" -#include "src/mc/sosp/RegionSnapshot.hpp" - -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_RegionSnaphot, mc, "Logging specific to region snapshots"); - -namespace simgrid { -namespace mc { - -RegionSnapshot::RegionSnapshot(RegionType region_type, void* start_addr, size_t size) - : region_type_(region_type), start_addr_(start_addr), size_(size) -{ - simgrid::mc::RemoteClient* process = &mc_model_checker->process(); - - xbt_assert((((uintptr_t)start_addr) & (xbt_pagesize - 1)) == 0, "Start address not at the beginning of a page"); - - chunks_ = ChunkedData(mc_model_checker->page_store(), *process, RemotePtr(start_addr), mmu::chunk_count(size)); -} - -/** @brief Restore a region from a snapshot - * - * @param region Target region - */ -void RegionSnapshot::restore() -{ - xbt_assert(((start().address()) & (xbt_pagesize - 1)) == 0, "Not at the beginning of a page"); - xbt_assert(simgrid::mc::mmu::chunk_count(size()) == get_chunks().page_count()); - - for (size_t i = 0; i != get_chunks().page_count(); ++i) { - void* target_page = (void*)simgrid::mc::mmu::join(i, (std::uintptr_t)(void*)start().address()); - const void* source_page = get_chunks().page(i); - mc_model_checker->process().write_bytes(source_page, xbt_pagesize, remote(target_page)); - } -} - -} // namespace mc -} // namespace simgrid