From 1323ab2f5f1627b39e48b6f970ad8208fa7af71e Mon Sep 17 00:00:00 2001 From: Subv Date: Sat, 19 Nov 2016 20:40:04 -0500 Subject: Kernel/Loader: Grab the system mode from the NCCH ExHeader. 3dsx and elf files default to system mode 2 (96MB allocated to the application). This allows Home Menu to boot without modifications. Closes #1849 --- src/core/hle/kernel/kernel.cpp | 6 ++---- src/core/hle/kernel/kernel.h | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) (limited to 'src/core/hle/kernel') diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 9e1795927..0c8752670 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -124,13 +124,11 @@ void HandleTable::Clear() { } /// Initialize the kernel -void Init() { +void Init(u32 system_mode) { ConfigMem::Init(); SharedPage::Init(); - // TODO(yuriks): The memory type parameter needs to be determined by the ExHeader field instead - // For now it defaults to the one with a largest allocation to the app - Kernel::MemoryInit(2); // Allocates 96MB to the application + Kernel::MemoryInit(system_mode); Kernel::ResourceLimitsInit(); Kernel::ThreadingInit(); diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index 6b8dbecff..231cf7b75 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h @@ -286,8 +286,8 @@ private: extern HandleTable g_handle_table; -/// Initialize the kernel -void Init(); +/// Initialize the kernel with the specified system mode. +void Init(u32 system_mode); /// Shutdown the kernel void Shutdown(); -- cgit v1.2.3