summaryrefslogtreecommitdiff
path: root/src/core/loader
diff options
context:
space:
mode:
authorGravatar bunnei2018-07-03 00:26:45 -0400
committerGravatar GitHub2018-07-03 00:26:45 -0400
commit15e68cdbaac38bbf13cd4eb0d70d1e34b2fd4256 (patch)
tree9d072a572c0037a44e1e35aeffc242d3772a383c /src/core/loader
parentMerge pull request #612 from bunnei/fix-cull (diff)
parentFix build and address review feedback (diff)
downloadyuzu-15e68cdbaac38bbf13cd4eb0d70d1e34b2fd4256.tar.gz
yuzu-15e68cdbaac38bbf13cd4eb0d70d1e34b2fd4256.tar.xz
yuzu-15e68cdbaac38bbf13cd4eb0d70d1e34b2fd4256.zip
Merge pull request #607 from jroweboy/logging
Logging - Customizable backends
Diffstat (limited to 'src/core/loader')
-rw-r--r--src/core/loader/deconstructed_rom_directory.cpp8
-rw-r--r--src/core/loader/elf.cpp26
-rw-r--r--src/core/loader/linker.cpp4
-rw-r--r--src/core/loader/loader.cpp8
-rw-r--r--src/core/loader/nca.cpp14
-rw-r--r--src/core/loader/nso.cpp4
6 files changed, 32 insertions, 32 deletions
diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp
index b01b2caf6..eb7feb617 100644
--- a/src/core/loader/deconstructed_rom_directory.cpp
+++ b/src/core/loader/deconstructed_rom_directory.cpp
@@ -132,7 +132,7 @@ ResultStatus AppLoader_DeconstructedRomDirectory::Load(
132 const VAddr load_addr = next_load_addr; 132 const VAddr load_addr = next_load_addr;
133 next_load_addr = AppLoader_NSO::LoadModule(path, load_addr); 133 next_load_addr = AppLoader_NSO::LoadModule(path, load_addr);
134 if (next_load_addr) { 134 if (next_load_addr) {
135 NGLOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr); 135 LOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr);
136 } else { 136 } else {
137 next_load_addr = load_addr; 137 next_load_addr = load_addr;
138 } 138 }
@@ -163,7 +163,7 @@ ResultStatus AppLoader_DeconstructedRomDirectory::ReadRomFS(
163 std::shared_ptr<FileUtil::IOFile>& romfs_file, u64& offset, u64& size) { 163 std::shared_ptr<FileUtil::IOFile>& romfs_file, u64& offset, u64& size) {
164 164
165 if (filepath_romfs.empty()) { 165 if (filepath_romfs.empty()) {
166 NGLOG_DEBUG(Loader, "No RomFS available"); 166 LOG_DEBUG(Loader, "No RomFS available");
167 return ResultStatus::ErrorNotUsed; 167 return ResultStatus::ErrorNotUsed;
168 } 168 }
169 169
@@ -176,8 +176,8 @@ ResultStatus AppLoader_DeconstructedRomDirectory::ReadRomFS(
176 offset = 0; 176 offset = 0;
177 size = romfs_file->GetSize(); 177 size = romfs_file->GetSize();
178 178
179 NGLOG_DEBUG(Loader, "RomFS offset: 0x{:016X}", offset); 179 LOG_DEBUG(Loader, "RomFS offset: 0x{:016X}", offset);
180 NGLOG_DEBUG(Loader, "RomFS size: 0x{:016X}", size); 180 LOG_DEBUG(Loader, "RomFS size: 0x{:016X}", size);
181 181
182 // Reset read pointer 182 // Reset read pointer
183 file.Seek(0, SEEK_SET); 183 file.Seek(0, SEEK_SET);
diff --git a/src/core/loader/elf.cpp b/src/core/loader/elf.cpp
index e42d3a870..b69e5c6ef 100644
--- a/src/core/loader/elf.cpp
+++ b/src/core/loader/elf.cpp
@@ -273,18 +273,18 @@ const char* ElfReader::GetSectionName(int section) const {
273} 273}
274 274
275SharedPtr<CodeSet> ElfReader::LoadInto(u32 vaddr) { 275SharedPtr<CodeSet> ElfReader::LoadInto(u32 vaddr) {
276 NGLOG_DEBUG(Loader, "String section: {}", header->e_shstrndx); 276 LOG_DEBUG(Loader, "String section: {}", header->e_shstrndx);
277 277
278 // Should we relocate? 278 // Should we relocate?
279 relocate = (header->e_type != ET_EXEC); 279 relocate = (header->e_type != ET_EXEC);
280 280
281 if (relocate) { 281 if (relocate) {
282 NGLOG_DEBUG(Loader, "Relocatable module"); 282 LOG_DEBUG(Loader, "Relocatable module");
283 entryPoint += vaddr; 283 entryPoint += vaddr;
284 } else { 284 } else {
285 NGLOG_DEBUG(Loader, "Prerelocated executable"); 285 LOG_DEBUG(Loader, "Prerelocated executable");
286 } 286 }
287 NGLOG_DEBUG(Loader, "{} segments:", header->e_phnum); 287 LOG_DEBUG(Loader, "{} segments:", header->e_phnum);
288 288
289 // First pass : Get the bits into RAM 289 // First pass : Get the bits into RAM
290 u32 base_addr = relocate ? vaddr : 0; 290 u32 base_addr = relocate ? vaddr : 0;
@@ -304,8 +304,8 @@ SharedPtr<CodeSet> ElfReader::LoadInto(u32 vaddr) {
304 304
305 for (unsigned int i = 0; i < header->e_phnum; ++i) { 305 for (unsigned int i = 0; i < header->e_phnum; ++i) {
306 Elf32_Phdr* p = &segments[i]; 306 Elf32_Phdr* p = &segments[i];
307 NGLOG_DEBUG(Loader, "Type: {} Vaddr: {:08X} Filesz: {:08X} Memsz: {:08X} ", p->p_type, 307 LOG_DEBUG(Loader, "Type: {} Vaddr: {:08X} Filesz: {:08X} Memsz: {:08X} ", p->p_type,
308 p->p_vaddr, p->p_filesz, p->p_memsz); 308 p->p_vaddr, p->p_filesz, p->p_memsz);
309 309
310 if (p->p_type == PT_LOAD) { 310 if (p->p_type == PT_LOAD) {
311 CodeSet::Segment* codeset_segment; 311 CodeSet::Segment* codeset_segment;
@@ -317,16 +317,16 @@ SharedPtr<CodeSet> ElfReader::LoadInto(u32 vaddr) {
317 } else if (permission_flags == (PF_R | PF_W)) { 317 } else if (permission_flags == (PF_R | PF_W)) {
318 codeset_segment = &codeset->data; 318 codeset_segment = &codeset->data;
319 } else { 319 } else {
320 NGLOG_ERROR(Loader, "Unexpected ELF PT_LOAD segment id {} with flags {:X}", i, 320 LOG_ERROR(Loader, "Unexpected ELF PT_LOAD segment id {} with flags {:X}", i,
321 p->p_flags); 321 p->p_flags);
322 continue; 322 continue;
323 } 323 }
324 324
325 if (codeset_segment->size != 0) { 325 if (codeset_segment->size != 0) {
326 NGLOG_ERROR(Loader, 326 LOG_ERROR(Loader,
327 "ELF has more than one segment of the same type. Skipping extra " 327 "ELF has more than one segment of the same type. Skipping extra "
328 "segment (id {})", 328 "segment (id {})",
329 i); 329 i);
330 continue; 330 continue;
331 } 331 }
332 332
@@ -345,7 +345,7 @@ SharedPtr<CodeSet> ElfReader::LoadInto(u32 vaddr) {
345 codeset->entrypoint = base_addr + header->e_entry; 345 codeset->entrypoint = base_addr + header->e_entry;
346 codeset->memory = std::make_shared<std::vector<u8>>(std::move(program_image)); 346 codeset->memory = std::make_shared<std::vector<u8>>(std::move(program_image));
347 347
348 NGLOG_DEBUG(Loader, "Done loading."); 348 LOG_DEBUG(Loader, "Done loading.");
349 349
350 return codeset; 350 return codeset;
351} 351}
diff --git a/src/core/loader/linker.cpp b/src/core/loader/linker.cpp
index c7be5f265..769516b6f 100644
--- a/src/core/loader/linker.cpp
+++ b/src/core/loader/linker.cpp
@@ -84,7 +84,7 @@ void Linker::WriteRelocations(std::vector<u8>& program_image, const std::vector<
84 } 84 }
85 break; 85 break;
86 default: 86 default:
87 NGLOG_CRITICAL(Loader, "Unknown relocation type: {}", static_cast<int>(rela.type)); 87 LOG_CRITICAL(Loader, "Unknown relocation type: {}", static_cast<int>(rela.type));
88 break; 88 break;
89 } 89 }
90 } 90 }
@@ -141,7 +141,7 @@ void Linker::ResolveImports() {
141 if (search != exports.end()) { 141 if (search != exports.end()) {
142 Memory::Write64(import.second.ea, search->second + import.second.addend); 142 Memory::Write64(import.second.ea, search->second + import.second.addend);
143 } else { 143 } else {
144 NGLOG_ERROR(Loader, "Unresolved import: {}", import.first); 144 LOG_ERROR(Loader, "Unresolved import: {}", import.first);
145 } 145 }
146 } 146 }
147} 147}
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp
index 20cc0bac0..8831d8e83 100644
--- a/src/core/loader/loader.cpp
+++ b/src/core/loader/loader.cpp
@@ -43,7 +43,7 @@ FileType IdentifyFile(FileUtil::IOFile& file, const std::string& filepath) {
43FileType IdentifyFile(const std::string& file_name) { 43FileType IdentifyFile(const std::string& file_name) {
44 FileUtil::IOFile file(file_name, "rb"); 44 FileUtil::IOFile file(file_name, "rb");
45 if (!file.IsOpen()) { 45 if (!file.IsOpen()) {
46 NGLOG_ERROR(Loader, "Failed to load file {}", file_name); 46 LOG_ERROR(Loader, "Failed to load file {}", file_name);
47 return FileType::Unknown; 47 return FileType::Unknown;
48 } 48 }
49 49
@@ -126,7 +126,7 @@ static std::unique_ptr<AppLoader> GetFileLoader(FileUtil::IOFile&& file, FileTyp
126std::unique_ptr<AppLoader> GetLoader(const std::string& filename) { 126std::unique_ptr<AppLoader> GetLoader(const std::string& filename) {
127 FileUtil::IOFile file(filename, "rb"); 127 FileUtil::IOFile file(filename, "rb");
128 if (!file.IsOpen()) { 128 if (!file.IsOpen()) {
129 NGLOG_ERROR(Loader, "Failed to load file {}", filename); 129 LOG_ERROR(Loader, "Failed to load file {}", filename);
130 return nullptr; 130 return nullptr;
131 } 131 }
132 132
@@ -137,12 +137,12 @@ std::unique_ptr<AppLoader> GetLoader(const std::string& filename) {
137 FileType filename_type = GuessFromExtension(filename_extension); 137 FileType filename_type = GuessFromExtension(filename_extension);
138 138
139 if (type != filename_type) { 139 if (type != filename_type) {
140 NGLOG_WARNING(Loader, "File {} has a different type than its extension.", filename); 140 LOG_WARNING(Loader, "File {} has a different type than its extension.", filename);
141 if (FileType::Unknown == type) 141 if (FileType::Unknown == type)
142 type = filename_type; 142 type = filename_type;
143 } 143 }
144 144
145 NGLOG_DEBUG(Loader, "Loading file {} as {}...", filename, GetFileTypeString(type)); 145 LOG_DEBUG(Loader, "Loading file {} as {}...", filename, GetFileTypeString(type));
146 146
147 return GetFileLoader(std::move(file), type, filename_filename, filename); 147 return GetFileLoader(std::move(file), type, filename_filename, filename);
148} 148}
diff --git a/src/core/loader/nca.cpp b/src/core/loader/nca.cpp
index 067945d46..da064f8e3 100644
--- a/src/core/loader/nca.cpp
+++ b/src/core/loader/nca.cpp
@@ -123,7 +123,7 @@ ResultStatus Nca::Load(FileUtil::IOFile&& in_file, std::string in_path) {
123 file.Seek(0, SEEK_SET); 123 file.Seek(0, SEEK_SET);
124 std::array<u8, sizeof(NcaHeader)> header_array{}; 124 std::array<u8, sizeof(NcaHeader)> header_array{};
125 if (sizeof(NcaHeader) != file.ReadBytes(header_array.data(), sizeof(NcaHeader))) 125 if (sizeof(NcaHeader) != file.ReadBytes(header_array.data(), sizeof(NcaHeader)))
126 NGLOG_CRITICAL(Loader, "File reader errored out during header read."); 126 LOG_CRITICAL(Loader, "File reader errored out during header read.");
127 127
128 NcaHeader header{}; 128 NcaHeader header{};
129 std::memcpy(&header, header_array.data(), sizeof(NcaHeader)); 129 std::memcpy(&header, header_array.data(), sizeof(NcaHeader));
@@ -140,7 +140,7 @@ ResultStatus Nca::Load(FileUtil::IOFile&& in_file, std::string in_path) {
140 std::array<u8, sizeof(NcaSectionHeaderBlock)> array{}; 140 std::array<u8, sizeof(NcaSectionHeaderBlock)> array{};
141 if (sizeof(NcaSectionHeaderBlock) != 141 if (sizeof(NcaSectionHeaderBlock) !=
142 file.ReadBytes(array.data(), sizeof(NcaSectionHeaderBlock))) 142 file.ReadBytes(array.data(), sizeof(NcaSectionHeaderBlock)))
143 NGLOG_CRITICAL(Loader, "File reader errored out during header read."); 143 LOG_CRITICAL(Loader, "File reader errored out during header read.");
144 144
145 NcaSectionHeaderBlock block{}; 145 NcaSectionHeaderBlock block{};
146 std::memcpy(&block, array.data(), sizeof(NcaSectionHeaderBlock)); 146 std::memcpy(&block, array.data(), sizeof(NcaSectionHeaderBlock));
@@ -154,7 +154,7 @@ ResultStatus Nca::Load(FileUtil::IOFile&& in_file, std::string in_path) {
154 // Seek back to beginning of this section. 154 // Seek back to beginning of this section.
155 file.Seek(SECTION_HEADER_OFFSET + i * SECTION_HEADER_SIZE, SEEK_SET); 155 file.Seek(SECTION_HEADER_OFFSET + i * SECTION_HEADER_SIZE, SEEK_SET);
156 if (sizeof(Pfs0Superblock) != file.ReadBytes(&sb, sizeof(Pfs0Superblock))) 156 if (sizeof(Pfs0Superblock) != file.ReadBytes(&sb, sizeof(Pfs0Superblock)))
157 NGLOG_CRITICAL(Loader, "File reader errored out during header read."); 157 LOG_CRITICAL(Loader, "File reader errored out during header read.");
158 158
159 u64 offset = (static_cast<u64>(header.section_tables[i].media_offset) * 159 u64 offset = (static_cast<u64>(header.section_tables[i].media_offset) *
160 MEDIA_OFFSET_MULTIPLIER) + 160 MEDIA_OFFSET_MULTIPLIER) +
@@ -258,7 +258,7 @@ ResultStatus AppLoader_NCA::Load(Kernel::SharedPtr<Kernel::Process>& process) {
258 const VAddr load_addr = next_load_addr; 258 const VAddr load_addr = next_load_addr;
259 next_load_addr = AppLoader_NSO::LoadModule(module, nca->GetExeFsFile(module), load_addr); 259 next_load_addr = AppLoader_NSO::LoadModule(module, nca->GetExeFsFile(module), load_addr);
260 if (next_load_addr) { 260 if (next_load_addr) {
261 NGLOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr); 261 LOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr);
262 } else { 262 } else {
263 next_load_addr = load_addr; 263 next_load_addr = load_addr;
264 } 264 }
@@ -283,7 +283,7 @@ ResultStatus AppLoader_NCA::Load(Kernel::SharedPtr<Kernel::Process>& process) {
283ResultStatus AppLoader_NCA::ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_file, u64& offset, 283ResultStatus AppLoader_NCA::ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_file, u64& offset,
284 u64& size) { 284 u64& size) {
285 if (nca->GetRomFsSize() == 0) { 285 if (nca->GetRomFsSize() == 0) {
286 NGLOG_DEBUG(Loader, "No RomFS available"); 286 LOG_DEBUG(Loader, "No RomFS available");
287 return ResultStatus::ErrorNotUsed; 287 return ResultStatus::ErrorNotUsed;
288 } 288 }
289 289
@@ -292,8 +292,8 @@ ResultStatus AppLoader_NCA::ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_f
292 offset = nca->GetRomFsOffset(); 292 offset = nca->GetRomFsOffset();
293 size = nca->GetRomFsSize(); 293 size = nca->GetRomFsSize();
294 294
295 NGLOG_DEBUG(Loader, "RomFS offset: 0x{:016X}", offset); 295 LOG_DEBUG(Loader, "RomFS offset: 0x{:016X}", offset);
296 NGLOG_DEBUG(Loader, "RomFS size: 0x{:016X}", size); 296 LOG_DEBUG(Loader, "RomFS size: 0x{:016X}", size);
297 297
298 return ResultStatus::Success; 298 return ResultStatus::Success;
299} 299}
diff --git a/src/core/loader/nso.cpp b/src/core/loader/nso.cpp
index 845ed7e90..7f84e4b1b 100644
--- a/src/core/loader/nso.cpp
+++ b/src/core/loader/nso.cpp
@@ -87,7 +87,7 @@ static std::vector<u8> ReadSegment(FileUtil::IOFile& file, const NsoSegmentHeade
87 87
88 file.Seek(header.offset, SEEK_SET); 88 file.Seek(header.offset, SEEK_SET);
89 if (compressed_size != file.ReadBytes(compressed_data.data(), compressed_size)) { 89 if (compressed_size != file.ReadBytes(compressed_data.data(), compressed_size)) {
90 NGLOG_CRITICAL(Loader, "Failed to read {} NSO LZ4 compressed bytes", compressed_size); 90 LOG_CRITICAL(Loader, "Failed to read {} NSO LZ4 compressed bytes", compressed_size);
91 return {}; 91 return {};
92 } 92 }
93 93
@@ -215,7 +215,7 @@ ResultStatus AppLoader_NSO::Load(Kernel::SharedPtr<Kernel::Process>& process) {
215 215
216 // Load module 216 // Load module
217 LoadModule(filepath, Memory::PROCESS_IMAGE_VADDR); 217 LoadModule(filepath, Memory::PROCESS_IMAGE_VADDR);
218 NGLOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", filepath, Memory::PROCESS_IMAGE_VADDR); 218 LOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", filepath, Memory::PROCESS_IMAGE_VADDR);
219 219
220 process->svc_access_mask.set(); 220 process->svc_access_mask.set();
221 process->address_mappings = default_address_mappings; 221 process->address_mappings = default_address_mappings;