From 01723271a8baef1dc4c92bce0c09d41055cc5eb9 Mon Sep 17 00:00:00 2001 From: Dandan Bi Date: Wed, 20 Sep 2017 19:24:18 +0800 Subject: [PATCH] MdeModulePkg: Add GUID/flags to implement BitField support REF: https://bugzilla.tianocore.org/show_bug.cgi?id=545 Cc: Eric Dong Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Dandan Bi Reviewed-by: Eric Dong Reviewed-by: Liming Gao --- MdeModulePkg/Include/Guid/MdeModuleHii.h | 20 +++++++++++++++++++- MdeModulePkg/MdeModulePkg.dec | 4 ++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Include/Guid/MdeModuleHii.h b/MdeModulePkg/Include/Guid/MdeModuleHii.h index 81821da5a9..e2ebb55ef4 100644 --- a/MdeModulePkg/Include/Guid/MdeModuleHii.h +++ b/MdeModulePkg/Include/Guid/MdeModuleHii.h @@ -1,7 +1,7 @@ /** @file EDKII extented HII IFR guid opcodes. -Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at @@ -211,10 +211,28 @@ typedef struct _EFI_IFR_GUID_VAREQNAME { UINT16 NameId; } EFI_IFR_GUID_VAREQNAME; +/// +/// EDKII implementation extension GUID, used to indaicate there are bit fields in the varstore. +/// +#define EDKII_IFR_BIT_VARSTORE_GUID \ + {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}} + +/// +/// EDKII implementation extension flags, used to indaicate the disply style and bit width for bit filed storage. +/// Two high bits for display style and the low six bits for bit width. +/// +#define EDKII_IFR_DISPLAY_BIT 0xC0 +#define EDKII_IFR_DISPLAY_INT_DEC_BIT 0x00 +#define EDKII_IFR_DISPLAY_UINT_DEC_BIT 0x40 +#define EDKII_IFR_DISPLAY_UINT_HEX_BIT 0x80 + +#define EDKII_IFR_NUMERIC_SIZE_BIT 0x3F + #pragma pack() extern EFI_GUID gEfiIfrTianoGuid; extern EFI_GUID gEfiIfrFrameworkGuid; +extern EFI_GUID gEdkiiIfrBitVarstoreGuid; #endif diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 403a66a5ad..a3c0633ee1 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -184,6 +184,10 @@ # Include/Guid/MdeModuleHii.h gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }} + ## Guid for EDKII implementation extension, used to indaicate there are bit fields in the varstore. + # Include/Guid/MdeModuleHii.h + gEdkiiIfrBitVarstoreGuid = {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}} + ## Guid for Framework vfr GUIDed opcodes. # Include/Guid/MdeModuleHii.h gEfiIfrFrameworkGuid = { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 }}