X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9ae3c710a6a8ac04570f77d88eb8e0c7a13f101c..4b0aa1525597fd0800c4d00c6df3f3c49d53ee2c:/src/mc/mc_page_snapshot.cpp diff --git a/src/mc/mc_page_snapshot.cpp b/src/mc/mc_page_snapshot.cpp deleted file mode 100644 index a7f21c26a4..0000000000 --- a/src/mc/mc_page_snapshot.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (c) 2014-2018. 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. */ - -/* MC interface: definitions that non-MC modules must see, but not the user */ - - -#include // pread, pwrite - -#include "src/mc/PageStore.hpp" -#include "src/mc/mc_mmu.hpp" -#include "src/mc/mc_private.hpp" -#include "src/mc/mc_snapshot.hpp" - -#include -#include "src/mc/ChunkedData.hpp" - -using simgrid::mc::remote; - -/** @brief Restore a snapshot of a region - * - * If possible, the restoration will be incremental - * (the modified pages will not be touched). - * - * @param start_addr - * @param page_count Number of pages of the region - * @param pagenos - */ -void mc_restore_page_snapshot_region(simgrid::mc::RemoteClient* process, void* start_addr, - simgrid::mc::ChunkedData const& pages_copy) -{ - for (size_t i = 0; i != pages_copy.page_count(); ++i) { - // Otherwise, copy the page: - void* target_page = (void*) simgrid::mc::mmu::join(i, (std::uintptr_t) start_addr); - const void* source_page = pages_copy.page(i); - process->write_bytes(source_page, xbt_pagesize, remote(target_page)); - } -} - -// ***** High level API - -void mc_region_restore_sparse(simgrid::mc::RemoteClient* process, mc_mem_region_t reg) -{ - xbt_assert(((reg->permanent_address().address()) & (xbt_pagesize-1)) == 0, - "Not at the beginning of a page"); - xbt_assert(simgrid::mc::mmu::chunkCount(reg->size()) == reg->page_data().page_count()); - mc_restore_page_snapshot_region(process, - (void*) reg->permanent_address().address(), reg->page_data()); -}