From 0ba0723c769f95d312835967c47e34e444fea368 Mon Sep 17 00:00:00 2001 From: kavsrf Date: Tue, 13 Jun 2017 17:19:47 +0300 Subject: solution of HP problem via DrverOrder and BML modified driver --- Include/Library/CommonLib.h | 25 ++++++++++++++++++++- Include/Protocol/DcsBmlProto.h | 51 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 Include/Protocol/DcsBmlProto.h (limited to 'Include') diff --git a/Include/Library/CommonLib.h b/Include/Library/CommonLib.h index 2b46632..d64ae41 100644 --- a/Include/Library/CommonLib.h +++ b/Include/Library/CommonLib.h @@ -15,8 +15,9 @@ https://opensource.org/licenses/LGPL-3.0 #define __COMMONLIB_H__ #include -#include #include +#include +#include #include #include #include @@ -550,6 +551,23 @@ SpeakerSelect( IN UINTN index ); +////////////////////////////////////////////////////////////////////////// +// BML +////////////////////////////////////////////////////////////////////////// +extern EFI_HANDLE* gBmlHandles; +extern UINTN gBmlCount; +extern EFI_DCSBML_PROTOCOL* gBml; +extern EFI_GUID gBmlGuid; + +EFI_STATUS +InitBml(); + +EFI_STATUS +BmlLock( + IN BOOLEAN lock + ); + + ////////////////////////////////////////////////////////////////////////// // Efi variables ////////////////////////////////////////////////////////////////////////// @@ -588,6 +606,11 @@ BootOrderRemove( UINT16 value ); +EFI_STATUS +BootOrderPresent( + IN CHAR16 *OrderVarName, + UINT16 value); + EFI_STATUS BootMenuItemCreate( IN CHAR16 *VarName, diff --git a/Include/Protocol/DcsBmlProto.h b/Include/Protocol/DcsBmlProto.h new file mode 100644 index 0000000..9fafa97 --- /dev/null +++ b/Include/Protocol/DcsBmlProto.h @@ -0,0 +1,51 @@ +/** @file +This is DCS boot menu lock protocol + +Copyright (c) 2016. Disk Cryptography Services for EFI (DCS), Alex Kolotnikov + +This program and the accompanying materials +are licensed and made available under the terms and conditions +of the GNU Lesser General Public License, version 3.0 (LGPL-3.0). + +The full text of the license may be found at +https://opensource.org/licenses/LGPL-3.0 +**/ + +#ifndef _EFI_DCSBMLPROTO_H +#define _EFI_DCSBMLPROTO_H + +#include +#include +#include + +// +// Global Id for DcsBml Interface +// {7FB6D090-8755-43FC-84B5-6E297F9EC1CD} +// +#define EFI_DCSBML_INTERFACE_PROTOCOL_GUID \ + { \ + 0x7fb6d090, 0x8755, 0x43fc, 0x84, 0xb5, 0x6e, 0x29, 0x7f, 0x9e, 0xc1, 0xcd \ + } + +typedef struct _EFI_DCSBML_PROTOCOL EFI_DCSBML_PROTOCOL; + +// +// Lock boot menu +// +typedef +EFI_STATUS +(EFIAPI *EFI_BOOT_MENU_LOCK) ( + IN EFI_DCSBML_PROTOCOL *This, + IN BOOLEAN Lock + ); + + +// +// Protocol definition +// +struct _EFI_DCSBML_PROTOCOL { + EFI_BOOT_MENU_LOCK BootMenuLock; +} ; + +extern EFI_GUID gEfiDcsBmlProtocolGuid; +#endif -- cgit v1.2.3