Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2022.
[simgrid.git] / src / mc / sosp / Region.cpp
index dd9541e..0498493 100644 (file)
@@ -1,14 +1,13 @@
-/* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2022. 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 "src/mc/sosp/Region.hpp"
 #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/Region.hpp"
+#include "src/mc/remote/RemoteProcess.hpp"
 
 #include <cstdlib>
 #include <sys/mman.h>
@@ -24,23 +23,23 @@ Region::Region(RegionType region_type, void* start_addr, size_t size)
 {
   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(), mc_model_checker->process(), RemotePtr<void>(start_addr),
-                        mmu::chunk_count(size));
+  chunks_ = ChunkedData(mc_model_checker->page_store(), mc_model_checker->get_remote_process(),
+                        RemotePtr<void>(start_addr), mmu::chunk_count(size));
 }
 
 /** @brief Restore a region from a snapshot
  *
  *  @param region     Target region
  */
-void Region::restore()
+void Region::restore() const
 {
   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());
+    auto* 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));
+    mc_model_checker->get_remote_process().write_bytes(source_page, xbt_pagesize, remote(target_page));
   }
 }
 
@@ -77,7 +76,7 @@ void* Region::read(void* target, const void* addr, std::size_t size) const
   // Read each page:
   while (simgrid::mc::mmu::split((std::uintptr_t)addr).first != page_end) {
     const void* snapshot_addr = mc_translate_address_region((uintptr_t)addr, this);
-    void* next_page     = (void*)simgrid::mc::mmu::join(simgrid::mc::mmu::split((std::uintptr_t)addr).first + 1, 0);
+    auto* next_page     = (void*)simgrid::mc::mmu::join(simgrid::mc::mmu::split((std::uintptr_t)addr).first + 1, 0);
     size_t readable     = (char*)next_page - (const char*)addr;
     memcpy(dest, snapshot_addr, readable);
     addr = (const char*)addr + readable;