X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5a99bd94a2cedf8b455e78de53b19bebab8c034e..4340c977641036e7aa8ae5dcb69ccb3cac1df3c5:/src/mc/mc_mmu.h diff --git a/src/mc/mc_mmu.h b/src/mc/mc_mmu.h index 6740829b8c..25d10ceaa9 100644 --- a/src/mc/mc_mmu.h +++ b/src/mc/mc_mmu.h @@ -4,19 +4,19 @@ /* 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_MMU_H -#define MC_MMU_H +#ifndef SIMGRID_MC_MMU_H +#define SIMGRID_MC_MMU_H #include #include +#include +#include + #include SG_BEGIN_DECL() -extern int xbt_pagesize; -extern int xbt_pagebits; - /** @brief How many memory pages are necessary to store size bytes? * * @param size Byte size @@ -38,7 +38,7 @@ size_t mc_page_count(size_t size) * @return Virtual memory page number of the given address */ static inline __attribute__ ((always_inline)) -size_t mc_page_number(void* base, void* address) +size_t mc_page_number(const void* base, const void* address) { xbt_assert(address>=base, "The address is not in the range"); return ((uintptr_t) address - (uintptr_t) base) >> xbt_pagebits; @@ -50,7 +50,7 @@ size_t mc_page_number(void* base, void* address) * @return Offset within the memory page */ static inline __attribute__ ((always_inline)) -size_t mc_page_offset(void* address) +size_t mc_page_offset(const void* address) { return ((uintptr_t) address) & (xbt_pagesize-1); } @@ -61,13 +61,13 @@ size_t mc_page_offset(void* address) * @param page Index of the page */ static inline __attribute__ ((always_inline)) -void* mc_page_from_number(void* base, size_t page) +void* mc_page_from_number(const void* base, size_t page) { return (void*) ((char*)base + (page << xbt_pagebits)); } static inline __attribute__ ((always_inline)) -bool mc_same_page(void* a, void* b) +bool mc_same_page(const void* a, const void* b) { return ((uintptr_t) a >> xbt_pagebits) == ((uintptr_t) b >> xbt_pagebits); }