diff --git a/sdk/xtdk/bltypes.h b/sdk/xtdk/bltypes.h index a6ffe68..86a9878 100644 --- a/sdk/xtdk/bltypes.h +++ b/sdk/xtdk/bltypes.h @@ -52,7 +52,10 @@ typedef EFI_STATUS (*PBL_CLOSE_VOLUME)(IN PEFI_HANDLE VolumeHandle); typedef VOID (*PBL_CLEAR_CONSOLE_LINE)(IN ULONGLONG LineNo); typedef EFI_STATUS (*PBL_CLOSE_XT_PROTOCOL)(IN PEFI_HANDLE Handle, IN PEFI_GUID ProtocolGuid); typedef BOOLEAN (*PBL_CONFIG_GET_BOOLEAN_VALUE)(IN CONST PWCHAR ConfigName); +typedef EFI_STATUS (*PBL_CONFIG_GET_BOOT_OPTION_VALUE)(IN PLIST_ENTRY Options, IN CONST PWCHAR OptionName, OUT PWCHAR *OptionValue); +typedef VOID (*PBL_CONFIG_GET_EDITABLE_OPTIONS)(OUT CONST PWCHAR **OptionsArray, OUT PSIZE_T OptionsCount); typedef PWCHAR (*PBL_CONFIG_GET_VALUE)(IN CONST PWCHAR ConfigName); +typedef EFI_STATUS (*PBL_CONFIG_SET_BOOT_OPTION_VALUE)(IN PLIST_ENTRY Options, IN CONST PWCHAR OptionName, IN CONST PWCHAR OptionValue); typedef VOID (*PBL_CONSOLE_CLEAR_SCREEN)(); typedef VOID (*PBL_CONSOLE_DISABLE_CURSOR)(); typedef VOID (*PBL_CONSOLE_ENABLE_CURSOR)(); @@ -362,7 +365,10 @@ typedef struct _XTBL_LOADER_PROTOCOL struct { PBL_CONFIG_GET_BOOLEAN_VALUE GetBooleanValue; + PBL_CONFIG_GET_BOOT_OPTION_VALUE GetBootOptionValue; + PBL_CONFIG_GET_EDITABLE_OPTIONS GetEditableOptions; PBL_CONFIG_GET_VALUE GetValue; + PBL_CONFIG_SET_BOOT_OPTION_VALUE SetBootOptionValue; } Config; struct { diff --git a/xtldr/protocol.c b/xtldr/protocol.c index 741518e..5988b9f 100644 --- a/xtldr/protocol.c +++ b/xtldr/protocol.c @@ -870,7 +870,10 @@ BlpInstallXtLoaderProtocol() BlpLdrProtocol.Boot.RegisterProtocol = BlRegisterBootProtocol; BlpLdrProtocol.BootUtil.GetBooleanParameter = BlGetBooleanParameter; BlpLdrProtocol.Config.GetBooleanValue = BlGetConfigBooleanValue; + BlpLdrProtocol.Config.GetBootOptionValue = BlGetBootOptionValue; + BlpLdrProtocol.Config.GetEditableOptions = BlGetEditableOptions; BlpLdrProtocol.Config.GetValue = BlGetConfigValue; + BlpLdrProtocol.Config.SetBootOptionValue = BlSetBootOptionValue; BlpLdrProtocol.Console.ClearLine = BlClearConsoleLine; BlpLdrProtocol.Console.ClearScreen = BlClearConsoleScreen; BlpLdrProtocol.Console.DisableCursor = BlDisableConsoleCursor;