X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8bcc1dbe28f658ea786ba234a679601edd30758a..c82adb6ec2917d3ec0657dab7e5d1d053759accd:/src/mc/PageStore.hpp diff --git a/src/mc/PageStore.hpp b/src/mc/PageStore.hpp index c3dd009fe2..979e02fb5d 100644 --- a/src/mc/PageStore.hpp +++ b/src/mc/PageStore.hpp @@ -10,13 +10,13 @@ #include #include -#include -#include +#include +#include #include -#include "mc_mmu.h" -#include "mc_forward.hpp" +#include "src/mc/mc_mmu.h" +#include "src/mc/mc_forward.hpp" namespace simgrid { namespace mc { @@ -24,9 +24,9 @@ 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 - * logic. Snapshot management and representation, soft-dirty tracking is + * store: its responsibility is to store immutable shareable + * reference-counted memory pages independently of the snapshotting + * logic. Snapshot management and representation is * handled to an higher layer. READMORE * * Data structure: @@ -80,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 */ @@ -134,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 * @@ -174,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)) @@ -184,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(); }