aboutsummaryrefslogtreecommitdiff
path: root/src/common/page_table.h
diff options
context:
space:
mode:
authorMarkus Wick <markus@selfnet.de>2021-05-29 09:24:09 +0200
committerMarkus Wick <markus@selfnet.de>2021-05-29 09:28:26 +0200
commit42a7c5d017a3a6bb5e6ed1b51b955ea3d756eead (patch)
tree4fefc42bc8c52930851ddb783dae2b7ddf3fbbe3 /src/common/page_table.h
parentddb186e61dd3979b62b80d94ef34b40e08f57923 (diff)
core/memory: Check our memory fallbacks for out-of-bound behavior.
This makes it by far harder to crash yuzu. Also implement the 48bit masking of AARCH64 while touching this code.
Diffstat (limited to 'src/common/page_table.h')
-rw-r--r--src/common/page_table.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/common/page_table.h b/src/common/page_table.h
index 61c5552e09..e92b66b2b0 100644
--- a/src/common/page_table.h
+++ b/src/common/page_table.h
@@ -98,6 +98,10 @@ struct PageTable {
*/
void Resize(size_t address_space_width_in_bits, size_t page_size_in_bits);
+ size_t GetAddressSpaceBits() const {
+ return current_address_space_width_in_bits;
+ }
+
/**
* Vector of memory pointers backing each page. An entry can only be non-null if the
* corresponding attribute element is of type `Memory`.
@@ -105,6 +109,8 @@ struct PageTable {
VirtualBuffer<PageInfo> pointers;
VirtualBuffer<u64> backing_addr;
+
+ size_t current_address_space_width_in_bits;
};
} // namespace Common