]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/VfrCompile/VfrSyntax.g
MdeModluePkg: Enable refresh opcode to refresh the entire form.
[mirror_edk2.git] / BaseTools / Source / C / VfrCompile / VfrSyntax.g
index 9688aad924052fb235da96961e35bedd021ba332..8e9f32b81598047386ecca16a348d6c39cc6f7fa 100644 (file)
@@ -1,4 +1,6 @@
-/*++\r
+/*++ @file\r
+Vfr Syntax\r
+\r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
@@ -8,11 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-Module Name:\r
-  VfrSyntax.g\r
-\r
-Abstract:\r
-\r
 --*/\r
 \r
 #header<<\r
@@ -920,10 +917,11 @@ vfrStatementVarStoreEfi :
      CHAR8           *TypeName;\r
      UINT32          LineNum;\r
      CHAR8           *StoreName = NULL;\r
+     BOOLEAN         CustomizedName = FALSE;\r
   >>\r
   E:Efivarstore                                     << VSEObj.SetLineNo(E->getLine()); >>\r
   (\r
-      TN:StringIdentifier ","                       << TypeName = TN->getText(); LineNum = TN->getLine(); >>\r
+      TN:StringIdentifier ","                       << TypeName = TN->getText(); LineNum = TN->getLine(); CustomizedName = TRUE; >>\r
     | U8:"UINT8" ","                                << TypeName = U8->getText(); LineNum = U8->getLine(); >>\r
     | U16:"UINT16" ","                              << TypeName = U16->getText(); LineNum = U16->getLine(); >>\r
     | C16:"CHAR16" ","                              << TypeName = (CHAR8 *) "UINT16"; LineNum = C16->getLine(); >>\r
@@ -956,6 +954,10 @@ vfrStatementVarStoreEfi :
                                                        if (StoreName == NULL) {\r
                                                          _PCATCH (VFR_RETURN_UNSUPPORTED, VN->getLine(), "Can't get varstore name for this StringId!");\r
                                                        }\r
+                                                       if (!CustomizedName) {\r
+                                                         _PCATCH (VFR_RETURN_UNSUPPORTED, E->getLine(), "Old style efivarstore must have String Identifier!");\r
+                                                         return;\r
+                                                       }\r
                                                        Size = _STOU32(N->getText(), N->getLine());\r
                                                        switch (Size) {\r
                                                        case 1:\r
@@ -1456,7 +1458,8 @@ vfrFormDefinition :
     // Just for framework vfr compatibility\r
     vfrStatementInvalid                      |\r
     vfrStatementExtension                    |\r
-    vfrStatementModal\r
+    vfrStatementModal                        |\r
+    vfrStatementRefreshEvent ";"\r
   )*\r
   E:EndForm                                         <<\r
                                                       if (mCompatibleMode) {\r
@@ -1502,7 +1505,8 @@ vfrFormMapDefinition :
     vfrStatementLabel                        |\r
     vfrStatementBanner                       |\r
     vfrStatementExtension                    |\r
-    vfrStatementModal\r
+    vfrStatementModal                        |\r
+    vfrStatementRefreshEvent ";"\r
   )*\r
   E:EndForm                                         << CRT_END_OP (E); >>\r
   ";"\r
@@ -2577,7 +2581,7 @@ vfrStatementOrderedList :
                                                           OLObj.SetMaxContainers (_STOU8(M->getText(), M->getLine()));\r
                                                        >>\r
   }\r
-  { F:FLAGS "=" vfrOrderedListFlags[OLObj, F->getLine()] }\r
+  { F:FLAGS "=" vfrOrderedListFlags[OLObj, F->getLine()] {","}}\r
   vfrStatementQuestionOptionList\r
   E:EndList                                            << CRT_END_OP (E); >>\r
   ";"\r
@@ -2708,7 +2712,7 @@ vfrStatementQuestionTag :
   vfrStatementRefresh           |\r
   vfrStatementVarstoreDevice    |\r
   vfrStatementExtension         |\r
-  vfrStatementRefreshEvent      |\r
+  vfrStatementRefreshEvent ","  |\r
   vfrStatementWarningIf\r
   ;\r
 \r
@@ -2938,7 +2942,7 @@ vfrStatementRefreshEvent :
     EFI_GUID      Guid;\r
   >>\r
   L:RefreshGuid                                        << RiObj.SetLineNo(L->getLine()); >>\r
-  "="  guidDefinition[Guid] ","                        << RiObj.SetRefreshEventGroutId (&Guid);  >>\r
+  "="  guidDefinition[Guid]                            << RiObj.SetRefreshEventGroutId (&Guid);  >>\r
   ;\r
 \r
 vfrStatementVarstoreDevice :\r