Implement BlInitializeBootMenuList()
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 26s
Builds / ExectOS (i686) (push) Successful in 24s

This commit is contained in:
2023-12-18 23:27:49 +01:00
parent 6983b2eeac
commit a7781c4b0b
5 changed files with 112 additions and 8 deletions

View File

@@ -45,6 +45,7 @@
/* Boot Loader protocol routine pointers */
typedef EFI_STATUS (*PBL_ALLOCATE_PAGES)(IN UINT64 Size, OUT PEFI_PHYSICAL_ADDRESS Memory);
typedef EFI_STATUS (*PBL_ALLOCATE_POOL)(IN UINT_PTR Size, OUT PVOID *Memory);
typedef VOID (*PBL_BOOTMENU_INITIALIZE_OS_LIST)(OUT PXTBL_BOOTMENU_ITEM MenuEntries, OUT PULONG EntriesCount, OUT PULONG DefaultId);
typedef EFI_STATUS (*PBL_CLOSE_VOLUME)(IN PEFI_HANDLE VolumeHandle);
typedef VOID (*PBL_CONSOLE_CLEAR_SCREEN)();
typedef VOID (*PBL_CONSOLE_DISABLE_CURSOR)();
@@ -71,6 +72,13 @@ typedef XTBL_DIALOG_HANDLE (*PBL_TUI_DISPLAY_PROGRESS_DIALOG)(IN PWCHAR Caption,
typedef VOID (*PBL_TUI_UPDATE_PROGRESS_BAR)(IN PXTBL_DIALOG_HANDLE Handle, IN PWCHAR Message, IN UCHAR Percentage);
typedef EFI_STATUS (*PBL_WAIT_FOR_EFI_EVENT)(IN UINT_PTR NumberOfEvents, IN PEFI_EVENT Event, OUT PUINT_PTR Index);
/* Boot menu list structure */
typedef struct _XTBL_BOOTMENU_ITEM
{
PWCHAR EntryName;
PLIST_ENTRY Options;
} XTBL_BOOTMENU_ITEM, *PXTBL_BOOTMENU_ITEM;
/* XTLDR Configuration data */
typedef struct _XTBL_CONFIG_ENTRY
{
@@ -101,14 +109,6 @@ typedef struct _XTBL_DIALOG_HANDLE
UINT_PTR Height;
} XTBL_DIALOG_HANDLE, *PXTBL_DIALOG_HANDLE;
/* XTLDR Status data */
typedef struct _XTBL_STATUS
{
BOOLEAN BootServices;
ULONG DebugPort;
CPPORT SerialPort;
} XTBL_STATUS, *PXTBL_STATUS;
/* XTLDR Loader protocol */
typedef struct _XTBL_LOADER_PROTOCOL
{
@@ -144,6 +144,7 @@ typedef struct _XTBL_LOADER_PROTOCOL
} Memory;
struct
{
PBL_BOOTMENU_INITIALIZE_OS_LIST InitializeBootMenuList;
PBL_OPEN_XT_PROTOCOL OpenProtocol;
} Protocol;
struct
@@ -162,4 +163,12 @@ typedef struct _XTBL_LOADER_PROTOCOL
} Util;
} XTBL_LOADER_PROTOCOL, *PXTBL_LOADER_PROTOCOL;
/* XTLDR Status data */
typedef struct _XTBL_STATUS
{
BOOLEAN BootServices;
ULONG DebugPort;
CPPORT SerialPort;
} XTBL_STATUS, *PXTBL_STATUS;
#endif /* __XTDK_BLTYPES_H */

View File

@@ -264,6 +264,7 @@ typedef struct _UEFI_FIRMWARE_INFORMATION UEFI_FIRMWARE_INFORMATION, *PUEFI_FIRM
typedef struct _UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING;
typedef struct _UNICODE_STRING32 UNICODE_STRING32, *PUNICODE_STRING32;
typedef struct _UNICODE_STRING64 UNICODE_STRING64, *PUNICODE_STRING64;
typedef struct _XTBL_BOOTMENU_ITEM XTBL_BOOTMENU_ITEM, *PXTBL_BOOTMENU_ITEM;
typedef struct _XTBL_CONFIG_ENTRY XTBL_CONFIG_ENTRY, *PXTBL_CONFIG_ENTRY;
typedef struct _XTBL_CONFIG_SECTION XTBL_CONFIG_SECTION, *PXTBL_CONFIG_SECTION;
typedef struct _XTBL_DIALOG_HANDLE XTBL_DIALOG_HANDLE, *PXTBL_DIALOG_HANDLE;