diff options
| author | 2017-10-09 23:56:20 -0400 | |
|---|---|---|
| committer | 2017-10-09 23:56:20 -0400 | |
| commit | b1d5db1cf60344b6b081c9d03cb6ccc3264326cd (patch) | |
| tree | fde377c4ba3c0f92c032e6f5ec8627aae37270ef /src/core/loader/elf.cpp | |
| parent | loader: Various improvements for NSO/NRO loaders. (diff) | |
| parent | Merge pull request #2996 from MerryMage/split-travis (diff) | |
| download | yuzu-b1d5db1cf60344b6b081c9d03cb6ccc3264326cd.tar.gz yuzu-b1d5db1cf60344b6b081c9d03cb6ccc3264326cd.tar.xz yuzu-b1d5db1cf60344b6b081c9d03cb6ccc3264326cd.zip | |
Merge remote-tracking branch 'upstream/master' into nx
# Conflicts:
# src/core/CMakeLists.txt
# src/core/arm/dynarmic/arm_dynarmic.cpp
# src/core/arm/dyncom/arm_dyncom.cpp
# src/core/hle/kernel/process.cpp
# src/core/hle/kernel/thread.cpp
# src/core/hle/kernel/thread.h
# src/core/hle/kernel/vm_manager.cpp
# src/core/loader/3dsx.cpp
# src/core/loader/elf.cpp
# src/core/loader/ncch.cpp
# src/core/memory.cpp
# src/core/memory.h
# src/core/memory_setup.h
Diffstat (limited to 'src/core/loader/elf.cpp')
| -rw-r--r-- | src/core/loader/elf.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/core/loader/elf.cpp b/src/core/loader/elf.cpp index 2efc67ff8..9969a8c39 100644 --- a/src/core/loader/elf.cpp +++ b/src/core/loader/elf.cpp | |||
| @@ -13,8 +13,8 @@ | |||
| 13 | #include "core/loader/elf.h" | 13 | #include "core/loader/elf.h" |
| 14 | #include "core/memory.h" | 14 | #include "core/memory.h" |
| 15 | 15 | ||
| 16 | using Kernel::SharedPtr; | ||
| 17 | using Kernel::CodeSet; | 16 | using Kernel::CodeSet; |
| 17 | using Kernel::SharedPtr; | ||
| 18 | 18 | ||
| 19 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 19 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
| 20 | // ELF Header Constants | 20 | // ELF Header Constants |
| @@ -382,7 +382,7 @@ FileType AppLoader_ELF::IdentifyType(FileUtil::IOFile& file) { | |||
| 382 | return FileType::Error; | 382 | return FileType::Error; |
| 383 | } | 383 | } |
| 384 | 384 | ||
| 385 | ResultStatus AppLoader_ELF::Load() { | 385 | ResultStatus AppLoader_ELF::Load(Kernel::SharedPtr<Kernel::Process>& process) { |
| 386 | if (is_loaded) | 386 | if (is_loaded) |
| 387 | return ResultStatus::ErrorAlreadyLoaded; | 387 | return ResultStatus::ErrorAlreadyLoaded; |
| 388 | 388 | ||
| @@ -401,16 +401,16 @@ ResultStatus AppLoader_ELF::Load() { | |||
| 401 | SharedPtr<CodeSet> codeset = elf_reader.LoadInto(Memory::PROCESS_IMAGE_VADDR); | 401 | SharedPtr<CodeSet> codeset = elf_reader.LoadInto(Memory::PROCESS_IMAGE_VADDR); |
| 402 | codeset->name = filename; | 402 | codeset->name = filename; |
| 403 | 403 | ||
| 404 | Kernel::g_current_process = Kernel::Process::Create("main"); | 404 | process = Kernel::Process::Create("main"); |
| 405 | Kernel::g_current_process->LoadModule(codeset, codeset->entrypoint); | 405 | process->LoadModule(codeset, codeset->entrypoint); |
| 406 | Kernel::g_current_process->svc_access_mask.set(); | 406 | process->svc_access_mask.set(); |
| 407 | Kernel::g_current_process->address_mappings = default_address_mappings; | 407 | process->address_mappings = default_address_mappings; |
| 408 | 408 | ||
| 409 | // Attach the default resource limit (APPLICATION) to the process | 409 | // Attach the default resource limit (APPLICATION) to the process |
| 410 | Kernel::g_current_process->resource_limit = | 410 | process->resource_limit = |
| 411 | Kernel::ResourceLimit::GetForCategory(Kernel::ResourceLimitCategory::APPLICATION); | 411 | Kernel::ResourceLimit::GetForCategory(Kernel::ResourceLimitCategory::APPLICATION); |
| 412 | 412 | ||
| 413 | Kernel::g_current_process->Run(codeset->entrypoint, 48, Kernel::DEFAULT_STACK_SIZE); | 413 | process->Run(codeset->entrypoint, 48, Kernel::DEFAULT_STACK_SIZE); |
| 414 | 414 | ||
| 415 | is_loaded = true; | 415 | is_loaded = true; |
| 416 | return ResultStatus::Success; | 416 | return ResultStatus::Success; |