From 6d60acf0f1afcae873988da5218f2f1c7bc9d151 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Mon, 4 May 2015 00:01:16 -0300 Subject: Kernel: Introduce skeleton Process class to hold process data --- src/core/loader/3dsx.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/core/loader/3dsx.cpp') diff --git a/src/core/loader/3dsx.cpp b/src/core/loader/3dsx.cpp index 5d806c5d0..5aaeb53d8 100644 --- a/src/core/loader/3dsx.cpp +++ b/src/core/loader/3dsx.cpp @@ -8,9 +8,10 @@ #include "common/logging/log.h" #include "core/file_sys/archive_romfs.h" +#include "core/hle/kernel/process.h" +#include "core/hle/service/fs/archive.h" #include "core/loader/elf.h" #include "core/loader/ncch.h" -#include "core/hle/service/fs/archive.h" #include "core/mem_map.h" #include "3dsx.h" @@ -229,8 +230,12 @@ ResultStatus AppLoader_THREEDSX::Load() { if (!file->IsOpen()) return ResultStatus::Error; - Load3DSXFile(*file, 0x00100000); - Kernel::LoadExec(0x00100000); + Kernel::g_current_process = Kernel::Process::Create(filename, 0); + Kernel::g_current_process->static_address_mappings = default_address_mappings; + + Load3DSXFile(*file, Memory::EXEFS_CODE_VADDR); + + Kernel::g_current_process->Run(Memory::EXEFS_CODE_VADDR, 48, Kernel::DEFAULT_STACK_SIZE); is_loaded = true; return ResultStatus::Success; -- cgit v1.2.3 From 2af30d465fa4e9c3421f01b557141673eb0a2115 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Fri, 8 May 2015 16:51:48 -0300 Subject: Process: Support parsing of exheader kernel caps --- src/core/loader/3dsx.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/core/loader/3dsx.cpp') diff --git a/src/core/loader/3dsx.cpp b/src/core/loader/3dsx.cpp index 5aaeb53d8..a0266a4e0 100644 --- a/src/core/loader/3dsx.cpp +++ b/src/core/loader/3dsx.cpp @@ -231,6 +231,7 @@ ResultStatus AppLoader_THREEDSX::Load() { return ResultStatus::Error; Kernel::g_current_process = Kernel::Process::Create(filename, 0); + Kernel::g_current_process->svc_access_mask.set(); Kernel::g_current_process->static_address_mappings = default_address_mappings; Load3DSXFile(*file, Memory::EXEFS_CODE_VADDR); -- cgit v1.2.3 From 3cb19c95895ab151d64682e5cbe64e938f995f46 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Fri, 8 May 2015 18:12:25 -0300 Subject: Process: Rename StaticAddressMapping => AddressMapping --- src/core/loader/3dsx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/loader/3dsx.cpp') diff --git a/src/core/loader/3dsx.cpp b/src/core/loader/3dsx.cpp index a0266a4e0..15527c5a6 100644 --- a/src/core/loader/3dsx.cpp +++ b/src/core/loader/3dsx.cpp @@ -232,7 +232,7 @@ ResultStatus AppLoader_THREEDSX::Load() { Kernel::g_current_process = Kernel::Process::Create(filename, 0); Kernel::g_current_process->svc_access_mask.set(); - Kernel::g_current_process->static_address_mappings = default_address_mappings; + Kernel::g_current_process->address_mappings = default_address_mappings; Load3DSXFile(*file, Memory::EXEFS_CODE_VADDR); -- cgit v1.2.3