diff options
| author | 2018-01-20 14:20:04 -0500 | |
|---|---|---|
| committer | 2018-01-20 14:59:42 -0500 | |
| commit | 2dafd0d287338981d510c19edaeb720c332a968f (patch) | |
| tree | ce461ac05bb2db4b045356944bfa1aa7021dbbde /src/core/loader/nso.cpp | |
| parent | Port citra #3352 to yuzu (#103) (diff) | |
| download | yuzu-2dafd0d287338981d510c19edaeb720c332a968f.tar.gz yuzu-2dafd0d287338981d510c19edaeb720c332a968f.tar.xz yuzu-2dafd0d287338981d510c19edaeb720c332a968f.zip | |
nso: Remove code specific to directory loading.
Diffstat (limited to 'src/core/loader/nso.cpp')
| -rw-r--r-- | src/core/loader/nso.cpp | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/src/core/loader/nso.cpp b/src/core/loader/nso.cpp index ef769dd91..77b4f93eb 100644 --- a/src/core/loader/nso.cpp +++ b/src/core/loader/nso.cpp | |||
| @@ -88,7 +88,7 @@ static constexpr u32 PageAlignSize(u32 size) { | |||
| 88 | return (size + Memory::PAGE_MASK) & ~Memory::PAGE_MASK; | 88 | return (size + Memory::PAGE_MASK) & ~Memory::PAGE_MASK; |
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | VAddr AppLoader_NSO::LoadNso(const std::string& path, VAddr load_base) { | 91 | VAddr AppLoader_NSO::LoadModule(const std::string& path, VAddr load_base) { |
| 92 | FileUtil::IOFile file(path, "rb"); | 92 | FileUtil::IOFile file(path, "rb"); |
| 93 | if (!file.IsOpen()) { | 93 | if (!file.IsOpen()) { |
| 94 | return {}; | 94 | return {}; |
| @@ -153,21 +153,9 @@ ResultStatus AppLoader_NSO::Load(Kernel::SharedPtr<Kernel::Process>& process) { | |||
| 153 | 153 | ||
| 154 | process = Kernel::Process::Create("main"); | 154 | process = Kernel::Process::Create("main"); |
| 155 | 155 | ||
| 156 | // Load NSO modules | 156 | // Load module |
| 157 | VAddr next_load_addr{Memory::PROCESS_IMAGE_VADDR}; | 157 | LoadModule(filepath, Memory::PROCESS_IMAGE_VADDR); |
| 158 | for (const auto& module : | 158 | LOG_DEBUG(Loader, "loaded module %s @ 0x%llx", filepath.c_str(), Memory::PROCESS_IMAGE_VADDR); |
| 159 | {"rtld", "sdk", "subsdk0", "subsdk1", "subsdk2", "subsdk3", "subsdk4"}) { | ||
| 160 | const std::string path = filepath.substr(0, filepath.find_last_of("/\\")) + "/" + module; | ||
| 161 | const VAddr load_addr = next_load_addr; | ||
| 162 | next_load_addr = LoadNso(path, load_addr); | ||
| 163 | if (next_load_addr) { | ||
| 164 | LOG_DEBUG(Loader, "loaded module %s @ 0x%llx", module, load_addr); | ||
| 165 | } else { | ||
| 166 | next_load_addr = load_addr; | ||
| 167 | } | ||
| 168 | } | ||
| 169 | // Load "main" module | ||
| 170 | LoadNso(filepath, next_load_addr); | ||
| 171 | 159 | ||
| 172 | process->svc_access_mask.set(); | 160 | process->svc_access_mask.set(); |
| 173 | process->address_mappings = default_address_mappings; | 161 | process->address_mappings = default_address_mappings; |