summaryrefslogtreecommitdiffstats
path: root/src/core/loader
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/loader')
-rw-r--r--src/core/loader/3dsx.h20
-rw-r--r--src/core/loader/elf.h8
-rw-r--r--src/core/loader/loader.h9
-rw-r--r--src/core/loader/ncch.cpp12
-rw-r--r--src/core/loader/ncch.h31
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