/*++ Copyright (c) 2024, Quinn Stephens. Provided under the BSD 3-Clause license. Module Name: bootlib.h Abstract: Boot library definitions. --*/ #ifndef _BOOTLIB_H #define _BOOTLIB_H #include #include "bootmgr.h" typedef struct { ULONG Flags; ULONG TranslationType; ULONG MinimumPageAllocation; } BOOT_LIBRARY_PARAMETERS, *PBOOT_LIBRARY_PARAMETERS; VOID ConsolePrint ( IN PWSTR String ); VOID ConsolePrintf ( IN PWSTR Format, ... ); // // Enable/disable debug printing. // #ifdef _DEBUG #define DebugPrint(String) ConsolePrint(String) #define DebugPrintf(Format, ...) ConsolePrintf(Format, __VA_ARGS__) #else #define DebugPrint(String) #define DebugPrintf(Format, ...) #endif ULONG BlGetBootOptionSize ( IN PBOOT_APPLICATION_OPTION Option ); ULONG BlGetBootOptionListSize ( IN PBOOT_APPLICATION_OPTION Options ); NTSTATUS BlpFwInitialize ( IN ULONG Stage, IN PBOOT_FIRMWARE_DATA FirmwareData ); NTSTATUS BlpMmInitializeConstraints ( VOID ); NTSTATUS BlpMmInitialize ( IN PBOOT_MEMORY_INFO MemoryInfo, IN ULONG TranslationType, IN PBOOT_LIBRARY_PARAMETERS LibraryParameters ); NTSTATUS BlInitializeLibrary ( IN PBOOT_INPUT_PARAMETERS InputParameters, IN PBOOT_LIBRARY_PARAMETERS LibraryParameters ); NTSTATUS BlDestroyLibrary ( VOID ); #endif