From 620ede58626edbe5cdb313c760ce43d7dc5c15ce Mon Sep 17 00:00:00 2001 From: Kaimakan71 Date: Sun, 6 Oct 2024 08:04:40 -0400 Subject: [PATCH] [BOOT:LIB] Declare global variables in bootlib.h --- BOOT/ENVIRON/INC/bootlib.h | 35 ++++++++++++++++++++++++++++++++++- BOOT/ENVIRON/LIB/EFI/eficon.c | 3 --- BOOT/ENVIRON/LIB/EFI/efimm.c | 3 --- BOOT/ENVIRON/LIB/X86/arch.c | 2 -- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/BOOT/ENVIRON/INC/bootlib.h b/BOOT/ENVIRON/INC/bootlib.h index d152ede..c3e39f0 100644 --- a/BOOT/ENVIRON/INC/bootlib.h +++ b/BOOT/ENVIRON/INC/bootlib.h @@ -392,11 +392,15 @@ typedef ULONG BCDE_DATA_TYPE; #define BCDE_DATA_FORMAT_MASK 0x0F000000 -#define BCDE_DATA_FORMAT_DEVICE 0x1 +#define BCDE_DATA_FORMAT_DEVICE 0x01000000 +#define BCDE_DATA_FORMAT_STRING 0x02000000 #define BCDE_DATA_TYPE_APPLICATION_DEVICE 0x11000001 #define BCDE_DATA_TYPE_APPLICATION_PATH 0x22000002 +#define BCDE_DATA_TYPE_BCD_DEVICE 0x21000022 +#define BCDE_DATA_TYPE_BCD_PATH 0x22000023 + typedef struct { GUID Options; BOOT_DEVICE Device; @@ -414,6 +418,20 @@ typedef struct { #endif extern PEXECUTION_CONTEXT CurrentExecutionContext; +extern ULONG BlPlatformFlags; +extern PBOOT_DEVICE BlpBootDevice; +extern PBOOT_APPLICATION_PARAMETERS BlpApplicationParameters; +extern BOOT_LIBRARY_PARAMETERS BlpLibraryParameters; +extern BOOT_APPLICATION_ENTRY BlpApplicationEntry; + +#if defined(_EFI) +extern PBOOT_FIRMWARE_DATA EfiFirmwareParameters; +extern EFI_SYSTEM_TABLE *EfiST; +extern EFI_BOOT_SERVICES *EfiBS; +extern EFI_RUNTIME_SERVICES *EfiRT; +extern SIMPLE_TEXT_OUTPUT_INTERFACE *EfiConOut; +extern SIMPLE_INPUT_INTERFACE *EfiConIn; +#endif VOID ConsolePrint ( @@ -473,6 +491,21 @@ BlGetBootOptionListSize ( IN PBOOT_ENTRY_OPTION Options ); +NTSTATUS +BlGetBootOptionDevice ( + IN PBOOT_ENTRY_OPTION Options, + IN BCDE_DATA_TYPE Type, + IN OUT PBOOT_DEVICE *Device, + IN OUT PBOOT_ENTRY_OPTION *OtherOptions + ); + +NTSTATUS +BlGetBootOptionString ( + IN PBOOT_ENTRY_OPTION Options, + IN BCDE_DATA_TYPE Type, + IN OUT PWSTR *String + ); + NTSTATUS BlInitializeLibrary ( IN PBOOT_APPLICATION_PARAMETERS ApplicationParameters, diff --git a/BOOT/ENVIRON/LIB/EFI/eficon.c b/BOOT/ENVIRON/LIB/EFI/eficon.c index c90305a..cac6061 100644 --- a/BOOT/ENVIRON/LIB/EFI/eficon.c +++ b/BOOT/ENVIRON/LIB/EFI/eficon.c @@ -17,9 +17,6 @@ Abstract: #include #include "bootlib.h" -extern PEXECUTION_CONTEXT CurrentExecutionContext; -extern SIMPLE_TEXT_OUTPUT_INTERFACE *EfiConOut; - VOID ConsolePrint ( IN PWSTR String diff --git a/BOOT/ENVIRON/LIB/EFI/efimm.c b/BOOT/ENVIRON/LIB/EFI/efimm.c index ff6f86d..f6b49ae 100644 --- a/BOOT/ENVIRON/LIB/EFI/efimm.c +++ b/BOOT/ENVIRON/LIB/EFI/efimm.c @@ -23,9 +23,6 @@ Abstract: #define EFI_PAGE(NtPage) (((NtPage) << PAGE_SHIFT) >> EFI_PAGE_SHIFT) #define NT_PAGE(EfiPage) (((EfiPage) << EFI_PAGE_SHIFT) >> PAGE_SHIFT) -extern EFI_BOOT_SERVICES *EfiBS; -extern PBOOT_DEVICE BlpBootDevice; - NTSTATUS EfiGetMemoryMap ( IN OUT UINTN *MemoryMapSize, diff --git a/BOOT/ENVIRON/LIB/X86/arch.c b/BOOT/ENVIRON/LIB/X86/arch.c index cbb6267..9042ee2 100644 --- a/BOOT/ENVIRON/LIB/X86/arch.c +++ b/BOOT/ENVIRON/LIB/X86/arch.c @@ -23,8 +23,6 @@ Abstract: #define IA32_EFER_MSR 0xC0000080 #define IA32_EFER_LME (1 << 10) -extern ULONG BlPlatformFlags; -extern PBOOT_FIRMWARE_DATA EfiFirmwareParameters; EXECUTION_CONTEXT ApplicationExecutionContext; EXECUTION_CONTEXT FirmwareExecutionContext; PEXECUTION_CONTEXT CurrentExecutionContext;