Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[windows] pexport is a dead project anyway
[simgrid.git] / src / mc / mc_process.h
index 8aee3c0..4c21485 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008-2014. The SimGrid Team.
+/* Copyright (c) 2008-2015. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -17,6 +17,7 @@
 #include "simgrid_config.h"
 #include <sys/types.h>
 
+#include <xbt/base.h>
 #include <xbt/mmalloc.h>
 
 #ifdef HAVE_MC
@@ -72,7 +73,7 @@ public:
   // Read memory:
   const void* read_bytes(void* buffer, std::size_t size,
     remote_ptr<void> address, int process_index = ProcessIndexAny,
-    ReadMode mode = Normal) const MC_OVERRIDE;
+    ReadMode mode = Normal) const override;
   void read_variable(const char* name, void* target, size_t size) const;
   template<class T>
   T read_variable(const char *name) const
@@ -157,6 +158,9 @@ public:
     return MC_receive_message(this->socket_, &m, sizeof(M), 0);
   }
 
+  void reset_soft_dirty();
+  void read_pagemap(uint64_t* pagemap, size_t start_page, size_t page_count);
+
 private:
   void init_memory_map_info();
   void refresh_heap();
@@ -171,7 +175,8 @@ private:
   remote_ptr<void> maestro_stack_start_, maestro_stack_end_;
   int memory_file;
   std::vector<IgnoredRegion> ignored_regions_;
-
+  int clear_refs_fd_;
+  int pagemap_fd_;
 public: // object info
   // TODO, make private (first, objectify simgrid::mc::ObjectInformation*)
   std::vector<std::shared_ptr<simgrid::mc::ObjectInformation>> object_infos;
@@ -238,14 +243,14 @@ public: // Libunwind-data
 
 /** Open a FD to a remote process memory (`/dev/$pid/mem`)
  */
-int open_vm(pid_t pid, int flags);
+XBT_PRIVATE int open_vm(pid_t pid, int flags);
 
 }
 }
 
 SG_BEGIN_DECL()
 
-XBT_INTERNAL void MC_invalidate_cache(void);
+XBT_PRIVATE void MC_invalidate_cache(void);
 
 SG_END_DECL()