/*++ Copyright (c) 2024, Quinn Stephens. Provided under the BSD 3-Clause license. Module Name: efiinit.c Abstract: Provides EFI initialization utilities. --*/ #include "bootmgr.h" #include "efi.h" UCHAR EfiInitScratch[2048]; PBOOT_INPUT_PARAMETERS EfiInitCreateInputParameters ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) /*++ Routine Description: Creates the input parameter structure for the boot application. Arguments: ImageHandle - Handle for the boot manager image. SystemTable - Pointer to the EFI system table. Return Value: Pointer to parameter structure on success or NULL on failure. --*/ { ULONG ScratchUsed = 0; PBOOT_INPUT_PARAMETERS InputParameters; (VOID)ImageHandle; (VOID)SystemTable; InputParameters = (PBOOT_INPUT_PARAMETERS)(&EfiInitScratch[ScratchUsed]); InputParameters->Signature = BOOT_INPUT_PARAMETERS_SIGNATURE; InputParameters->Version = BOOT_INPUT_PARAMETERS_VERSION; ScratchUsed += sizeof(BOOT_INPUT_PARAMETERS); /* TODO: Create additional parameter structures */ return InputParameters; }