Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <[email protected]>
---
.../Source/C/Include/Common/UefiInternalFormRepresentation.h | 9 +++++----
BaseTools/Source/C/VfrCompile/VfrFormPkg.h | 6 +++++-
BaseTools/Source/C/VfrCompile/VfrSyntax.g | 4 ++++
3 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h
b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h
index d17b633..b8ce637 100644
--- a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h
+++ b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h
@@ -713,14 +713,15 @@ typedef struct _EFI_IFR_QUESTION_HEADER {
UINT16 VarOffset;
} VarStoreInfo;
UINT8 Flags;
} EFI_IFR_QUESTION_HEADER;
-#define EFI_IFR_FLAG_READ_ONLY 0x01
-#define EFI_IFR_FLAG_CALLBACK 0x04
-#define EFI_IFR_FLAG_RESET_REQUIRED 0x10
-#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80
+#define EFI_IFR_FLAG_READ_ONLY 0x01
+#define EFI_IFR_FLAG_CALLBACK 0x04
+#define EFI_IFR_FLAG_RESET_REQUIRED 0x10
+#define EFI_IFR_FLAG_RECONNECT_REQUIRED 0x40
+#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80
typedef struct _EFI_IFR_DEFAULTSTORE {
EFI_IFR_OP_HEADER Header;
EFI_STRING_ID DefaultName;
UINT16 DefaultId;
diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
index d2ff72c..84300a7 100644
--- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
+++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
@@ -420,11 +420,15 @@ public:
_FLAG_CLEAR (Flags, 0x08);
if (_FLAG_TEST_AND_CLEAR (Flags, EFI_IFR_FLAG_RESET_REQUIRED)) {
mHeader->Flags |= EFI_IFR_FLAG_RESET_REQUIRED;
}
-
+
+ if (_FLAG_TEST_AND_CLEAR (Flags, EFI_IFR_FLAG_RECONNECT_REQUIRED)) {
+ mHeader->Flags |= EFI_IFR_FLAG_RECONNECT_REQUIRED;
+ }
+
//
// Set LateCheck Flag to compatible for framework flag
// but it uses 0x20 as its flag, if in the future UEFI may take this flag
//
if (_FLAG_TEST_AND_CLEAR (Flags, 0x20)) {
diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g
b/BaseTools/Source/C/VfrCompile/VfrSyntax.g
index 17a62b4..fba8967 100644
--- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g
+++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g
@@ -189,10 +189,11 @@ VfrParserStart (
#token DefaultFlag("DEFAULT") "DEFAULT"
#token ManufacturingFlag("MANUFACTURING") "MANUFACTURING"
#token InteractiveFlag("INTERACTIVE") "INTERACTIVE"
#token NVAccessFlag("NV_ACCESS") "NV_ACCESS"
#token ResetRequiredFlag("RESET_REQUIRED") "RESET_REQUIRED"
+#token ReconnectRequiredFlag("RECONNECT_REQUIRED") "RECONNECT_REQUIRED"
#token LateCheckFlag("LATE_CHECK") "LATE_CHECK"
#token ReadOnlyFlag("READ_ONLY") "READ_ONLY"
#token OptionOnlyFlag("OPTIONS_ONLY") "OPTIONS_ONLY"
#token Class("class") "class"
#token Subclass("subclass") "subclass"
@@ -1184,10 +1185,11 @@ vfrQuestionHeader[CIfrQuestionHeader & QHObj,
EFI_QUESION_TYPE QType = QUESTION_
questionheaderFlagsField[UINT8 & Flags] :
ReadOnlyFlag << $Flags |= 0x01; >>
| InteractiveFlag << $Flags |= 0x04; >>
| ResetRequiredFlag << $Flags |= 0x10; >>
+ | ReconnectRequiredFlag << $Flags |= 0x40; >>
| O:OptionOnlyFlag <<
if (mCompatibleMode) {
$Flags |= 0x80;
} else {
gCVfrErrorHandle.HandleWarning (
@@ -1840,10 +1842,11 @@ flagsField :
Number
| InteractiveFlag
| ManufacturingFlag
| DefaultFlag
| ResetRequiredFlag
+ | ReconnectRequiredFlag
| N:NVAccessFlag <<
if
(!mCompatibleMode) {
gCVfrErrorHandle.HandleWarning (
VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,
N->getLine(),
@@ -3499,10 +3502,11 @@ oneofoptionFlagsField [UINT8 & HFlags, UINT8 & LFlags] :
N:Number << $LFlags |=
_STOU8(N->getText(), N->getLine()); >>
| "OPTION_DEFAULT" << $LFlags |= 0x10; >>
| "OPTION_DEFAULT_MFG" << $LFlags |= 0x20; >>
| InteractiveFlag << $HFlags |= 0x04; >>
| ResetRequiredFlag << $HFlags |= 0x10; >>
+ | ReconnectRequiredFlag << $HFlags |= 0x40; >>
| ManufacturingFlag << $LFlags |= 0x20; >>
| DefaultFlag << $LFlags |= 0x10; >>
| A:NVAccessFlag <<
if (mCompatibleMode)
{
$HFlags |= 0x08;
--
1.9.5.msysgit.1
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel