X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9104957deccc59e0e804215d5db498fabfd40d29..85861efad8a0c75dfc4cca06c3f8adcf86d49495:/src/mc/sosp/PageStore.hpp diff --git a/src/mc/sosp/PageStore.hpp b/src/mc/sosp/PageStore.hpp index f5511fe42d..2311e33d12 100644 --- a/src/mc/sosp/PageStore.hpp +++ b/src/mc/sosp/PageStore.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2015-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2015-2021. The SimGrid Team. All rights reserved. */ /* 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. */ @@ -23,7 +23,7 @@ namespace mc { /** @brief Storage for snapshot memory pages * * The first (lower) layer of the per-page snapshot mechanism is a page store: - * its responsibility is to store immutable sharable reference-counted memory + * 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 * @@ -73,15 +73,15 @@ namespace mc { */ class PageStore { public: // Types - typedef std::uint64_t hash_type; + using hash_type = std::uint64_t; 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 std::unordered_set page_set_type; - typedef std::unordered_map pages_map_type; + using page_set_type = std::unordered_set; + using pages_map_type = std::unordered_map; // Fields: /** First page */ @@ -146,16 +146,16 @@ public: // Debug/test methods /** @brief Get the number of references for a page */ - std::size_t get_ref(std::size_t pageno); + std::size_t get_ref(std::size_t pageno) const; /** @brief Get the number of used pages */ - std::size_t size(); + std::size_t size() const; /** @brief Get the capacity of the page store * * The capacity is expanded by a system call (mremap). * */ - std::size_t capacity(); + std::size_t capacity() const; }; XBT_ALWAYS_INLINE void PageStore::unref_page(std::size_t pageno) @@ -174,17 +174,17 @@ XBT_ALWAYS_INLINE void* PageStore::get_page(std::size_t pageno) const return (void*)simgrid::mc::mmu::join(pageno, (std::uintptr_t)this->memory_); } -XBT_ALWAYS_INLINE std::size_t PageStore::get_ref(std::size_t pageno) +XBT_ALWAYS_INLINE std::size_t PageStore::get_ref(std::size_t pageno) const { return this->page_counts_[pageno]; } -XBT_ALWAYS_INLINE std::size_t PageStore::size() +XBT_ALWAYS_INLINE std::size_t PageStore::size() const { return this->top_index_ - this->free_pages_.size(); } -XBT_ALWAYS_INLINE std::size_t PageStore::capacity() +XBT_ALWAYS_INLINE std::size_t PageStore::capacity() const { return this->capacity_; }