X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/64a1599658f6c313f789471fc829a574fa32bd70..e4997b8647e1c6c6c5328854a355ad3ef342e614:/src/mc/RegionSnapshot.hpp diff --git a/src/mc/RegionSnapshot.hpp b/src/mc/RegionSnapshot.hpp index 975bd266f4..e54516a157 100644 --- a/src/mc/RegionSnapshot.hpp +++ b/src/mc/RegionSnapshot.hpp @@ -76,13 +76,17 @@ public: return pagenos_[i]; } + const std::size_t* pagenos() const { return pagenos_.data(); } + std::size_t* pagenos() { return pagenos_.data(); } + const void* page(std::size_t i) const { return store_->get_page(pagenos_[i]); } PerPageCopy(PageStore& store, AddressSpace& as, - remote_ptr addr, std::size_t page_count); + remote_ptr addr, std::size_t page_count, + const size_t* ref_page_numbers, const std::uint64_t* pagemap); }; enum class RegionType { @@ -131,6 +135,7 @@ public: * each type. */ class RegionSnapshot { +public: static const RegionType UnknownRegion = RegionType::Unknown; static const RegionType HeapRegion = RegionType::Heap; static const RegionType DataRegion = RegionType::Data; @@ -293,10 +298,12 @@ RegionSnapshot privatized_region( RegionSnapshot dense_region( RegionType type, void *start_addr, void* data_addr, size_t size); simgrid::mc::RegionSnapshot sparse_region( - RegionType type, void *start_addr, void* data_addr, size_t size); + RegionType type, void *start_addr, void* data_addr, size_t size, + RegionSnapshot const* ref_region); simgrid::mc::RegionSnapshot region( - RegionType type, void *start_addr, void* data_addr, size_t size); - + RegionType type, void *start_addr, void* data_addr, size_t size, + RegionSnapshot const* ref_region); + } }