X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a2961c433a36e3277d50bd433fbd343e5f9bab74..d47e21d93998034c0f8fa4a9a6c750002f7642fa:/src/mc/mc_mmu.h diff --git a/src/mc/mc_mmu.h b/src/mc/mc_mmu.h index 8df82fa306..dd6f2da6cf 100644 --- a/src/mc/mc_mmu.h +++ b/src/mc/mc_mmu.h @@ -8,6 +8,7 @@ #define MC_MMU_H #include +#include #include "mc_private.h" @@ -30,9 +31,9 @@ static inline size_t mc_page_count(size_t size) * @param address Address * @return Virtual memory page number of the given address */ -static inline size_t mc_page_number(void* address) +static inline size_t mc_page_number(void* base, void* address) { - return ((uintptr_t) address) >> xbt_pagebits; + return ((uintptr_t) address - (uintptr_t) base) >> xbt_pagebits; } /** @brief Get the offset of an address within a memory page @@ -55,4 +56,9 @@ static inline void* mc_page_from_number(void* base, size_t page) return (void*) ((char*)base + (page << xbt_pagebits)); } +static inline bool mc_same_page(void* a, void* b) +{ + return mc_page_number(NULL, a) == mc_page_number(NULL, b); +} + #endif