#define EFI_IFR_CATENATE_OP 0x5E\r
#define EFI_IFR_GUID_OP 0x5F\r
#define EFI_IFR_SECURITY_OP 0x60\r
+#define EFI_IFR_MODAL_TAG_OP 0x61\r
\r
\r
typedef struct _EFI_IFR_OP_HEADER {\r
EFI_IMAGE_ID Id;\r
} EFI_IFR_IMAGE;\r
\r
+typedef struct _EFI_IFR_MODAL {\r
+ EFI_IFR_OP_HEADER Header;\r
+} EFI_IFR_MODAL;\r
+\r
typedef struct _EFI_IFR_LOCKED {\r
EFI_IFR_OP_HEADER Header;\r
} EFI_IFR_LOCKED;\r
{ sizeof (EFI_IFR_CATENATE), 0 }, // EFI_IFR_CATENATE_OP\r
{ sizeof (EFI_IFR_GUID), 0 }, // EFI_IFR_GUID_OP\r
{ sizeof (EFI_IFR_SECURITY), 0 }, // EFI_IFR_SECURITY_OP - 0x60\r
+ { sizeof (EFI_IFR_MODAL), 0}, // EFI_IFR_MODAL_OP - 0x61\r
};\r
\r
#ifdef CIFROBJ_DEUBG\r
"EFI_IFR_STRING_REF1","EFI_IFR_STRING_REF2", "EFI_IFR_CONDITIONAL", "EFI_IFR_QUESTION_REF3", "EFI_IFR_ZERO", "EFI_IFR_ONE",\r
"EFI_IFR_ONES", "EFI_IFR_UNDEFINED", "EFI_IFR_LENGTH", "EFI_IFR_DUP", "EFI_IFR_THIS", "EFI_IFR_SPAN",\r
"EFI_IFR_VALUE", "EFI_IFR_DEFAULT", "EFI_IFR_DEFAULTSTORE", "EFI_IFR_FORM_MAP", "EFI_IFR_CATENATE", "EFI_IFR_GUID",\r
- "EFI_IFR_SECURITY",\r
+ "EFI_IFR_SECURITY", "EFI_IFR_MODAL",\r
};\r
\r
VOID\r
}\r
};\r
\r
+class CIfrModal : public CIfrObj, public CIfrOpHeader {\r
+private:\r
+ EFI_IFR_MODAL *mModal;\r
+\r
+public:\r
+ CIfrModal () : CIfrObj (EFI_IFR_MODAL_TAG_OP, (CHAR8 **)&mModal),\r
+ CIfrOpHeader (EFI_IFR_MODAL_TAG_OP, &mModal->Header) {\r
+ }\r
+};\r
+\r
class CIfrLocked : public CIfrObj, public CIfrOpHeader {\r
private:\r
EFI_IFR_LOCKED *mLocked;\r
#token EndGuidOp("endguidop") "endguidop"\r
#token DataType("datatype") "datatype"\r
#token Data("data") "data"\r
+#token Modal("modal") "modal"\r
\r
//\r
// Define the class and subclass tokens\r
vfrStatementBanner |\r
// Just for framework vfr compatibility\r
vfrStatementInvalid |\r
- vfrStatementExtension\r
+ vfrStatementExtension |\r
+ vfrStatementModal\r
)*\r
E:EndForm <<\r
if (mCompatibleMode) {\r
vfrStatementConditional |\r
vfrStatementLabel |\r
vfrStatementBanner |\r
- vfrStatementExtension\r
+ vfrStatementExtension |\r
+ vfrStatementModal\r
)*\r
E:EndForm << CRT_END_OP (E); >>\r
";"\r
L:Locked << LObj.SetLineNo(L->getLine()); >>\r
;\r
\r
+vfrModalTag :\r
+ << CIfrModal MObj; >>\r
+ L:Modal << MObj.SetLineNo(L->getLine()); >>\r
+ ;\r
+\r
vfrStatementStatTag :\r
vfrImageTag |\r
vfrLockedTag\r
";"\r
;\r
\r
+vfrStatementModal :\r
+ vfrModalTag\r
+ ";"\r
+ ;\r
+\r
vfrStatementLocked :\r
vfrLockedTag\r
";"\r