diff options
Diffstat (limited to 'src/core/loader')
-rw-r--r-- | src/core/loader/3dsx.h | 20 | ||||
-rw-r--r-- | src/core/loader/elf.h | 8 | ||||
-rw-r--r-- | src/core/loader/loader.h | 9 | ||||
-rw-r--r-- | src/core/loader/ncch.cpp | 12 | ||||
-rw-r--r-- | src/core/loader/ncch.h | 31 |
5 files changed, 26 insertions, 54 deletions
diff --git a/src/core/loader/3dsx.h b/src/core/loader/3dsx.h index cfcc21cc4..3f376778a 100644 --- a/src/core/loader/3dsx.h +++ b/src/core/loader/3dsx.h @@ -27,34 +27,14 @@ public: */ static FileType IdentifyType(FileUtil::IOFile& file); - /** - * Returns the type of this file - * @return FileType corresponding to the loaded file - */ FileType GetFileType() override { return IdentifyType(file); } - /** - * Load the bootable file - * @return ResultStatus result of function - */ ResultStatus Load() override; - /** - * Get the icon (typically icon section) of the application - * @param buffer Reference to buffer to store data - * @return ResultStatus result of function - */ ResultStatus ReadIcon(std::vector<u8>& buffer) override; - /** - * Get the RomFS of the application - * @param romfs_file Reference to buffer to store data - * @param offset Offset in the file to the RomFS - * @param size Size of the RomFS in bytes - * @return ResultStatus result of function - */ ResultStatus ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_file, u64& offset, u64& size) override; diff --git a/src/core/loader/elf.h b/src/core/loader/elf.h index 584bf6e27..862aa90d8 100644 --- a/src/core/loader/elf.h +++ b/src/core/loader/elf.h @@ -26,18 +26,10 @@ public: */ static FileType IdentifyType(FileUtil::IOFile& file); - /** - * Returns the type of this file - * @return FileType corresponding to the loaded file - */ FileType GetFileType() override { return IdentifyType(file); } - /** - * Load the bootable file - * @return ResultStatus result of function - */ ResultStatus Load() override; private: diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h index 5e3d46638..a6c2a745f 100644 --- a/src/core/loader/loader.h +++ b/src/core/loader/loader.h @@ -144,6 +144,15 @@ public: } /** + * Get the program id of the application + * @param out_program_id Reference to store program id into + * @return ResultStatus result of function + */ + virtual ResultStatus ReadProgramId(u64& out_program_id) { + return ResultStatus::ErrorNotImplemented; + } + + /** * Get the RomFS of the application * Since the RomFS can be huge, we return a file reference instead of copying to a buffer * @param romfs_file The file containing the RomFS diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp index dce7f50f9..a204dc336 100644 --- a/src/core/loader/ncch.cpp +++ b/src/core/loader/ncch.cpp @@ -366,6 +366,18 @@ ResultStatus AppLoader_NCCH::ReadLogo(std::vector<u8>& buffer) { return LoadSectionExeFS("logo", buffer); } +ResultStatus AppLoader_NCCH::ReadProgramId(u64& out_program_id) { + if (!file.IsOpen()) + return ResultStatus::Error; + + ResultStatus result = LoadExeFS(); + if (result != ResultStatus::Success) + return result; + + out_program_id = ncch_header.program_id; + return ResultStatus::Success; +} + ResultStatus AppLoader_NCCH::ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_file, u64& offset, u64& size) { if (!file.IsOpen()) diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h index e9e11727b..fe08f5b45 100644 --- a/src/core/loader/ncch.h +++ b/src/core/loader/ncch.h @@ -171,18 +171,10 @@ public: */ static FileType IdentifyType(FileUtil::IOFile& file); - /** - * Returns the type of this file - * @return FileType corresponding to the loaded file - */ FileType GetFileType() override { return IdentifyType(file); } - /** - * Load the application - * @return ResultStatus result of function - */ ResultStatus Load() override; /** @@ -191,33 +183,20 @@ public: */ boost::optional<u32> LoadKernelSystemMode(); - /** - * Get the code (typically .code section) of the application - * @param buffer Reference to buffer to store data - * @return ResultStatus result of function - */ ResultStatus ReadCode(std::vector<u8>& buffer) override; - /** - * Get the icon (typically icon section) of the application - * @param buffer Reference to buffer to store data - * @return ResultStatus result of function - */ ResultStatus ReadIcon(std::vector<u8>& buffer) override; - /** - * Get the banner (typically banner section) of the application - * @param buffer Reference to buffer to store data - * @return ResultStatus result of function - */ ResultStatus ReadBanner(std::vector<u8>& buffer) override; + ResultStatus ReadLogo(std::vector<u8>& buffer) override; + /** - * Get the logo (typically logo section) of the application - * @param buffer Reference to buffer to store data + * Get the program id of the application + * @param out_program_id Reference to store program id into * @return ResultStatus result of function */ - ResultStatus ReadLogo(std::vector<u8>& buffer) override; + ResultStatus ReadProgramId(u64& out_program_id) override; /** * Get the RomFS of the application |