|
|
@ -83,16 +83,13 @@ ResultStatus AppLoader_DeconstructedRomDirectory::Load(
|
|
|
|
VAddr next_load_addr{Memory::PROCESS_IMAGE_VADDR};
|
|
|
|
VAddr next_load_addr{Memory::PROCESS_IMAGE_VADDR};
|
|
|
|
for (const auto& module : {"rtld", "main", "subsdk0", "subsdk1", "subsdk2", "subsdk3",
|
|
|
|
for (const auto& module : {"rtld", "main", "subsdk0", "subsdk1", "subsdk2", "subsdk3",
|
|
|
|
"subsdk4", "subsdk5", "subsdk6", "subsdk7", "sdk"}) {
|
|
|
|
"subsdk4", "subsdk5", "subsdk6", "subsdk7", "sdk"}) {
|
|
|
|
const VAddr load_addr = next_load_addr;
|
|
|
|
|
|
|
|
const FileSys::VirtualFile module_file = dir->GetFile(module);
|
|
|
|
const FileSys::VirtualFile module_file = dir->GetFile(module);
|
|
|
|
if (module_file != nullptr)
|
|
|
|
if (module_file != nullptr) {
|
|
|
|
|
|
|
|
const VAddr load_addr = next_load_addr;
|
|
|
|
next_load_addr = AppLoader_NSO::LoadModule(module_file, load_addr);
|
|
|
|
next_load_addr = AppLoader_NSO::LoadModule(module_file, load_addr);
|
|
|
|
if (next_load_addr) {
|
|
|
|
|
|
|
|
LOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr);
|
|
|
|
LOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr);
|
|
|
|
// Register module with GDBStub
|
|
|
|
// Register module with GDBStub
|
|
|
|
GDBStub::RegisterModule(module, load_addr, next_load_addr - 1, false);
|
|
|
|
GDBStub::RegisterModule(module, load_addr, next_load_addr - 1, false);
|
|
|
|
} else {
|
|
|
|
|
|
|
|
next_load_addr = load_addr;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|