summaryrefslogtreecommitdiff
path: root/src/core/loader/nso.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2018-01-20 14:20:04 -0500
committerGravatar bunnei2018-01-20 14:59:42 -0500
commit2dafd0d287338981d510c19edaeb720c332a968f (patch)
treece461ac05bb2db4b045356944bfa1aa7021dbbde /src/core/loader/nso.cpp
parentPort citra #3352 to yuzu (#103) (diff)
downloadyuzu-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.cpp20
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
91VAddr AppLoader_NSO::LoadNso(const std::string& path, VAddr load_base) { 91VAddr 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;