|
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.
|