[BOOT] Add boot manager headers

This commit is contained in:
Quinn Stephens 2024-05-28 08:30:34 -04:00
parent 1f041b4444
commit d2c2ba65ea
6 changed files with 131 additions and 1 deletions

View File

@ -14,6 +14,7 @@ Abstract:
--*/ --*/
#include "bootmgr.h" #include "bootmgr.h"
#include "efilib.h"
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI

View File

@ -38,7 +38,9 @@ Return Value:
--*/ --*/
{ {
/* TODO: Implement BmMain() */ (VOID)Parameters;
/* Not implemented */
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }

View File

@ -0,0 +1,34 @@
/*++
Copyright (c) 2024, Quinn Stephens.
Provided under the BSD 3-Clause license.
Module Name:
bootmgr.h
Abstract:
Boot manager definitions.
--*/
#ifndef _BOOTMGR_H
#define _BOOTMGR_H
#include <nt.h>
#define BOOT_APPLICATION_PARAMETERS_SIGNATURE 0x50504120544f4f42 /* "BOOT APP" */
#define BOOT_APPLICATION_PARAMETERS_VERSION 2
typedef struct {
ULONGLONG Signature;
ULONG Version;
} BOOT_APPLICATION_PARAMETERS, *PBOOT_APPLICATION_PARAMETERS;
NTSTATUS
BmMain (
IN PBOOT_APPLICATION_PARAMETERS Parameters
);
#endif

34
BOOT/ENVIRON/INC/efilib.h Normal file
View File

@ -0,0 +1,34 @@
/*++
Copyright (c) 2024, Quinn Stephens.
Provided under the BSD 3-Clause license.
Module Name:
efilib.h
Abstract:
Boot manager EFI library definitions.
--*/
#ifndef _EFILIB_H
#define _EFILIB_H
#include <nt.h>
#include "bootmgr.h"
#include "efi.h"
PBOOT_APPLICATION_PARAMETERS
EfiInitCreateInputParameters (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
);
EFI_STATUS
EfiGetEfiStatusCode (
IN NTSTATUS Status
);
#endif

View File

@ -0,0 +1,58 @@
/*++
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_APPLICATION_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_APPLICATION_PARAMETERS InputParameters;
(VOID)ImageHandle;
(VOID)SystemTable;
InputParameters = (PBOOT_APPLICATION_PARAMETERS)(&EfiInitScratch[ScratchUsed]);
InputParameters->Signature = BOOT_APPLICATION_PARAMETERS_SIGNATURE;
InputParameters->Version = BOOT_APPLICATION_PARAMETERS_VERSION;
ScratchUsed += sizeof(BOOT_APPLICATION_PARAMETERS);
return InputParameters;
}

View File

@ -14,6 +14,7 @@ Abstract:
--*/ --*/
#include "bootmgr.h" #include "bootmgr.h"
#include "efi.h"
EFI_STATUS EFI_STATUS
EfiGetEfiStatusCode ( EfiGetEfiStatusCode (