X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b487d5a9259b88670b8cd97e9c16e4b000c11008..8e339d5533f8be789f8431fbc00683fe1ff35fd9:/src/mc/mc_memory_map.h diff --git a/src/mc/mc_memory_map.h b/src/mc/mc_memory_map.h index 6d118d0013..21f2bdd44f 100644 --- a/src/mc/mc_memory_map.h +++ b/src/mc/mc_memory_map.h @@ -4,44 +4,44 @@ /* 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. */ -#ifndef MC_MEMORY_MAP_H -#define MC_MEMORY_MAP_H +#ifndef SIMGRID_MC_MEMORY_MAP_H +#define SIMGRID_MC_MEMORY_MAP_H -#include +#include + +#include +#include -SG_BEGIN_DECL() +#include -/** \file - * These functions and data structures implements a binary interface for - * the proc maps ascii interface */ +#include +#include "mc_forward.h" -/* Each field is defined as documented in proc's manual page */ -struct s_map_region { +namespace simgrid { +namespace mc { - 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" { -void MC_init_memory_map_info(void); -memory_map_t MC_get_memory_map(void); -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