OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
LinuxBootInternal.h File Reference
#include <Uefi.h>
#include <Library/OcBootManagementLib.h>
#include <Library/OcMiscLib.h>

Go to the source code of this file.

Data Structures

struct  GRUB_VAR_
 
struct  LOADER_ENTRY_
 
struct  VMLINUZ_FILE_
 
struct  AUTOOPTS_
 

Macros

#define IS_DIGIT(c)
 
#define IS_ALPHA(c)
 
#define LINUX_BOOT_SCAN_ESP   BIT0
 
#define LINUX_BOOT_SCAN_XBOOTLDR   BIT1
 
#define LINUX_BOOT_SCAN_LINUX_ROOT   BIT2
 
#define LINUX_BOOT_SCAN_LINUX_DATA   BIT3
 
#define LINUX_BOOT_SCAN_OTHER   BIT7
 
#define LINUX_BOOT_ALLOW_AUTODETECT   BIT8
 
#define LINUX_BOOT_USE_LATEST   BIT9
 
#define LINUX_BOOT_ADD_RO   BIT10
 
#define LINUX_BOOT_ADD_RW   BIT11
 
#define LINUX_BOOT_ALLOW_CONF_AUTO_ROOT   BIT13
 
#define LINUX_BOOT_LOG_VERBOSE   BIT14
 
#define LINUX_BOOT_ADD_DEBUG_INFO   BIT15
 
#define LINUX_BOOT_LOG_GRUB_VARS   BIT16
 
#define LINUX_BOOT_FIX_TUNED   BIT17
 
#define LINUX_BOOT_ALL
 
#define VAR_ERR_NONE   (0)
 
#define VAR_ERR_INDENTED   BIT0
 
#define VAR_ERR_HAS_VARS   BIT1
 

Typedefs

typedef struct GRUB_VAR_ GRUB_VAR
 
typedef struct LOADER_ENTRY_ LOADER_ENTRY
 
typedef struct VMLINUZ_FILE_ VMLINUZ_FILE
 
typedef struct AUTOOPTS_ AUTOOPTS
 

Functions

EFI_STATUS InternalInitGrubVars (VOID)
 
VOID InternalFreeGrubVars (VOID)
 
EFI_STATUS InternalSetGrubVar (CHAR8 *Key, CHAR8 *Value, UINTN Errors)
 
BOOLEAN InternalHasGrubVars (CHAR8 *Options)
 
GRUB_VARInternalGetGrubVar (IN CONST CHAR8 *Key)
 
EFI_STATUS InternalExpandGrubVarsForArray (IN OUT OC_FLEX_ARRAY *Options)
 
EFI_STATUS InternalExpandGrubVars (IN CONST CHAR8 *Options, IN OUT CHAR8 **Result)
 
EFI_STATUS InternalProcessGrubEnv (IN OUT CHAR8 *Content, IN CONST UINTN Length)
 
EFI_STATUS InternalProcessGrubCfg (IN OUT CHAR8 *Content)
 
LOADER_ENTRYInternalAllocateLoaderEntry (VOID)
 
VOID InternalFreeLoaderEntry (LOADER_ENTRY *Entry)
 
EFI_STATUS InternalProcessLoaderEntryFile (IN CONST CHAR16 *FileName, IN OUT CHAR8 *Content, OUT LOADER_ENTRY *Entry, IN CONST BOOLEAN Grub2)
 
VOID InternalFreePickerEntry (IN OC_PICKER_ENTRY *Entry)
 
EFI_STATUS InternalConvertLoaderEntriesToBootEntries (IN EFI_FILE_PROTOCOL *RootDirectory, OUT OC_PICKER_ENTRY **Entries, OUT UINTN *NumEntries)
 
EFI_STATUS InternalScanLoaderEntries (IN EFI_FILE_PROTOCOL *RootDirectory, OUT OC_PICKER_ENTRY **Entries, OUT UINTN *NumEntries)
 
EFI_STATUS InternalIdVersionFromFileName (IN OUT LOADER_ENTRY *Entry, IN CHAR16 *FileName)
 
EFI_STATUS InternalPreloadAutoOpts (IN OC_FLEX_ARRAY *Options)
 
EFI_STATUS InternalAutodetectLinux (IN EFI_FILE_PROTOCOL *RootDirectory, OUT OC_PICKER_ENTRY **Entries, OUT UINTN *NumEntries)
 
EFI_STATUS InsertRootOption (IN OC_FLEX_ARRAY *Options)
 
INTN EFIAPI InternalVersionCompare (IN CONST VOID *Version1, IN CONST VOID *Version2)
 
INTN EFIAPI InternalReverseVersionCompare (IN CONST VOID *Version1, IN CONST VOID *Version2)
 

Variables

UINTN gLinuxBootFlags
 
OC_PICKER_CONTEXTgPickerContext
 
OC_FLEX_ARRAYgLoaderEntries
 
EFI_GUID gPartuuid
 
CHAR8 * gFileSystemType
 

Detailed Description

Copyright (C) 2021, Mike Beaton. All rights reserved.
SPDX-License-Identifier: BSD-3-Clause

Definition in file LinuxBootInternal.h.

Macro Definition Documentation

◆ IS_ALPHA

#define IS_ALPHA ( c)
Value:
(((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z'))

Definition at line 21 of file LinuxBootInternal.h.

◆ IS_DIGIT

#define IS_DIGIT ( c)
Value:
((c) >= '0' && (c) <= '9')

Definition at line 20 of file LinuxBootInternal.h.

◆ LINUX_BOOT_ADD_DEBUG_INFO

#define LINUX_BOOT_ADD_DEBUG_INFO   BIT15

Definition at line 98 of file LinuxBootInternal.h.

◆ LINUX_BOOT_ADD_RO

#define LINUX_BOOT_ADD_RO   BIT10

Definition at line 70 of file LinuxBootInternal.h.

◆ LINUX_BOOT_ADD_RW

#define LINUX_BOOT_ADD_RW   BIT11

Definition at line 76 of file LinuxBootInternal.h.

◆ LINUX_BOOT_ALL

#define LINUX_BOOT_ALL
Value:
( \
)
#define LINUX_BOOT_SCAN_LINUX_ROOT
#define LINUX_BOOT_ALLOW_CONF_AUTO_ROOT
#define LINUX_BOOT_SCAN_XBOOTLDR
#define LINUX_BOOT_ADD_RO
#define LINUX_BOOT_FIX_TUNED
#define LINUX_BOOT_ADD_DEBUG_INFO
#define LINUX_BOOT_ADD_RW
#define LINUX_BOOT_USE_LATEST
#define LINUX_BOOT_SCAN_ESP
#define LINUX_BOOT_LOG_GRUB_VARS
#define LINUX_BOOT_ALLOW_AUTODETECT
#define LINUX_BOOT_SCAN_OTHER
#define LINUX_BOOT_SCAN_LINUX_DATA
#define LINUX_BOOT_LOG_VERBOSE

Definition at line 110 of file LinuxBootInternal.h.

◆ LINUX_BOOT_ALLOW_AUTODETECT

#define LINUX_BOOT_ALLOW_AUTODETECT   BIT8

Definition at line 56 of file LinuxBootInternal.h.

◆ LINUX_BOOT_ALLOW_CONF_AUTO_ROOT

#define LINUX_BOOT_ALLOW_CONF_AUTO_ROOT   BIT13

Definition at line 87 of file LinuxBootInternal.h.

◆ LINUX_BOOT_FIX_TUNED

#define LINUX_BOOT_FIX_TUNED   BIT17

Definition at line 108 of file LinuxBootInternal.h.

◆ LINUX_BOOT_LOG_GRUB_VARS

#define LINUX_BOOT_LOG_GRUB_VARS   BIT16

Definition at line 103 of file LinuxBootInternal.h.

◆ LINUX_BOOT_LOG_VERBOSE

#define LINUX_BOOT_LOG_VERBOSE   BIT14

Definition at line 92 of file LinuxBootInternal.h.

◆ LINUX_BOOT_SCAN_ESP

#define LINUX_BOOT_SCAN_ESP   BIT0

Definition at line 26 of file LinuxBootInternal.h.

◆ LINUX_BOOT_SCAN_LINUX_DATA

#define LINUX_BOOT_SCAN_LINUX_DATA   BIT3

Definition at line 41 of file LinuxBootInternal.h.

◆ LINUX_BOOT_SCAN_LINUX_ROOT

#define LINUX_BOOT_SCAN_LINUX_ROOT   BIT2

Definition at line 36 of file LinuxBootInternal.h.

◆ LINUX_BOOT_SCAN_OTHER

#define LINUX_BOOT_SCAN_OTHER   BIT7

Definition at line 50 of file LinuxBootInternal.h.

◆ LINUX_BOOT_SCAN_XBOOTLDR

#define LINUX_BOOT_SCAN_XBOOTLDR   BIT1

Definition at line 31 of file LinuxBootInternal.h.

◆ LINUX_BOOT_USE_LATEST

#define LINUX_BOOT_USE_LATEST   BIT9

Definition at line 64 of file LinuxBootInternal.h.

◆ VAR_ERR_HAS_VARS

#define VAR_ERR_HAS_VARS   BIT1

Definition at line 132 of file LinuxBootInternal.h.

◆ VAR_ERR_INDENTED

#define VAR_ERR_INDENTED   BIT0

Definition at line 131 of file LinuxBootInternal.h.

◆ VAR_ERR_NONE

#define VAR_ERR_NONE   (0)

Definition at line 130 of file LinuxBootInternal.h.

Typedef Documentation

◆ AUTOOPTS

typedef struct AUTOOPTS_ AUTOOPTS

◆ GRUB_VAR

typedef struct GRUB_VAR_ GRUB_VAR

Definition at line 165 of file LinuxBootInternal.h.

◆ LOADER_ENTRY

typedef struct LOADER_ENTRY_ LOADER_ENTRY

Definition at line 170 of file LinuxBootInternal.h.

◆ VMLINUZ_FILE

typedef struct VMLINUZ_FILE_ VMLINUZ_FILE

Function Documentation

◆ InsertRootOption()

EFI_STATUS InsertRootOption ( IN OC_FLEX_ARRAY * Options)

Definition at line 444 of file Autodetect.c.

◆ InternalAllocateLoaderEntry()

LOADER_ENTRY * InternalAllocateLoaderEntry ( VOID )

Definition at line 273 of file LoaderEntry.c.

◆ InternalAutodetectLinux()

EFI_STATUS InternalAutodetectLinux ( IN EFI_FILE_PROTOCOL * RootDirectory,
OUT OC_PICKER_ENTRY ** Entries,
OUT UINTN * NumEntries )

Definition at line 1019 of file Autodetect.c.

◆ InternalConvertLoaderEntriesToBootEntries()

EFI_STATUS InternalConvertLoaderEntriesToBootEntries ( IN EFI_FILE_PROTOCOL * RootDirectory,
OUT OC_PICKER_ENTRY ** Entries,
OUT UINTN * NumEntries )

Definition at line 1507 of file LoaderEntry.c.

◆ InternalExpandGrubVars()

EFI_STATUS InternalExpandGrubVars ( IN CONST CHAR8 * Options,
IN OUT CHAR8 ** Result )

Definition at line 172 of file GrubVars.c.

◆ InternalExpandGrubVarsForArray()

EFI_STATUS InternalExpandGrubVarsForArray ( IN OUT OC_FLEX_ARRAY * Options)

Definition at line 146 of file GrubVars.c.

◆ InternalFreeGrubVars()

VOID InternalFreeGrubVars ( VOID )

Definition at line 34 of file GrubVars.c.

◆ InternalFreeLoaderEntry()

VOID InternalFreeLoaderEntry ( LOADER_ENTRY * Entry)

Definition at line 301 of file LoaderEntry.c.

◆ InternalFreePickerEntry()

VOID InternalFreePickerEntry ( IN OC_PICKER_ENTRY * Entry)

Definition at line 34 of file OpenLinuxBoot.c.

◆ InternalGetGrubVar()

GRUB_VAR * InternalGetGrubVar ( IN CONST CHAR8 * Key)

Definition at line 128 of file GrubVars.c.

◆ InternalHasGrubVars()

BOOLEAN InternalHasGrubVars ( CHAR8 * Options)

Definition at line 120 of file GrubVars.c.

◆ InternalIdVersionFromFileName()

EFI_STATUS InternalIdVersionFromFileName ( IN OUT LOADER_ENTRY * Entry,
IN CHAR16 * FileName )

Definition at line 593 of file LoaderEntry.c.

◆ InternalInitGrubVars()

EFI_STATUS InternalInitGrubVars ( VOID )

Definition at line 21 of file GrubVars.c.

◆ InternalPreloadAutoOpts()

EFI_STATUS InternalPreloadAutoOpts ( IN OC_FLEX_ARRAY * Options)

Definition at line 489 of file Autodetect.c.

◆ InternalProcessGrubCfg()

EFI_STATUS InternalProcessGrubCfg ( IN OUT CHAR8 * Content)

Definition at line 398 of file GrubCfg.c.

◆ InternalProcessGrubEnv()

EFI_STATUS InternalProcessGrubEnv ( IN OUT CHAR8 * Content,
IN CONST UINTN Length )

Definition at line 23 of file GrubEnv.c.

◆ InternalProcessLoaderEntryFile()

EFI_STATUS InternalProcessLoaderEntryFile ( IN CONST CHAR16 * FileName,
IN OUT CHAR8 * Content,
OUT LOADER_ENTRY * Entry,
IN CONST BOOLEAN Grub2 )

Definition at line 384 of file LoaderEntry.c.

◆ InternalReverseVersionCompare()

INTN EFIAPI InternalReverseVersionCompare ( IN CONST VOID * Version1,
IN CONST VOID * Version2 )

Definition at line 237 of file VersionCompare.c.

◆ InternalScanLoaderEntries()

EFI_STATUS InternalScanLoaderEntries ( IN EFI_FILE_PROTOCOL * RootDirectory,
OUT OC_PICKER_ENTRY ** Entries,
OUT UINTN * NumEntries )

Definition at line 1144 of file LoaderEntry.c.

◆ InternalSetGrubVar()

EFI_STATUS InternalSetGrubVar ( CHAR8 * Key,
CHAR8 * Value,
UINTN Errors )

Definition at line 44 of file GrubVars.c.

◆ InternalVersionCompare()

INTN EFIAPI InternalVersionCompare ( IN CONST VOID * Version1,
IN CONST VOID * Version2 )

Definition at line 227 of file VersionCompare.c.

Variable Documentation

◆ gFileSystemType

CHAR8* gFileSystemType
extern

Definition at line 31 of file OpenLinuxBoot.c.

◆ gLinuxBootFlags

UINTN gLinuxBootFlags
extern

Definition at line 24 of file OpenLinuxBoot.c.

◆ gLoaderEntries

OC_FLEX_ARRAY* gLoaderEntries
extern

Definition at line 29 of file OpenLinuxBoot.c.

◆ gPartuuid

EFI_GUID gPartuuid
extern

Definition at line 30 of file OpenLinuxBoot.c.

◆ gPickerContext

OC_PICKER_CONTEXT* gPickerContext
extern

Definition at line 28 of file OpenLinuxBoot.c.