|
|
|
@ -26,12 +26,7 @@ const std::initializer_list<Kernel::AddressMapping> default_address_mappings = {
|
|
|
|
|
{ 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;
|
|
|
|
|
|
|
|
|
|
#define CHECK_TYPE(loader) \
|
|
|
|
@ -48,12 +43,17 @@ static FileType IdentifyFile(FileUtil::IOFile& file) {
|
|
|
|
|
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_);
|
|
|
|
|
|
|
|
|
|
if (extension == ".elf" || extension == ".axf")
|
|
|
|
@ -71,7 +71,7 @@ static FileType GuessFromExtension(const std::string& extension_) {
|
|
|
|
|
return FileType::Unknown;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static const char* GetFileTypeString(FileType type) {
|
|
|
|
|
const char* GetFileTypeString(FileType type) {
|
|
|
|
|
switch (type) {
|
|
|
|
|
case FileType::CCI:
|
|
|
|
|
return "NCSD";
|
|
|
|
|