summaryrefslogtreecommitdiff
path: root/src/common/page_table.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-11-18 20:40:10 -0800
committerGitHub <noreply@github.com>2020-11-18 20:40:10 -0800
commit92344da20ce4801543c1d3148e1f1b62ba162ffb (patch)
treea5cd5980b1287dfd9b56e6df48cad3790e173284 /src/common/page_table.h
parentabda36636245c416a75774165d2a5b49610952fc (diff)
parent0ca91ced2dab3654e78e4c465506d7baad3cbeeb (diff)
Merge pull request #4936 from lioncash/page
page_table: Allow page tables to be moved
Diffstat (limited to 'src/common/page_table.h')
-rw-r--r--src/common/page_table.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/common/page_table.h b/src/common/page_table.h
index cf5eed780..9754fabf9 100644
--- a/src/common/page_table.h
+++ b/src/common/page_table.h
@@ -4,9 +4,7 @@
#pragma once
-#include <vector>
-
-#include <boost/icl/interval_map.hpp>
+#include <tuple>
#include "common/common_types.h"
#include "common/memory_hook.h"
@@ -51,13 +49,21 @@ struct SpecialRegion {
*/
struct PageTable {
PageTable();
- ~PageTable();
+ ~PageTable() noexcept;
+
+ PageTable(const PageTable&) = delete;
+ PageTable& operator=(const PageTable&) = delete;
+
+ PageTable(PageTable&&) noexcept = default;
+ PageTable& operator=(PageTable&&) noexcept = default;
/**
* Resizes the page table to be able to accomodate enough pages within
* a given address space.
*
* @param address_space_width_in_bits The address size width in bits.
+ * @param page_size_in_bits The page size in bits.
+ * @param has_attribute Whether or not this page has any backing attributes.
*/
void Resize(std::size_t address_space_width_in_bits, std::size_t page_size_in_bits,
bool has_attribute);