From 853e58e5932c4703bb521b5454a9b0fc325c7152 Mon Sep 17 00:00:00 2001 From: bunnei Date: Wed, 2 Mar 2022 18:06:26 -0800 Subject: hle: service: ldr: Use deterministic addresses when mapping NROs. - Instead of randomization, choose in-order addresses for where to map NROs into memory. - This results in predictable behavior when debugging and consistent behavior when reproducing issues. --- src/core/hle/kernel/k_page_table.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/core/hle/kernel') diff --git a/src/core/hle/kernel/k_page_table.h b/src/core/hle/kernel/k_page_table.h index aea1b8f63..e99abe36a 100644 --- a/src/core/hle/kernel/k_page_table.h +++ b/src/core/hle/kernel/k_page_table.h @@ -253,7 +253,9 @@ public: constexpr bool IsInsideASLRRegion(VAddr address, std::size_t size) const { return !IsOutsideASLRRegion(address, size); } - + constexpr std::size_t GetNumGuardPages() const { + return IsKernel() ? 1 : 4; + } PAddr GetPhysicalAddr(VAddr addr) const { const auto backing_addr = page_table_impl.backing_addr[addr >> PageBits]; ASSERT(backing_addr); @@ -275,10 +277,6 @@ private: return is_aslr_enabled; } - constexpr std::size_t GetNumGuardPages() const { - return IsKernel() ? 1 : 4; - } - constexpr bool ContainsPages(VAddr addr, std::size_t num_pages) const { return (address_space_start <= addr) && (num_pages <= (address_space_end - address_space_start) / PageSize) && -- cgit v1.2.3