summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_page_table_base.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2023-11-17 20:58:29 +0100
committert895 <clombardo169@gmail.com>2023-11-25 06:46:15 +0100
commitf2a840908380f876a1b5675e9cae281c8db77776 (patch)
tree2e8f48f0e20a3033104121c2fb7a8535e4bdc9de /src/core/hle/kernel/k_page_table_base.cpp
parentcore: Respect memory permissions in Map (diff)
downloadyuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar
yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.gz
yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.bz2
yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.lz
yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.xz
yuzu-f2a840908380f876a1b5675e9cae281c8db77776.tar.zst
yuzu-f2a840908380f876a1b5675e9cae281c8db77776.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/k_page_table_base.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/hle/kernel/k_page_table_base.cpp b/src/core/hle/kernel/k_page_table_base.cpp
index dc6524146..f2ffc39c1 100644
--- a/src/core/hle/kernel/k_page_table_base.cpp
+++ b/src/core/hle/kernel/k_page_table_base.cpp
@@ -184,7 +184,8 @@ Result KPageTableBase::InitializeForProcess(Svc::CreateProcessFlag as_type, bool
KMemoryManager::Pool pool, KProcessAddress code_address,
size_t code_size, KSystemResource* system_resource,
KResourceLimit* resource_limit,
- Core::Memory::Memory& memory) {
+ Core::Memory::Memory& memory,
+ KProcessAddress aslr_space_start) {
// Calculate region extents.
const size_t as_width = GetAddressSpaceWidth(as_type);
const KProcessAddress start = 0;
@@ -225,7 +226,8 @@ Result KPageTableBase::InitializeForProcess(Svc::CreateProcessFlag as_type, bool
heap_region_size = GetSpaceSize(KAddressSpaceInfo::Type::Heap);
stack_region_size = GetSpaceSize(KAddressSpaceInfo::Type::Stack);
kernel_map_region_size = GetSpaceSize(KAddressSpaceInfo::Type::MapSmall);
- m_code_region_start = GetSpaceStart(KAddressSpaceInfo::Type::Map39Bit);
+ m_code_region_start = m_address_space_start + aslr_space_start +
+ GetSpaceStart(KAddressSpaceInfo::Type::Map39Bit);
m_code_region_end = m_code_region_start + GetSpaceSize(KAddressSpaceInfo::Type::Map39Bit);
m_alias_code_region_start = m_code_region_start;
m_alias_code_region_end = m_code_region_end;