mirror of https://github.com/acidanthera/audk.git
Add new “Modal form” opcode.
Signed-off-by: ydong10 Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11766 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
dfc66bb938
commit
5b127d7565
|
@ -681,6 +681,7 @@ typedef union {
|
|||
#define EFI_IFR_CATENATE_OP 0x5E
|
||||
#define EFI_IFR_GUID_OP 0x5F
|
||||
#define EFI_IFR_SECURITY_OP 0x60
|
||||
#define EFI_IFR_MODAL_TAG_OP 0x61
|
||||
|
||||
|
||||
typedef struct _EFI_IFR_OP_HEADER {
|
||||
|
@ -771,6 +772,10 @@ typedef struct _EFI_IFR_IMAGE {
|
|||
EFI_IMAGE_ID Id;
|
||||
} EFI_IFR_IMAGE;
|
||||
|
||||
typedef struct _EFI_IFR_MODAL {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_MODAL;
|
||||
|
||||
typedef struct _EFI_IFR_LOCKED {
|
||||
EFI_IFR_OP_HEADER Header;
|
||||
} EFI_IFR_LOCKED;
|
||||
|
|
|
@ -1305,6 +1305,7 @@ static struct {
|
|||
{ sizeof (EFI_IFR_CATENATE), 0 }, // EFI_IFR_CATENATE_OP
|
||||
{ sizeof (EFI_IFR_GUID), 0 }, // EFI_IFR_GUID_OP
|
||||
{ sizeof (EFI_IFR_SECURITY), 0 }, // EFI_IFR_SECURITY_OP - 0x60
|
||||
{ sizeof (EFI_IFR_MODAL), 0}, // EFI_IFR_MODAL_OP - 0x61
|
||||
};
|
||||
|
||||
#ifdef CIFROBJ_DEUBG
|
||||
|
@ -1327,7 +1328,7 @@ static struct {
|
|||
"EFI_IFR_STRING_REF1","EFI_IFR_STRING_REF2", "EFI_IFR_CONDITIONAL", "EFI_IFR_QUESTION_REF3", "EFI_IFR_ZERO", "EFI_IFR_ONE",
|
||||
"EFI_IFR_ONES", "EFI_IFR_UNDEFINED", "EFI_IFR_LENGTH", "EFI_IFR_DUP", "EFI_IFR_THIS", "EFI_IFR_SPAN",
|
||||
"EFI_IFR_VALUE", "EFI_IFR_DEFAULT", "EFI_IFR_DEFAULTSTORE", "EFI_IFR_FORM_MAP", "EFI_IFR_CATENATE", "EFI_IFR_GUID",
|
||||
"EFI_IFR_SECURITY",
|
||||
"EFI_IFR_SECURITY", "EFI_IFR_MODAL",
|
||||
};
|
||||
|
||||
VOID
|
||||
|
|
|
@ -809,6 +809,16 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
class CIfrModal : public CIfrObj, public CIfrOpHeader {
|
||||
private:
|
||||
EFI_IFR_MODAL *mModal;
|
||||
|
||||
public:
|
||||
CIfrModal () : CIfrObj (EFI_IFR_MODAL_TAG_OP, (CHAR8 **)&mModal),
|
||||
CIfrOpHeader (EFI_IFR_MODAL_TAG_OP, &mModal->Header) {
|
||||
}
|
||||
};
|
||||
|
||||
class CIfrLocked : public CIfrObj, public CIfrOpHeader {
|
||||
private:
|
||||
EFI_IFR_LOCKED *mLocked;
|
||||
|
|
|
@ -237,6 +237,7 @@ VfrParserStart (
|
|||
#token EndGuidOp("endguidop") "endguidop"
|
||||
#token DataType("datatype") "datatype"
|
||||
#token Data("data") "data"
|
||||
#token Modal("modal") "modal"
|
||||
|
||||
//
|
||||
// Define the class and subclass tokens
|
||||
|
@ -1251,7 +1252,8 @@ vfrFormDefinition :
|
|||
vfrStatementBanner |
|
||||
// Just for framework vfr compatibility
|
||||
vfrStatementInvalid |
|
||||
vfrStatementExtension
|
||||
vfrStatementExtension |
|
||||
vfrStatementModal
|
||||
)*
|
||||
E:EndForm <<
|
||||
if (mCompatibleMode) {
|
||||
|
@ -1310,7 +1312,8 @@ vfrFormMapDefinition :
|
|||
vfrStatementConditional |
|
||||
vfrStatementLabel |
|
||||
vfrStatementBanner |
|
||||
vfrStatementExtension
|
||||
vfrStatementExtension |
|
||||
vfrStatementModal
|
||||
)*
|
||||
E:EndForm << CRT_END_OP (E); >>
|
||||
";"
|
||||
|
@ -2490,6 +2493,11 @@ vfrLockedTag :
|
|||
L:Locked << LObj.SetLineNo(L->getLine()); >>
|
||||
;
|
||||
|
||||
vfrModalTag :
|
||||
<< CIfrModal MObj; >>
|
||||
L:Modal << MObj.SetLineNo(L->getLine()); >>
|
||||
;
|
||||
|
||||
vfrStatementStatTag :
|
||||
vfrImageTag |
|
||||
vfrLockedTag
|
||||
|
@ -2504,6 +2512,11 @@ vfrStatementImage :
|
|||
";"
|
||||
;
|
||||
|
||||
vfrStatementModal :
|
||||
vfrModalTag
|
||||
";"
|
||||
;
|
||||
|
||||
vfrStatementLocked :
|
||||
vfrLockedTag
|
||||
";"
|
||||
|
|
Loading…
Reference in New Issue