-/*++\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
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
{\r
ClassGuid "=" guidDefinition[ClassGuid1] << ++ClassGuidNum; >>\r
{\r
- "\|" guidDefinition[ClassGuid2] << ++ClassGuidNum; >>\r
- }\r
- {\r
- "\|" guidDefinition[ClassGuid3] << ++ClassGuidNum; >>\r
+ "\|" guidDefinition[ClassGuid2] << ++ClassGuidNum; >>\r
+ {\r
+ "\|" guidDefinition[ClassGuid3] << ++ClassGuidNum; >>\r
+ }\r
}\r
","\r
}\r
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
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
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
// Just for framework vfr compatibility\r
vfrStatementInvalid |\r
vfrStatementExtension |\r
- vfrStatementModal\r
+ vfrStatementModal |\r
+ vfrStatementRefreshEvent ";"\r
)*\r
E:EndForm <<\r
if (mCompatibleMode) {\r
vfrStatementLabel |\r
vfrStatementBanner |\r
vfrStatementExtension |\r
- vfrStatementModal\r
+ vfrStatementModal |\r
+ vfrStatementRefreshEvent ";"\r
)*\r
E:EndForm << CRT_END_OP (E); >>\r
";"\r
;\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
|\r
{ "," vfrStatementStatTagList}\r
{ "," (vfrStatementStat | vfrStatementQuestions)*}\r
- E: EndSubtitle ";" << CRT_END_OP (E); >>\r
+ D: EndSubtitle ";" << CRT_END_OP (D); >>\r
)\r
;\r
\r
}\r
<<\r
if (Flags & EFI_IFR_FLAG_CALLBACK) {\r
+ if (TxtTwo != EFI_STRING_ID_INVALID) {\r
+ gCVfrErrorHandle.HandleWarning (\r
+ VFR_WARNING_ACTION_WITH_TEXT_TWO,\r
+ S3->getLine(),\r
+ S3->getText()\r
+ );\r
+ }\r
CIfrAction AObj;\r
mCVfrQuestionDB.RegisterQuestion (NULL, NULL, QId);\r
AObj.SetLineNo (F->getLine());\r
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
vfrStatementRefresh |\r
vfrStatementVarstoreDevice |\r
vfrStatementExtension |\r
- vfrStatementRefreshEvent |\r
+ vfrStatementRefreshEvent "," |\r
vfrStatementWarningIf\r
;\r
\r
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
| "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