From 366430c71558f24400bfdcd6258079d8640175ac Mon Sep 17 00:00:00 2001 From: Eric Dong Date: Wed, 27 May 2015 02:25:48 +0000 Subject: [PATCH] BaseTools: Add reconnect request flag for question. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17514 6f19259b-4bc3-4df7-8a09-765794883524 --- .../C/Include/Common/UefiInternalFormRepresentation.h | 11 ++++++----- BaseTools/Source/C/VfrCompile/VfrFormPkg.h | 6 +++++- BaseTools/Source/C/VfrCompile/VfrSyntax.g | 4 ++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h index d17b633c2e..8c2edf20f3 100644 --- a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h +++ b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h @@ -6,7 +6,7 @@ @par Revision Reference: These definitions are from UEFI2.1. - Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2015, 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 which accompanies this @@ -715,10 +715,11 @@ typedef struct _EFI_IFR_QUESTION_HEADER { 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; diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h index d2ff72c155..84300a7584 100644 --- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h +++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h @@ -422,7 +422,11 @@ public: 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 diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g index 17a62b409a..fba8967fd2 100644 --- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g +++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g @@ -191,6 +191,7 @@ VfrParserStart ( #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" @@ -1186,6 +1187,7 @@ questionheaderFlagsField[UINT8 & Flags] : ReadOnlyFlag << $Flags |= 0x01; >> | InteractiveFlag << $Flags |= 0x04; >> | ResetRequiredFlag << $Flags |= 0x10; >> + | ReconnectRequiredFlag << $Flags |= 0x40; >> | O:OptionOnlyFlag << if (mCompatibleMode) { $Flags |= 0x80; @@ -1842,6 +1844,7 @@ flagsField : | ManufacturingFlag | DefaultFlag | ResetRequiredFlag + | ReconnectRequiredFlag | N:NVAccessFlag << if (!mCompatibleMode) { gCVfrErrorHandle.HandleWarning ( @@ -3501,6 +3504,7 @@ oneofoptionFlagsField [UINT8 & HFlags, UINT8 & LFlags] : | "OPTION_DEFAULT_MFG" << $LFlags |= 0x20; >> | InteractiveFlag << $HFlags |= 0x04; >> | ResetRequiredFlag << $HFlags |= 0x10; >> + | ReconnectRequiredFlag << $HFlags |= 0x40; >> | ManufacturingFlag << $LFlags |= 0x20; >> | DefaultFlag << $LFlags |= 0x10; >> | A:NVAccessFlag <<