From: <yd...@us...> - 2014-07-16 01:36:13
|
Revision: 2673 http://sourceforge.net/p/edk2-buildtools/code/2673 Author: ydong10 Date: 2014-07-16 01:36:10 +0000 (Wed, 16 Jul 2014) Log Message: ----------- Report warning info if vfr file use the flags used for framework code only. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eri...@in...> Reviewed-by: Liming Gao <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp trunk/BaseTools/Source/C/VfrCompile/VfrError.h trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g Modified: trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp 2014-07-14 03:02:20 UTC (rev 2672) +++ trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp 2014-07-16 01:36:10 UTC (rev 2673) @@ -53,6 +53,7 @@ { VFR_WARNING_DEFAULT_VALUE_REDEFINED, ": default value re-defined with different value"}, { VFR_WARNING_STRING_TO_UINT_OVERFLOW, ": String to UINT* Overflow"}, { VFR_WARNING_ACTION_WITH_TEXT_TWO, ": Action opcode should not have TextTwo part"}, + { VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, ": Not recommend to use obsoleted framework opcode"}, { VFR_WARNING_CODEUNDEFINED, ": undefined Warning Code" } }; Modified: trunk/BaseTools/Source/C/VfrCompile/VfrError.h =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrError.h 2014-07-14 03:02:20 UTC (rev 2672) +++ trunk/BaseTools/Source/C/VfrCompile/VfrError.h 2014-07-16 01:36:10 UTC (rev 2673) @@ -51,6 +51,7 @@ VFR_WARNING_DEFAULT_VALUE_REDEFINED = 0, VFR_WARNING_STRING_TO_UINT_OVERFLOW, VFR_WARNING_ACTION_WITH_TEXT_TWO, + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, VFR_WARNING_CODEUNDEFINED } EFI_VFR_WARNING_CODE; Modified: trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-07-14 03:02:20 UTC (rev 2672) +++ trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-07-16 01:36:10 UTC (rev 2673) @@ -1184,9 +1184,35 @@ ReadOnlyFlag << $Flags |= 0x01; >> | InteractiveFlag << $Flags |= 0x04; >> | ResetRequiredFlag << $Flags |= 0x10; >> - | OptionOnlyFlag << $Flags |= 0x80; >> - | NVAccessFlag - | LateCheckFlag + | O:OptionOnlyFlag << + if (mCompatibleMode) { + $Flags |= 0x80; + } else { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + O->getLine(), + O->getText() + ); + } + >> + | N:NVAccessFlag << + if (!mCompatibleMode) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + N->getLine(), + N->getText() + ); + } + >> + | L:LateCheckFlag << + if (!mCompatibleMode) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + L->getLine(), + L->getText() + ); + } + >> ; vfrStorageVarId[EFI_VARSTORE_INFO & Info, CHAR8 *&QuestVarIdStr, BOOLEAN CheckFlag = TRUE] : @@ -1617,8 +1643,29 @@ ; flagsField : - Number | InteractiveFlag | ManufacturingFlag | DefaultFlag | - NVAccessFlag | ResetRequiredFlag | LateCheckFlag + Number + | InteractiveFlag + | ManufacturingFlag + | DefaultFlag + | ResetRequiredFlag + | N:NVAccessFlag << + if (!mCompatibleMode) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + N->getLine(), + N->getText() + ); + } + >> + | L:LateCheckFlag << + if (!mCompatibleMode) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + L->getLine(), + L->getText() + ); + } + >> ; vfrStatementValue : @@ -3042,11 +3089,31 @@ | "OPTION_DEFAULT" << $LFlags |= 0x10; >> | "OPTION_DEFAULT_MFG" << $LFlags |= 0x20; >> | InteractiveFlag << $HFlags |= 0x04; >> - | NVAccessFlag << $HFlags |= 0x08; >> | ResetRequiredFlag << $HFlags |= 0x10; >> - | LateCheckFlag << $HFlags |= 0x20; >> | ManufacturingFlag << $LFlags |= 0x20; >> | DefaultFlag << $LFlags |= 0x10; >> + | A:NVAccessFlag << + if (mCompatibleMode) { + $HFlags |= 0x08; + } else { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + A->getLine(), + A->getText() + ); + } + >> + | L:LateCheckFlag << + if (mCompatibleMode) { + $HFlags |= 0x20; + } else { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + L->getLine(), + L->getText() + ); + } + >> ; vfrStatementLabel : This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |