/*++ Copyright (c) 2024, Quinn Stephens. Provided under the BSD 3-Clause license. Module Name: efifw.c Abstract: Provides EFI firmware utilities. --*/ #include "bootlib.h" #include "efi.h" EFI_SYSTEM_TABLE *EfiST; EFI_BOOT_SERVICES *EfiBS; EFI_RUNTIME_SERVICES *EfiRT; SIMPLE_TEXT_OUTPUT_INTERFACE *EfiConOut; SIMPLE_INPUT_INTERFACE *EfiConIn; NTSTATUS BlpFwInitialize ( IN ULONG Stage, IN PBOOT_FIRMWARE_DATA FirmwareData ) /*++ Routine Description: Internal routine to initialize the boot library. Arguments: Stage - 0 or 1. FirmwareData - Pointer to BOOT_FIRMWARE_DATA. Return Value: STATUS_SUCCESS if successful, STATUS_INVALID_PARAMETER if FirmwareData is invalid. --*/ { if (FirmwareData == NULL || FirmwareData->Version == 0) { return STATUS_INVALID_PARAMETER; } if (Stage == 0) { EfiST = FirmwareData->SystemTable; EfiBS = EfiST->BootServices; EfiRT = EfiST->RuntimeServices; EfiConOut = EfiST->ConOut; EfiConIn = EfiST->ConIn; } return STATUS_SUCCESS; }