Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Cleanup/documentation for simgrid::mc::Frame
[simgrid.git] / src / mc / mc_snapshot.cpp
index 324c6ea..fdcae06 100644 (file)
@@ -6,13 +6,13 @@
 
 #include <stdbool.h>
 
-#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<void> 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 <string.h>
@@ -197,11 +200,9 @@ const void* Snapshot::read_bytes(void* buffer, std::size_t size,
 
 #include <sys/mman.h>
 
-#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<simgrid::mc::Process> 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 */
 
-}