]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/VfrCompile/VfrSyntax.g
Report warning info if vfr file use the flags used for framework code only.
[mirror_edk2.git] / BaseTools / Source / C / VfrCompile / VfrSyntax.g
index 4c42aa85c80271b5ab224f5ad7b20ef534af44ed..9688aad924052fb235da96961e35bedd021ba332 100644 (file)
@@ -1184,9 +1184,35 @@ questionheaderFlagsField[UINT8 & Flags] :
     ReadOnlyFlag                                    << $Flags |= 0x01; >>\r
   | InteractiveFlag                                 << $Flags |= 0x04; >>\r
   | ResetRequiredFlag                               << $Flags |= 0x10; >>\r
-  | OptionOnlyFlag                                  << $Flags |= 0x80; >>\r
-  | NVAccessFlag\r
-  | LateCheckFlag\r
+  | O:OptionOnlyFlag                                << \r
+                                                       if (mCompatibleMode) {\r
+                                                         $Flags |= 0x80;\r
+                                                       } else {\r
+                                                         gCVfrErrorHandle.HandleWarning (\r
+                                                            VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
+                                                            O->getLine(),\r
+                                                            O->getText()\r
+                                                            );\r
+                                                       }\r
+                                                    >>\r
+  | N:NVAccessFlag                                  << \r
+                                                       if (!mCompatibleMode) {\r
+                                                          gCVfrErrorHandle.HandleWarning (\r
+                                                            VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
+                                                            N->getLine(),\r
+                                                            N->getText()\r
+                                                            );\r
+                                                       }\r
+                                                    >>\r
+  | L:LateCheckFlag                                 << \r
+                                                       if (!mCompatibleMode) {\r
+                                                          gCVfrErrorHandle.HandleWarning (\r
+                                                            VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
+                                                            L->getLine(),\r
+                                                            L->getText()\r
+                                                            );\r
+                                                       }\r
+                                                    >>\r
   ;\r
 \r
 vfrStorageVarId[EFI_VARSTORE_INFO & Info, CHAR8 *&QuestVarIdStr, BOOLEAN CheckFlag = TRUE] :\r
@@ -1617,8 +1643,29 @@ vfrStatementInvalid :
   ;\r
 \r
 flagsField :\r
-  Number | InteractiveFlag | ManufacturingFlag | DefaultFlag |\r
-  NVAccessFlag | ResetRequiredFlag | LateCheckFlag\r
+  Number \r
+  | InteractiveFlag \r
+  | ManufacturingFlag \r
+  | DefaultFlag \r
+  | ResetRequiredFlag \r
+  | N:NVAccessFlag                                     << \r
+                                                          if (!mCompatibleMode) {\r
+                                                            gCVfrErrorHandle.HandleWarning (\r
+                                                              VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
+                                                              N->getLine(),\r
+                                                              N->getText()\r
+                                                              );\r
+                                                          }\r
+                                                       >>\r
+  | L:LateCheckFlag                                    << \r
+                                                          if (!mCompatibleMode) {\r
+                                                            gCVfrErrorHandle.HandleWarning (\r
+                                                              VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
+                                                              L->getLine(),\r
+                                                              L->getText()\r
+                                                              );\r
+                                                          }\r
+                                                       >> \r
   ;\r
 \r
 vfrStatementValue :\r
@@ -3042,11 +3089,31 @@ oneofoptionFlagsField [UINT8 & HFlags, UINT8 & LFlags] :
   | "OPTION_DEFAULT"                                   << $LFlags |= 0x10; >>\r
   | "OPTION_DEFAULT_MFG"                               << $LFlags |= 0x20; >>\r
   | InteractiveFlag                                    << $HFlags |= 0x04; >>\r
-  | NVAccessFlag                                       << $HFlags |= 0x08; >>\r
   | ResetRequiredFlag                                  << $HFlags |= 0x10; >>\r
-  | LateCheckFlag                                      << $HFlags |= 0x20; >>\r
   | ManufacturingFlag                                  << $LFlags |= 0x20; >>\r
   | DefaultFlag                                        << $LFlags |= 0x10; >>\r
+  | A:NVAccessFlag                                     << \r
+                                                          if (mCompatibleMode) {\r
+                                                            $HFlags |= 0x08;\r
+                                                          } else {\r
+                                                            gCVfrErrorHandle.HandleWarning (\r
+                                                              VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
+                                                              A->getLine(),\r
+                                                              A->getText()\r
+                                                              );\r
+                                                          }\r
+                                                       >>\r
+  | L:LateCheckFlag                                    << \r
+                                                          if (mCompatibleMode) {\r
+                                                            $HFlags |= 0x20;\r
+                                                          } else {\r
+                                                            gCVfrErrorHandle.HandleWarning (\r
+                                                              VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
+                                                              L->getLine(),\r
+                                                              L->getText()\r
+                                                              );\r
+                                                          }\r
+                                                       >>\r
   ;\r
 \r
 vfrStatementLabel :\r