|
@@ -26,12 +26,7 @@ const std::initializer_list<Kernel::AddressMapping> default_address_mappings = {
|
|
|
{ 0x1F000000, 0x600000, false }, // entire VRAM
|
|
{ 0x1F000000, 0x600000, false }, // entire VRAM
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * Identifies the type of a bootable file
|
|
|
|
|
- * @param file open file
|
|
|
|
|
- * @return FileType of file
|
|
|
|
|
- */
|
|
|
|
|
-static FileType IdentifyFile(FileUtil::IOFile& file) {
|
|
|
|
|
|
|
+FileType IdentifyFile(FileUtil::IOFile& file) {
|
|
|
FileType type;
|
|
FileType type;
|
|
|
|
|
|
|
|
#define CHECK_TYPE(loader) \
|
|
#define CHECK_TYPE(loader) \
|
|
@@ -48,12 +43,17 @@ static FileType IdentifyFile(FileUtil::IOFile& file) {
|
|
|
return FileType::Unknown;
|
|
return FileType::Unknown;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * Guess the type of a bootable file from its extension
|
|
|
|
|
- * @param extension_ String extension of bootable file
|
|
|
|
|
- * @return FileType of file
|
|
|
|
|
- */
|
|
|
|
|
-static FileType GuessFromExtension(const std::string& extension_) {
|
|
|
|
|
|
|
+FileType IdentifyFile(const std::string& file_name) {
|
|
|
|
|
+ FileUtil::IOFile file(file_name, "rb");
|
|
|
|
|
+ if (!file.IsOpen()) {
|
|
|
|
|
+ LOG_ERROR(Loader, "Failed to load file %s", file_name.c_str());
|
|
|
|
|
+ return FileType::Unknown;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return IdentifyFile(file);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+FileType GuessFromExtension(const std::string& extension_) {
|
|
|
std::string extension = Common::ToLower(extension_);
|
|
std::string extension = Common::ToLower(extension_);
|
|
|
|
|
|
|
|
if (extension == ".elf" || extension == ".axf")
|
|
if (extension == ".elf" || extension == ".axf")
|
|
@@ -71,7 +71,7 @@ static FileType GuessFromExtension(const std::string& extension_) {
|
|
|
return FileType::Unknown;
|
|
return FileType::Unknown;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static const char* GetFileTypeString(FileType type) {
|
|
|
|
|
|
|
+const char* GetFileTypeString(FileType type) {
|
|
|
switch (type) {
|
|
switch (type) {
|
|
|
case FileType::CCI:
|
|
case FileType::CCI:
|
|
|
return "NCSD";
|
|
return "NCSD";
|