mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Expose loader helper functions for identifying files.
This commit is contained in:
		
							parent
							
								
									b3af7aad9e
								
							
						
					
					
						commit
						bba12520c4
					
				@ -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";
 | 
			
		||||
 | 
			
		||||
@ -33,6 +33,34 @@ enum class FileType {
 | 
			
		||||
    THREEDSX, //3DSX
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Identifies the type of a bootable file based on the magic value in its header.
 | 
			
		||||
 * @param file open file
 | 
			
		||||
 * @return FileType of file
 | 
			
		||||
 */
 | 
			
		||||
FileType IdentifyFile(FileUtil::IOFile& file);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Identifies the type of a bootable file based on the magic value in its header.
 | 
			
		||||
 * @param file_name path to file
 | 
			
		||||
 * @return FileType of file. Note: this will return FileType::Unknown if it is unable to determine
 | 
			
		||||
 * a filetype, and will never return FileType::Error.
 | 
			
		||||
 */
 | 
			
		||||
FileType IdentifyFile(const std::string& file_name);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Guess the type of a bootable file from its extension
 | 
			
		||||
 * @param extension String extension of bootable file
 | 
			
		||||
 * @return FileType of file. Note: this will return FileType::Unknown if it is unable to determine
 | 
			
		||||
 * a filetype, and will never return FileType::Error.
 | 
			
		||||
 */
 | 
			
		||||
FileType GuessFromExtension(const std::string& extension_);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Convert a FileType into a string which can be displayed to the user.
 | 
			
		||||
 */
 | 
			
		||||
const char* GetFileTypeString(FileType type);
 | 
			
		||||
 | 
			
		||||
/// Return type for functions in Loader namespace
 | 
			
		||||
enum class ResultStatus {
 | 
			
		||||
    Success,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user