X-Git-Url: https://code.delx.au/refind/blobdiff_plain/6f26706bb54004d3b435c51f44fa17e996d82c68..0864ac754bdb02cb63e8d2323a2ad6b081fdc612:/refind/global.h diff --git a/refind/global.h b/refind/global.h index 8acbf7d..0da3ff3 100644 --- a/refind/global.h +++ b/refind/global.h @@ -76,7 +76,8 @@ #define TAG_GDISK (16) #define TAG_NETBOOT (17) #define TAG_CSR_ROTATE (18) -#define NUM_TOOLS (19) +#define TAG_FWUPDATE_TOOL (19) +#define NUM_TOOLS (20) #define NUM_SCAN_OPTIONS 10 @@ -150,6 +151,16 @@ // Names of binaries that can manage MOKs.... #define MOK_NAMES L"MokManager.efi,HashTool.efi,HashTool-signed.efi,KeyTool.efi,KeyTool-signed.efi" +// Names of binaries that can update firmware.... +#if defined (EFIX64) +#define FWUPDATE_NAMES L"fwupx64.efi" +#elif defined(EFI32) +#define FWUPDATE_NAMES L"fwupia32.efi" +#elif defined(EFIAARCH64) +#define FWUPDATE_NAMES L"fwupaa64.efi" +#else +#define FWUPDATE_NAMES L"fwup.efi" +#endif // Directories to search for these MOK-managing programs. Note that SelfDir is // searched in addition to these locations.... #define MOK_LOCATIONS L"\\,EFI\\tools,EFI\\fedora,EFI\\redhat,EFI\\ubuntu,EFI\\suse,EFI\\opensuse,EFI\\altlinux" @@ -158,6 +169,13 @@ // Files that may be Windows recovery files #define WINDOWS_RECOVERY_FILES L"EFI\\Microsoft\\Boot\\LrsBootmgr.efi,Recovery:\\EFI\\BOOT\\bootx64.efi,Recovery:\\EFI\\BOOT\\bootia32.efi" +// Filename patterns that identify EFI boot loaders. Note that a single case (either L"*.efi" or +// L"*.EFI") is fine for most systems; but Gigabyte's buggy Hybrid EFI does a case-sensitive +// comparison when it should do a case-insensitive comparison, so I'm doubling this up. It does +// no harm on other computers, AFAIK. In theory, every case variation should be done for +// completeness, but that's ridiculous.... +#define LOADER_MATCH_PATTERNS L"*.efi,*.EFI" + // Definitions for the "hideui" option in refind.conf #define HIDEUI_FLAG_NONE (0x0000) #define HIDEUI_FLAG_BANNER (0x0001) @@ -179,6 +197,9 @@ #define NULL_GUID_VALUE { 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }; #define REFIND_GUID_VALUE { 0x36D08FA7, 0xCF0B, 0x42F5, {0x8F, 0x14, 0x68, 0xDF, 0x73, 0xED, 0x37, 0x40} }; +// Configuration file variables +#define KERNEL_VERSION L"%v" + // // global definitions // @@ -283,6 +304,7 @@ typedef struct { BOOLEAN DeepLegacyScan; BOOLEAN EnableAndLockVMX; BOOLEAN FoldLinuxKernels; + BOOLEAN EnableTouch; UINTN RequestedScreenWidth; UINTN RequestedScreenHeight; UINTN BannerBottomEdge; @@ -340,6 +362,12 @@ EFI_STATUS StartEFIImageList(IN EFI_DEVICE_PATH **DevicePaths, OUT UINTN *ErrorInStep, IN BOOLEAN Verbose, IN BOOLEAN IsDriver); +EFI_STATUS StartEFIImage(IN EFI_DEVICE_PATH *DevicePath, + IN CHAR16 *LoadOptions, IN UINTN LoaderType, + IN CHAR16 *ImageTitle, IN CHAR8 OSType, + OUT UINTN *ErrorInStep, + IN BOOLEAN Verbose, + IN BOOLEAN IsDriver); LOADER_ENTRY *InitializeLoaderEntry(IN LOADER_ENTRY *Entry); REFIT_MENU_SCREEN *InitializeSubScreen(IN LOADER_ENTRY *Entry); VOID GenerateSubScreen(LOADER_ENTRY *Entry, IN REFIT_VOLUME *Volume, IN BOOLEAN GenerateReturn);