X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/251bbe5068a2a7b23a23a4df11fc1b785dce6ff4..41626f8a47c96f54fa3b1ee61a90fb0af699dcbc:/src/mc/mc_mmu.h diff --git a/src/mc/mc_mmu.h b/src/mc/mc_mmu.h index f188da7446..1fa7423f35 100644 --- a/src/mc/mc_mmu.h +++ b/src/mc/mc_mmu.h @@ -10,6 +10,10 @@ #include #include +#include + +SG_BEGIN_DECL() + extern int xbt_pagesize; extern int xbt_pagebits; @@ -34,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; @@ -46,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); } @@ -57,15 +61,17 @@ 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); } +SG_END_DECL() + #endif