X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bd11e68e17f60d1516d80ce8f8c7319542a15ae6..0cfb40d124549f4dde6f00095847de0d04828adf:/src/mc/PageStore.hpp diff --git a/src/mc/PageStore.hpp b/src/mc/PageStore.hpp index 9e72f1d27a..2ec8ec99e0 100644 --- a/src/mc/PageStore.hpp +++ b/src/mc/PageStore.hpp @@ -10,11 +10,13 @@ #include #include -#include -#include +#include +#include -#include "mc_mmu.h" -#include "mc_forward.h" +#include + +#include "src/mc/mc_mmu.h" +#include "src/mc/mc_forward.hpp" namespace simgrid { namespace mc { @@ -22,8 +24,8 @@ namespace mc { /** @brief Storage for snapshot memory pages * * The first (lower) layer of the per-page snapshot mechanism is a page - * store: it's responsibility is to store immutable shareable - * reference-counted memory pages independently of the snapshoting + * store: its responsibility is to store immutable shareable + * reference-counted memory pages independently of the snapshotting * logic. Snapshot management and representation, soft-dirty tracking is * handled to an higher layer. READMORE * @@ -78,8 +80,8 @@ private: // Types // We are using a cheap hash to index a page. // We should expect collision and we need to associate multiple page indices // to the same hash. - typedef boost::unordered_set page_set_type; - typedef boost::unordered_map pages_map_type; + typedef std::unordered_set page_set_type; + typedef std::unordered_map pages_map_type; private: // Fields: /** First page */ @@ -132,7 +134,7 @@ public: // Methods void ref_page(size_t pageno); /** @brief Store a page in the page store */ - size_t store_page(void* page); + std::size_t store_page(void* page); /** @brief Get a page from its page number * @@ -172,7 +174,7 @@ void PageStore::ref_page(size_t pageno) inline __attribute__((always_inline)) const void* PageStore::get_page(std::size_t pageno) const { - return mc_page_from_number(this->memory_, pageno); + return (void*) simgrid::mc::mmu::join(pageno, (std::uintptr_t) this->memory_); } inline __attribute__((always_inline)) @@ -182,7 +184,7 @@ std::size_t PageStore::get_ref(std::size_t pageno) } inline __attribute__((always_inline)) -size_t PageStore::size() { +std::size_t PageStore::size() { return this->top_index_ - this->free_pages_.size(); }