X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9932a0c0d2c44e34633c97a827b2b04d615cb4e9..7f80c96356063a741966f244c8d00eaaf6f17fc0:/src/mc/mc_memory_map.h diff --git a/src/mc/mc_memory_map.h b/src/mc/mc_memory_map.h index 12da85f89c..afcbb70338 100644 --- a/src/mc/mc_memory_map.h +++ b/src/mc/mc_memory_map.h @@ -7,43 +7,41 @@ #ifndef MC_MEMORY_MAP_H #define MC_MEMORY_MAP_H +#include + +#include +#include + #include #include #include "mc_forward.h" -SG_BEGIN_DECL() - -/** \file - * These functions and data structures implements a binary interface for - * the proc maps ascii interface */ +namespace simgrid { +namespace mc { -/* Each field is defined as documented in proc's manual page */ -struct s_map_region { - - void *start_addr; /* Start address of the map */ - void *end_addr; /* End address of the map */ +/** An virtual memory map entry from /proc/$pid/maps */ +struct VmMap { + std::uint64_t start_addr, end_addr; int prot; /* Memory protection */ int flags; /* Additional memory flags */ - void *offset; /* Offset in the file/whatever */ + std::uint64_t offset; /* Offset in the file/whatever */ char dev_major; /* Major of the device */ char dev_minor; /* Minor of the device */ unsigned long inode; /* Inode in the device */ - char *pathname; /* Path name of the mapped file */ - + std::string pathname; /* Path name of the mapped file */ }; -typedef struct s_map_region s_map_region_t, *map_region_t; -struct s_memory_map { +std::vector get_memory_map(pid_t pid); - s_map_region_t *regions; /* Pointer to an array of regions */ - int mapsize; /* Number of regions in the memory */ +} +} -}; +extern "C" { -memory_map_t MC_get_memory_map(pid_t pid); -void MC_free_memory_map(memory_map_t map); +XBT_INTERNAL void MC_find_object_address( + std::vector const& maps, mc_object_info_t result); -SG_END_DECL() +} #endif