X-Git-Url: https://code.delx.au/refind/blobdiff_plain/118f257faaeeebd8c0b56821d70fcfe8f36289a6..de33b3554d3dde875eea6e1f1b3da54e22e2c326:/refind/global.h diff --git a/refind/global.h b/refind/global.h index f501bb7..a4d8355 100644 --- a/refind/global.h +++ b/refind/global.h @@ -35,11 +35,11 @@ */ /* * Modifications copyright (c) 2012 Roderick W. Smith - * + * * Modifications distributed under the terms of the GNU General Public * License (GPL) version 3 (GPLv3), a copy of which must be distributed * with this source code or binaries made from it. - * + * */ #ifndef __GLOBAL_H_ @@ -58,17 +58,20 @@ #define REFIT_DEBUG (0) // Tag classifications; used in various ways. -#define TAG_ABOUT (1) -#define TAG_REBOOT (2) -#define TAG_SHUTDOWN (3) -#define TAG_TOOL (4) -#define TAG_LOADER (5) -#define TAG_LEGACY (6) -#define TAG_EXIT (7) -#define TAG_SHELL (8) -#define TAG_GPTSYNC (9) -#define TAG_LEGACY_NON_MAC (10) -#define NUM_TOOLS (9) +#define TAG_ABOUT (1) +#define TAG_REBOOT (2) +#define TAG_SHUTDOWN (3) +#define TAG_TOOL (4) +#define TAG_LOADER (5) +#define TAG_LEGACY (6) +#define TAG_EXIT (7) +#define TAG_SHELL (8) +#define TAG_GPTSYNC (9) +#define TAG_LEGACY_UEFI (10) +#define TAG_APPLE_RECOVERY (11) +#define TAG_MOK_TOOL (12) +#define TAG_FIRMWARE (13) +#define NUM_TOOLS (13) #define NUM_SCAN_OPTIONS 10 @@ -86,7 +89,7 @@ #define LEGACY_TYPE_MAC 1 #define LEGACY_TYPE_UEFI 2 -#ifndef __MAKEWITH_TIANO +#ifdef __MAKEWITH_GNUEFI // // define BBS Device Types // @@ -100,8 +103,29 @@ #define BBS_UNKNOWN 0xff #endif -//TODO: may want to make this configurable via config file -//static UINT16 SupportedLegacyDevices[] = {BBS_HARDDISK, BBS_CDROM, BBS_USB}; +// BIOS Boot Specification (BBS) device types, as returned in DevicePath->Type field +#define DEVICE_TYPE_HW 0x01 +#define DEVICE_TYPE_ACPI 0x02 /* returned by UEFI boot loader on USB */ +#define DEVICE_TYPE_MESSAGING 0x03 +#define DEVICE_TYPE_MEDIA 0x04 /* returned by EFI boot loaders on hard disk */ +#define DEVICE_TYPE_BIOS 0x05 /* returned by legacy (BIOS) boot loaders */ +#define DEVICE_TYPE_END 0x75 /* end of path */ + +// Filesystem type identifiers. Not all are yet used.... +#define FS_TYPE_UNKNOWN 0 +#define FS_TYPE_FAT 1 +#define FS_TYPE_EXT2 2 +#define FS_TYPE_EXT3 3 +#define FS_TYPE_EXT4 4 +#define FS_TYPE_HFSPLUS 5 +#define FS_TYPE_REISERFS 6 +#define FS_TYPE_ISO9660 7 + +// Names of binaries that can manage MOKs.... +#define MOK_NAMES L"MokManager.efi,HashTool.efi,HashTool-signed.efi" +// 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\\altlinux" // // global definitions @@ -127,6 +151,7 @@ typedef struct { EFI_HANDLE DeviceHandle; EFI_FILE *RootDir; CHAR16 *VolName; + UINTN VolNumber; EG_IMAGE *VolIconImage; EG_IMAGE *VolBadgeImage; UINTN DiskKind; @@ -142,6 +167,7 @@ typedef struct { EFI_DEVICE_PATH *WholeDiskDevicePath; MBR_PARTITION_INFO *MbrPartitionTable; BOOLEAN IsReadable; + UINT32 FSType; } REFIT_VOLUME; typedef struct _refit_menu_entry { @@ -164,6 +190,8 @@ typedef struct _refit_menu_screen { REFIT_MENU_ENTRY **Entries; UINTN TimeoutSeconds; CHAR16 *TimeoutText; + CHAR16 *Hint1; + CHAR16 *Hint2; } REFIT_MENU_SCREEN; typedef struct { @@ -182,9 +210,9 @@ typedef struct { typedef struct { REFIT_MENU_ENTRY me; REFIT_VOLUME *Volume; -#ifdef __MAKEWITH_TIANO +#ifndef __MAKEWITH_GNUEFI BDS_COMMON_OPTION *BdsOption; -#endif // __MAKEWITH_TIANO +#endif CHAR16 *LoadOptions; BOOLEAN Enabled; } LEGACY_ENTRY; @@ -194,17 +222,24 @@ typedef struct { BOOLEAN ScanAllLinux; UINTN RequestedScreenWidth; UINTN RequestedScreenHeight; + UINTN BannerBottomEdge; + UINTN RequestedTextMode; UINTN Timeout; UINTN HideUIFlags; UINTN MaxTags; // max. number of OS entries to show simultaneously in graphics mode UINTN GraphicsFor; UINTN LegacyType; + UINTN ScanDelay; + UINTN ScreensaverTime; CHAR16 *BannerFileName; + EG_IMAGE *ScreenBackground; CHAR16 *SelectionSmallFileName; CHAR16 *SelectionBigFileName; CHAR16 *DefaultSelection; CHAR16 *AlsoScan; - CHAR16 *DontScan; + CHAR16 *DontScanVolumes; + CHAR16 *DontScanDirs; + CHAR16 *DontScanFiles; CHAR16 *DriverDirs; CHAR16 *IconsDir; UINTN ShowTools[NUM_TOOLS];