6#ifndef LINUX_BOOT_INTERNAL_H
7#define LINUX_BOOT_INTERNAL_H
20#define IS_DIGIT(c) ((c) >= '0' && (c) <= '9')
21#define IS_ALPHA(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z'))
26#define LINUX_BOOT_SCAN_ESP BIT0
31#define LINUX_BOOT_SCAN_XBOOTLDR BIT1
36#define LINUX_BOOT_SCAN_LINUX_ROOT BIT2
41#define LINUX_BOOT_SCAN_LINUX_DATA BIT3
50#define LINUX_BOOT_SCAN_OTHER BIT7
56#define LINUX_BOOT_ALLOW_AUTODETECT BIT8
64#define LINUX_BOOT_USE_LATEST BIT9
70#define LINUX_BOOT_ADD_RO BIT10
76#define LINUX_BOOT_ADD_RW BIT11
87#define LINUX_BOOT_ALLOW_CONF_AUTO_ROOT BIT13
92#define LINUX_BOOT_LOG_VERBOSE BIT14
98#define LINUX_BOOT_ADD_DEBUG_INFO BIT15
103#define LINUX_BOOT_LOG_GRUB_VARS BIT16
108#define LINUX_BOOT_FIX_TUNED BIT17
110#define LINUX_BOOT_ALL ( \
111 LINUX_BOOT_SCAN_ESP | \
112 LINUX_BOOT_SCAN_XBOOTLDR | \
113 LINUX_BOOT_SCAN_LINUX_ROOT | \
114 LINUX_BOOT_SCAN_LINUX_DATA | \
115 LINUX_BOOT_SCAN_OTHER | \
116 LINUX_BOOT_ALLOW_AUTODETECT | \
117 LINUX_BOOT_USE_LATEST | \
118 LINUX_BOOT_ADD_RO | \
119 LINUX_BOOT_ADD_RW | \
120 LINUX_BOOT_ALLOW_CONF_AUTO_ROOT | \
121 LINUX_BOOT_LOG_VERBOSE | \
122 LINUX_BOOT_ADD_DEBUG_INFO | \
123 LINUX_BOOT_LOG_GRUB_VARS | \
124 LINUX_BOOT_FIX_TUNED \
130#define VAR_ERR_NONE (0)
131#define VAR_ERR_INDENTED BIT0
132#define VAR_ERR_HAS_VARS BIT1
210 IN OUT CHAR8 **Result
218 IN OUT CHAR8 *Content,
227 IN OUT CHAR8 *Content
242 IN CONST CHAR16 *FileName,
243 IN OUT CHAR8 *Content,
245 IN CONST BOOLEAN Grub2
277 IN EFI_FILE_PROTOCOL *RootDirectory,
279 OUT UINTN *NumEntries
284 IN EFI_FILE_PROTOCOL *RootDirectory,
286 OUT UINTN *NumEntries
371 IN EFI_FILE_PROTOCOL *RootDirectory,
373 OUT UINTN *NumEntries
390 IN CONST VOID *Version1,
391 IN CONST VOID *Version2
400 IN CONST VOID *Version1,
401 IN CONST VOID *Version2
INTN EFIAPI InternalVersionCompare(IN CONST VOID *Version1, IN CONST VOID *Version2)
struct AUTOOPTS_ AUTOOPTS
struct VMLINUZ_FILE_ VMLINUZ_FILE
EFI_STATUS InternalScanLoaderEntries(IN EFI_FILE_PROTOCOL *RootDirectory, OUT OC_PICKER_ENTRY **Entries, OUT UINTN *NumEntries)
EFI_STATUS InternalInitGrubVars(VOID)
OC_FLEX_ARRAY * gLoaderEntries
VOID InternalFreePickerEntry(IN OC_PICKER_ENTRY *Entry)
EFI_STATUS InternalSetGrubVar(CHAR8 *Key, CHAR8 *Value, UINTN Errors)
EFI_STATUS InternalConvertLoaderEntriesToBootEntries(IN EFI_FILE_PROTOCOL *RootDirectory, OUT OC_PICKER_ENTRY **Entries, OUT UINTN *NumEntries)
EFI_STATUS InsertRootOption(IN OC_FLEX_ARRAY *Options)
EFI_STATUS InternalProcessGrubEnv(IN OUT CHAR8 *Content, IN CONST UINTN Length)
EFI_STATUS InternalAutodetectLinux(IN EFI_FILE_PROTOCOL *RootDirectory, OUT OC_PICKER_ENTRY **Entries, OUT UINTN *NumEntries)
VOID InternalFreeLoaderEntry(LOADER_ENTRY *Entry)
EFI_STATUS InternalExpandGrubVars(IN CONST CHAR8 *Options, IN OUT CHAR8 **Result)
INTN EFIAPI InternalReverseVersionCompare(IN CONST VOID *Version1, IN CONST VOID *Version2)
OC_PICKER_CONTEXT * gPickerContext
VOID InternalFreeGrubVars(VOID)
EFI_STATUS InternalPreloadAutoOpts(IN OC_FLEX_ARRAY *Options)
LOADER_ENTRY * InternalAllocateLoaderEntry(VOID)
EFI_STATUS InternalProcessGrubCfg(IN OUT CHAR8 *Content)
EFI_STATUS InternalIdVersionFromFileName(IN OUT LOADER_ENTRY *Entry, IN CHAR16 *FileName)
GRUB_VAR * InternalGetGrubVar(IN CONST CHAR8 *Key)
EFI_STATUS InternalExpandGrubVarsForArray(IN OUT OC_FLEX_ARRAY *Options)
BOOLEAN InternalHasGrubVars(CHAR8 *Options)
EFI_STATUS InternalProcessLoaderEntryFile(IN CONST CHAR16 *FileName, IN OUT CHAR8 *Content, OUT LOADER_ENTRY *Entry, IN CONST BOOLEAN Grub2)
BOOLEAN DuplicateIdScanned