From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 893CF9413E3 for ; Fri, 8 Mar 2024 10:00:57 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=oALo/U6Ek+KUPm24c8Rvq/l/lbb3+6dTWTWhoBZUCKo=; c=relaxed/simple; d=groups.io; h=From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20240206; t=1709892056; v=1; b=H/Rk1vRxGGs6IcgscK/wTP+nqeZu7YkGDdgOdADNjxfFi9F16yhv5MjLL5LluqJFkPOBcJNE fY9/VFGQ0E4Jd6RlEdM9HAp1mipFm6n29Ns2qqn7ofS+6sSRfZQ/1on3delIo754Q8YoRUkmXAY NslSyiKfXMAwdYiWG4E1HPorjp2SW710TFVL+dxtYJCxG0UZpGtuJYLh8a+mOXvf1nzilxBcuFU IuZf4ve7O8mmKx6YpYhUacpl7lhk3urkFJ9oHFjpchbDrOC2RwksEJTZxxce64TH/zRIFjPXjfM KUXTJJYyfFqpyJnr89f7mnvte8EzF5RoAHVU/6SzXoKcw== X-Received: by 127.0.0.2 with SMTP id PpClYY7687511x0aDZJ6WijY; Fri, 08 Mar 2024 02:00:56 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) by mx.groups.io with SMTP id smtpd.web10.17564.1709794436693747573 for ; Wed, 06 Mar 2024 22:53:56 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,11005"; a="4305699" X-IronPort-AV: E=Sophos;i="6.06,210,1705392000"; d="scan'208";a="4305699" X-Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Mar 2024 22:53:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,210,1705392000"; d="scan'208";a="9906726" X-Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmviesa009.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 06 Mar 2024 22:53:56 -0800 X-Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 6 Mar 2024 22:53:55 -0800 X-Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 6 Mar 2024 22:53:54 -0800 X-Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Wed, 6 Mar 2024 22:53:54 -0800 X-Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 6 Mar 2024 22:53:54 -0800 X-Received: from SN6PR11MB2815.namprd11.prod.outlook.com (2603:10b6:805:62::13) by SA3PR11MB7527.namprd11.prod.outlook.com (2603:10b6:806:314::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.8; Thu, 7 Mar 2024 06:53:51 +0000 X-Received: from SN6PR11MB2815.namprd11.prod.outlook.com ([fe80::ad4f:d303:2f5e:7aeb]) by SN6PR11MB2815.namprd11.prod.outlook.com ([fe80::ad4f:d303:2f5e:7aeb%6]) with mapi id 15.20.7386.006; Thu, 7 Mar 2024 06:53:50 +0000 From: "Zhang, Zifeng" To: "Yang, Yuting2" , "devel@edk2.groups.io" CC: Rebecca Cran , Liming Gao , "Feng, Bob C" , "Chen, Christine" , "Chen, Arthur G" Subject: Re: [edk2-devel] [Patch V3] BaseTools: VfrCompiler Adds DefaultValueError Thread-Topic: [Patch V3] BaseTools: VfrCompiler Adds DefaultValueError Thread-Index: AQHaUALqNo/gnto8+kGgZSwfSXDsNrEsE9hg Date: Fri, 08 Mar 2024 02:00:55 -0800 Message-ID: References: <20240126025341.149-1-yuting2.yang@intel.com> In-Reply-To: <20240126025341.149-1-yuting2.yang@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR11MB2815:EE_|SA3PR11MB7527:EE_ x-ms-office365-filtering-correlation-id: fa04cf24-855f-427c-9bad-08dc3e735836 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: 5zV06zQxsRXA2GJhkGMYA055iFzoWOpQCr4eRNtuuF+a0wFRIPP9VbwQ/XH0Oqm20j33V11BUk6NJ6D5dpLDnzxPQnWcZpHxNW+6gbodx91ZgU+Ln0+X9Dms9LCtV0kei1ggdzaT8XERUsgVj0hZIXogYAtzi7oC8UHzeD18afkD/oS9UnHr0+PeVWQtzasVn4ln6qqUfM+z8EzVlRlVcKVvdBmmKu0G0jOZqJCVivo6uIR9J1SY44/sVGhm2FeRYRTS3lIZmtCM7Po0OXoJyZPKAR6+ribEYOWYWhNGekwDGKuHa9CHt2Z+4tmxHzu6Abw2VyrN+uNIOmcTZ06QMHjOlgPS6CsoKc8bip9N853pmlOXsta3CkBDgS2JpXAVcjt9GP37xZ/eze5J2uUv5Te0AVFkA00sg7WYe+UT6HaySCjfu09LVZXQRC3F25kfAr/4oPFvV9eLV7THsJpCOUrCNEtuc8YL8QNGL5+CKZ/QMDOGRN7xvEe2Q58qsmqpRzriwDKxztoO8j/lm6gVMDgc1iGR7XI3738EldsH+NXPaJxaR4+lq07ErowUSuJIOoGeOnziA+MgO17uFt0ir/77oy1W2BvcKy2dxq1C9WMBtpF8wQYdyMvhcrXTHYu4lerA/vxJsABc0tf6rJWOqVs7S45ArlPuUAVsrq9QpMOfhfJfcXqsxEVOuN15Tf1FtAblWNzCAzW5qJvE4nx3XU3Ukhe9wHe8B2jPR9UGjfQ= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?09oUU4iGPWznT9DXot+iFjtoOcQ2sXB8u9aeyiL4Q6pN9GO9KNxEI+C+Ie9l?= =?us-ascii?Q?Bnej1NBmfIXqHmLRQAwSeZZQBHFBZtrqqXA9nPYuK3V+kCiPSdsLJR/JsEaK?= =?us-ascii?Q?Z3q5itiVgSM3ev56ADWD4XXCuTUCAw5X9sLfoTsXbhBD3CARfUTawA6zlzIb?= =?us-ascii?Q?uCPRVrCiVRa51PWd0NfzOMhja3rnwXiapDLPg1DMCKQRtmX5tzVEZDiMHxrP?= =?us-ascii?Q?RtUFx9sy5rIYx25J/p3Q9FWAluesPIEFsvvEUvgGWz/NabM1NG5iqba7SokA?= =?us-ascii?Q?xLrtgN/v/pEf7jFlsKhwCbCVKXeOPbVcWp9M2FtOo0ufHRzT8MXFtnUDwD90?= =?us-ascii?Q?Fk72C8nY8k4vTDufaBtX5S5OSr5NhzSFIeB33eL+PsY+sUa3xxcugz9PTBFX?= =?us-ascii?Q?rWLZ6/rdfy11vwx86SdFKEmyA8Cwdkj+Fuem2PfMuPU4XH/XmMNRp8B+Q6JR?= =?us-ascii?Q?Rf7f8wuErctmQDuaoqA4RFkcmwe4w/Opbfd2BrffvOMTjD93/2jzsurXIDzi?= =?us-ascii?Q?0oSZIfLoTc9M1XPLcZpepF99r3uPeQbCi1aNaTLaRtfNT0o6iPV4Q+Y59Ik6?= =?us-ascii?Q?4N2jtfRdSx4BQC95g0bArEVzEbLJo82Wda8YHdZvSGOZMIL3EtSVD2p7CMc9?= =?us-ascii?Q?Wvra/jHJgsTzG/ubzKTr93ONgcf0pgwKAbHZFVwmbXBDkQzpA2V8Q5SBVORd?= =?us-ascii?Q?j4VZrruMpErDB3RqLMgi/zhrZINmVmGwypVyOXDfIsEitX2ns3FYTRpXnlK0?= =?us-ascii?Q?RtnfsSGuX/s/SmmDSHZ6+8y/D9aywmBe2ZvuAlXnpmg5/0/IlyMkN22AmPa9?= =?us-ascii?Q?S3SwTsmbebsLMhHQF0KtjzWo9RuoHF5lkODEwWtbSxQoKYjunN6kKvVCEStz?= =?us-ascii?Q?7BwYEnWzl2WA+pPiflQ7m4bkQjjfdnauncwLVXqkhEQtumzz7s76VeFWA37P?= =?us-ascii?Q?ujuzAa496OweOY5Nax4mYJEuGV8Hr85EoTs2sUaYcOdrNr7Dp5g6nvqQ2PYM?= =?us-ascii?Q?gUdwMr/1mTg1Ady6Ry+feV9DDti6x0Jd+ePyt3Wu9GUIf/dO6Az1q9zoypVr?= =?us-ascii?Q?Kg+9mCbIfQkeowCIglAVkS2l/Hpx6iQPT2q5EkNzGJ1zlFa3t12XQ51CDZKA?= =?us-ascii?Q?S/2CRQeidaB0aWtzb9kyjK8Z4bv5efL0mqa36ZEcCis/2tUM0KjdTdphCErD?= =?us-ascii?Q?YTRClebX9RKXodK2pLPwbeGYLo+ZMYAhwKxmFPskLPOUkisarKJ65awBCg7D?= =?us-ascii?Q?FeCbBiSLJrXjO2tDYz90iIhWeb1EgG/aKLWJYy+v9Nb9P591UZ7lTwYv8fbf?= =?us-ascii?Q?mEe1K0lF1McXhM29alkmE5ofIVFZ29SLegLyUar3V4hS0WcL2eEDUMkV44ic?= =?us-ascii?Q?cB3SDVEzshjWAypeTv+Ei6wXSpICPsDvcRlDs/ZsBBx/DW11CZoYMpmzrtze?= =?us-ascii?Q?vqX79W0LNFQnrLcBaFWsb3a3LzDbL/jBDKIw8W8V5GQN8iagoTYrFMHqjOE5?= =?us-ascii?Q?58Yjv7ZTP9LDVvnQh5kiNge8H63pZjpWAHon8dbt3yqwPbHfZUusEik1QrO3?= =?us-ascii?Q?zjX7FKEF3R0YGJLXQvXEEjWnpxhdQcCiS4hCF6Uf?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2815.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa04cf24-855f-427c-9bad-08dc3e735836 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Mar 2024 06:53:50.1644 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pQCEgVSEqfuucgIRIxGVtGpYp3gyv6Ir0/HBj0oKnGlxEPeFnys3pIzzzeBzYK8mUVM3eJde0PxF9kqxFK0LWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR11MB7527 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,zifeng.zhang@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: yuzqH97oas7LuWJ3Nm0wR2U7x7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b="H/Rk1vRx"; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Hi Liming, Could you help to review the patch for VFR compiler change submitted by Yut= ing? Btw,=20 Dell need some introduction of Hii StructurePCD implementation especially f= or replacing patch table configurations. Would you like to share EDK2 wiki link or doc for it? Best Regards, Zifeng -----Original Message----- From: Yang, Yuting2 =20 Sent: Friday, January 26, 2024 10:54 AM To: devel@edk2.groups.io Cc: Rebecca Cran ; Liming Gao = ; Feng, Bob C ; Chen, Christine ; Zhang, Zifeng Subject: [Patch V3] BaseTools: VfrCompiler Adds DefaultValueError Add --catch_default option to raise a DefaultValueError when encountering V= FR default definitions to help remove default variables. Signed-off-by: Yuting Yang Cc: Rebecca Cran Cc: Liming Gao Cc: Bob Feng Cc: Christine Chen Cc: Zifeng Zhang Signed-off-by: Yuting Yang --- BaseTools/Source/C/VfrCompile/VfrCompiler.cpp | 8 +- BaseTools/Source/C/VfrCompile/VfrCompiler.h | 1 + BaseTools/Source/C/VfrCompile/VfrError.cpp | 3 +- BaseTools/Source/C/VfrCompile/VfrError.h | 3 +- BaseTools/Source/C/VfrCompile/VfrFormPkg.h | 1 + BaseTools/Source/C/VfrCompile/VfrSyntax.g | 238 ++++++++++-------- 6 files changed, 150 insertions(+), 104 deletions(-) diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp b/BaseTools/Sour= ce/C/VfrCompile/VfrCompiler.cpp index 5f4d262d85..4031af6e39 100644 --- a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp +++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp @@ -78,6 +78,7 @@ CVfrCompiler::OptionInitialization ( mOptions.WarningAsError =3D FALSE; mOptions.AutoDefault= =3D FALSE; mOptions.CheckDefault =3D = FALSE;+ mOptions.IsCatchDefaultEnable =3D FALSE; memset (&mOpti= ons.OverrideClassGuid, 0, sizeof (EFI_GUID)); if (Argc =3D=3D 1) {@@ -95= ,6 +96,8 @@ CVfrCompiler::OptionInitialization ( Version (); SET_RUN_STATUS (STATUS_DEAD); return;+ } = else if (stricmp(Argv[Index], "--catch_default") =3D=3D 0){+ mOptions.= IsCatchDefaultEnable =3D TRUE; } else if (stricmp(Argv[Index], "-l") = =3D=3D 0) { mOptions.CreateRecordListFile =3D TRUE; gCIfrRecord= InfoDB.TurnOn ();@@ -179,7 +182,6 @@ CVfrCompiler::OptionInitialization ( goto Fail; } strcpy (mOptions.VfrFileName, Argv[Index]);- = if (mOptions.OutputDirectory =3D=3D NULL) { mOptions.OutputDirector= y =3D (CHAR8 *) malloc (1); if (mOptions.OutputDirectory =3D=3D NULL)= {@@ -679,7 +681,7 @@ CVfrCompiler::Compile ( DebugError (NULL, 0, 0001, "Error opening the input file", "%s", InFil= eName); goto Fail; }-+ InputInfo.IsCatchDefaultEnable =3D mOptions.I= sCatchDefaultEnable; if (mOptions.HasOverrideClassGuid) { InputInfo.O= verrideClassGuid =3D &mOptions.OverrideClassGuid; } else {@@ -937,5 +939,= 3 @@ main ( return GetUtilityStatus (); }--diff --git a/BaseTools/Source/C/VfrCompi= le/VfrCompiler.h b/BaseTools/Source/C/VfrCompile/VfrCompiler.h index b6e207d2ce..974f37c4eb 100644 --- a/BaseTools/Source/C/VfrCompile/VfrCompiler.h +++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.h @@ -52,6 +52,7 @@ typedef struct { BOOLEAN WarningAsError; BOOLEAN AutoDefault; BOOLEAN CheckDefault;+ = BOOLEAN IsCatchDefaultEnable; } OPTIONS; typedef enum {diff --git a/BaseT= ools/Source/C/VfrCompile/VfrError.cpp b/BaseTools/Source/C/VfrCompile/VfrEr= ror.cpp index 65bb8e34fd..8a706f929b 100644 --- a/BaseTools/Source/C/VfrCompile/VfrError.cpp +++ b/BaseTools/Source/C/VfrCompile/VfrError.cpp @@ -49,7 +49,8 @@ static SVFR_WARNING_HANDLE VFR_WARNING_HANDLE_TABLE [] = =3D { { VFR_WARNING_DEFAULT_VALUE_REDEFINED, ": default value re-defined with = different value"}, { VFR_WARNING_ACTION_WITH_TEXT_TWO, ": Action opcode s= hould not have TextTwo part"}, { VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, = ": Not recommend to use obsoleted framework opcode"},- { VFR_WARNING_CODEU= NDEFINED, ": undefined Warning Code" }+ { VFR_WARNING_CODEUNDEFINED, ": un= defined Warning Code" },+ { VFR_WARNING_UNSUPPORTED, ": pls remove the def= ault values if necessary" } }; CVfrErrorHandle::CVfrErrorHandle (diff --gi= t a/BaseTools/Source/C/VfrCompile/VfrError.h b/BaseTools/Source/C/VfrCompil= e/VfrError.h index 7d16bd5f74..1b4bc173d2 100644 --- a/BaseTools/Source/C/VfrCompile/VfrError.h +++ b/BaseTools/Source/C/VfrCompile/VfrError.h @@ -47,7 +47,8 @@ typedef enum { VFR_WARNING_DEFAULT_VALUE_REDEFINED =3D 0, VFR_WARNING_ACTION_WITH_TEX= T_TWO, VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,- VFR_WARNING_CODEUNDEFINE= D+ VFR_WARNING_CODEUNDEFINED,+ VFR_WARNING_UNSUPPORTED } EFI_VFR_WARNING_= CODE; typedef struct _SVFR_ERROR_HANDLE {diff --git a/BaseTools/Source/C/V= frCompile/VfrFormPkg.h b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h index 9ef6f07787..d8fada3bcb 100644 --- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.h +++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.h @@ -96,6 +96,7 @@ struct SBufferNode { typedef struct { EFI_GUID *OverrideClassGuid;+ BOOLEAN IsCatchDefaultE= nable; } INPUT_INFO_TO_SYNTAX; class CFormPkg {diff --git a/BaseTools/Sour= ce/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g index 55fd067f8a..5daf1c423c 100644 --- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g +++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g @@ -50,6 +50,7 @@ VfrParserStart ( { ParserBlackBox VfrParser(File)= ; VfrParser.parser()->SetOverrideClassGuid (InputInfo->OverrideClassGuid)= ;+ VfrParser.parser()->SetIsCatchDefaultEnable(InputInfo->IsCatchDefaultEn= able); return VfrParser.parser()->vfrProgram(); } >>@@ -386,8 +387,8 @@ d= ataStructField32 [BOOLEAN FieldInUnion]: ; dataStructField16 [BOOLEAN FieldInUnion]:- << - UINT32 ArrayNum = =3D 0; + <<+ UINT32 ArrayNum =3D 0; >> ("UINT16" | "CHAR16") N:St= ringIdentifier@@ -737,7 +738,7 @@ vfrFormSetList : ; vfrStatementExtension:- << + << EFI_GUID Guid; CIfrGuid *= GuidObj =3D NULL; CHAR8 *TypeName =3D NULL;@@ -751,7 +752,7 @@ vfrS= tatementExtension: >> L:GuidOp Uuid "=3D" guidDefinition[Guid]- {"," DataType "=3D" + = {"," DataType "=3D" ( U64:"UINT64" {OpenBracket AN1:Number Clo= seBracket <getText(), AN1->getLine());>>} = << TypeName =3D U64->getTex= t(); LineNum =3D U64->getLine(); >>@@ -770,7 +771,7 @@ vfrStatementExtensio= n: | T:"EFI_HII_TIME" {OpenBracket AN8:Number CloseBracket <getText(), AN8->getLine());>>} = << TypeName =3D T->getText(); LineNum =3D T->get= Line(); IsStruct =3D TRUE;>> | R:"EFI_HII_REF" {OpenBracket AN9:Numbe= r CloseBracket <getText(), AN9->getLine());>>}- = << TypeName =3D R->get= Text(); LineNum =3D R->getLine(); IsStruct =3D TRUE;>> = + = << TypeName =3D R->getText(); LineNum =3D R->getLine(); IsStruct =3D= TRUE;>> | TN:StringIdentifier {OpenBracket AN10:Number CloseBracket = <getText(), AN10->getLine());>>} = << TypeName =3D TN->getText(); Line= Num =3D TN->getLine(); IsStruct =3D TRUE;>> )@@ -875,19 +876,19 @@ vfrE= xtensionData[UINT8 *DataBuff, UINT32 Size, CHAR8 *TypeName, UINT32 TypeSize= , memcpy (ByteOffset, &Data_U64, TypeSize); }e= lse if (strcmp ("UINT32", TypeName) =3D=3D 0) { Data_U32 = =3D _STOU32(RD->getText(), RD->getLine());- memcpy (ByteOffs= et, &Data_U32, TypeSize); = + memcpy (ByteOffset, &Data_U32, TypeSize); = }else if (strcmp ("UINT16", TypeName) =3D=3D 0) { Data_U16 = =3D _STOU16(RD->getText(), RD->getLine());- memcpy (ByteOffs= et, &Data_U16, TypeSize); = + memcpy (ByteOffset, &Data_U16, TypeSize); = }else if (strcmp ("UINT8", TypeName) =3D=3D 0) { Data_U8 = =3D _STOU8(RD->getText(), RD->getLine());- memcpy (ByteOffse= t, &Data_U8, TypeSize); = + memcpy (ByteOffset, &Data_U8, TypeSize); }el= se if (strcmp ("BOOLEAN", TypeName)=3D=3D 0) { Data_BL =3D = _STOU8(RD->getText(), RD->getLine());- memcpy (ByteOffset, &= Data_BL, TypeSize); + = memcpy (ByteOffset, &Data_BL, TypeSize); }else i= f (strcmp ("EFI_STRING_ID", TypeName) =3D=3D 0) { Data_SID = =3D _STOSID(RD->getText(), RD->getLine());- memcpy (ByteOffs= et, &Data_SID, TypeSize); = + memcpy (ByteOffset, &Data_SID, TypeSize); = } } else { gCVfrVarDataTypeDB.GetDataFieldInfo(TF= Name, FieldOffset, FieldType, FieldSize, BitField);@@ -975,7 +976,15 @@ vfr= ExtensionData[UINT8 *DataBuff, UINT32 Size, CHAR8 *TypeName, UINT32 TypeSiz= e, vfrStatementDefaultStore : << UINT16 DefaultId =3D EFI_HII_DEFAULT_CLA= SS_STANDARD; >>- D:DefaultStore N:StringIdentifier ","+ D:DefaultStore N:= StringIdentifier "," <<+ = if (mIsCatchDefaultEnable) {+ = gCVfrErrorHandle.HandleWarning (+ = VFR_WARNING_UNSUPPORTED,+ = D->getLine(),+ = D->getText()+ = );+ = }+ = >> Prompt "=3D" "STRING_TOKEN" "\(" S:Number "\)" { "," Attribute = "=3D" A:Number << DefaultId =3D _STOU16(A->getText(), = A->getLine()); >>@@ -1074,7 +1083,7 @@ vfrStatementVarStoreEfi : | U64:"UINT64" "," << TypeName =3D U64->g= etText(); LineNum =3D U64->getLine(); >> | D:"EFI_HII_DATE" "," = << TypeName =3D D->getText(); LineNum =3D D->getLine(); >= > | T:"EFI_HII_TIME" "," << TypeName =3D T->ge= tText(); LineNum =3D T->getLine(); >>- | R:"EFI_HII_REF" "," = << TypeName =3D R->getText(); LineNum =3D R->getLine(); >> = + | R:"EFI_HII_REF" "," << TypeName =3D R->g= etText(); LineNum =3D R->getLine(); >> ) { VarId "=3D" ID:Number ",= " <<@@ -1092,8 +1101,8 @@ vfrStatementVarStoreEfi : ( Name "=3D" SN:StringIdentifier "," << StoreName =3D= SN->getText(); >> |- Name "=3D" "STRING_TOKEN" "\(" VN:Number "= \)" "," - VarSize "=3D" N:Number "," << + Nam= e "=3D" "STRING_TOKEN" "\(" VN:Number "\)" ","+ VarSize "=3D" N:Numbe= r "," << = IsUEFI23EfiVarstore =3D FALSE; = StoreName =3D gCVfrStringDB.GetVarStoreNameFormStrin= gId(_STOSID(VN->getText(), VN->getLine())); = if (StoreName =3D=3D NULL) {@@ -1116,7 +1125,7 @@ v= frStatementVarStoreEfi : break; = case 8: = TypeName =3D (CHAR8 *) "UINT64";- = break; + = break; = default: = _PCATCH (VFR_RETURN_UNSUPPORTED, N); = break;@@ -1124,7 +1133,7 @@ vfrStatementVarS= toreEfi : >> ) - Uuid "=3D" g= uidDefinition[Guid] << + Uuid "=3D" guidDefinition[Gui= d] << = if (IsUEFI23EfiVarstore) { = _PCATCH(gCVfrDataStorage.DeclareBufferVarStore ( = Stor= eName,@@ -1150,7 +1159,7 @@ vfrStatementVarStoreEfi : } = VSEObj.SetGuid (&Guid); = VSEObj.SetVarStoreId (VarStoreId)= ;- + = VSEObj.SetSize ((UINT16) Size); = VSEObj.SetName (StoreNam= e); if (IsUEFI23EfiV= arstore =3D=3D FALSE && StoreName !=3D NULL) {@@ -1184,7 +1193,7 @@ vfrStat= ementVarStoreNameValue : >> } (- Name "= =3D" "STRING_TOKEN" "\(" N:Number "\)" "," << + Name "=3D" "STRING_TOKE= N" "\(" N:Number "\)" "," << = if (!Created) { = _PCATCH(gCVfrDataStorage.DeclareNameVarStoreBegin (SN->getText(), V= arStoreId), SN); C= reated =3D TRUE;@@ -1245,12 +1254,12 @@ vfrStatementDisableIfFormSet : vfrStatementSuppressIfFormSet : << CIfrSuppressIf SIObj;>> L:SuppressI= f <<- = SIObj.SetLineNo(L->getLine()); + = SIObj.SetLineNo(L->getLine());= >> { FLAGS "=3D" = flagsField ( "\|" flagsField )* "," } vfrStatementExpression[0] ";" vfr= FormSetList- E: EndIf + E: EndIf ";" = << CRT_END_OP (E); >> ; @@ -1491,7 +1500,7 @@ vfrQuestionD= ataFieldName [EFI_QUESTION_ID &QId, UINT32 &Mask, CHAR8 *&VarIdStr, ( SN2:StringIdentifier << _STRCAT (&VarId= Str, SN2->getText()); LineNo =3D SN2->getLine(); >> (- "." = << + "." = << _= STRCAT (&VarIdStr, "."); = if (mConstantOnlyInExpression) { = _PCATCH(VFR_RETURN_CONSTANT_ONLY, LineNo);@@ -1518,7 +1= 527,7 @@ vfrQuestionDataFieldName [EFI_QUESTION_ID &QId, UINT32 &Mask, CHAR= 8 *&VarIdStr, ; vfrConstantValueField[UINT8 Type, EFI_IFR_TYPE_VALUE &Value, BOOLEAN = &ListType] :- << + << EFI_GUID Guid; BOOLEAN Negative =3D= FALSE; BOOLEAN IntDecStyle =3D FALSE;@@ -1634,11 +1643,11 @@ vfrCo= nstantValueField[UINT8 Type, EFI_IFR_TYPE_VALUE &Value, BOOLEAN &ListType] | Z:Zero << $Value.u8 =3D _= STOU8(Z->getText(), Z->getLine()); >> | HOUR:Number ":" MINUTE:Number ":"= SECOND:Number << $Value.time =3D _STOT(HOUR->getText(), MINUTE->getText(= ),SECOND->getText(), HOUR->getLine()); >> | YEAR:Number "/" MONTH:Number = "/" DAY:Number << $Value.date =3D _STOD(YEAR->getText(), MONTH->getTe= xt(), DAY->getText(), YEAR->getLine()); >>- | QI:Number";" FI:Number";" gu= idDefinition[Guid] ";" "STRING_TOKEN" "\(" DP:Number "\)" + | QI:Number";"= FI:Number";" guidDefinition[Guid] ";" "STRING_TOKEN" "\(" DP:Number "\)" = << $Value.ref =3D _ST= OR(QI->getText(), FI->getText(), &Guid, DP->getText(), QI->getLine()); >> = | "STRING_TOKEN" "\(" S1:Number "\)" << $Value.string =3D _ST= OSID(S1->getText(), S1->getLine()); >> | "\{" = << ListType =3D TRUE; >>- L1:Number = << + L1:Number <= < switch (Type) { = case EFI_IFR_TYPE_NU= M_SIZE_8 : Type8= [Index] =3D _STOU8(L1->getText(), L1->getLine());@@ -1658,8 +1667,8 @@ vfr= ConstantValueField[UINT8 Type, EFI_IFR_TYPE_VALUE &Value, BOOLEAN &ListType= ] Index++; = >> (- "," - L= 2:Number << + ","+ L2:Numbe= r << = switch (Type) { = case EFI_IFR_TYPE_NUM_SIZE_8 : = Type8[Index] =3D _STOU8(L2->getText(), L2-= >getLine());@@ -1679,7 +1688,7 @@ vfrConstantValueField[UINT8 Type, EFI_IFR= _TYPE_VALUE &Value, BOOLEAN &ListType] Index++; = >> )*- "\}" = + "\}" ; //****************************= *************************************************@@ -1714,7 +1723,7 @@ vfrF= ormDefinition : ; vfrFormMapDefinition :- << + << CIfrFormMap *FMapObj =3D NULL; = UINT32 FormMapMethodNumber =3D 0; EFI_GUID Guid;@@ -1775,11= +1784,15 @@ vfrStatementDefault : CIfrNumeric *NumericQst =3D NULL; >>- D:Default = + D:Default = <<+ if = (mIsCatchDefaultEnable) {+ = DefaultValueError(VFR_RETURN_UNSUPPORTED, D->getLine());+ = }+ = >> ( (- "=3D" vfrConstantValueField[_G= ET_CURRQEST_DATATYPE(), *Val, ArrayType] "," - = << + "=3D" vfrConstantValueField[_GET_CURRQEST= _DATATYPE(), *Val, ArrayType] ","+ = << if (g= CurrentMinMaxData !=3D NULL && gCurrentMinMaxData->IsNumericOpcode()) { = //check default valu= e is valid for Numeric Opcode = NumericQst =3D (CIfrNumeric *) gCurrentQuestion;@@ -1888,14 +1= 901,14 @@ vfrStatementDefault : vfrStatementValue "," << CIfrEnd EndObj1; En= dObj1.SetLineNo(D->getLine()); >> ) {- DefaultStore "=3D" SN:S= tringIdentifier "," << + DefaultStore "=3D" SN:StringIdentifier "= ," << _PCATCH(= gCVfrDefaultStore.GetDefaultId (SN->getText(), &DefaultId), SN); = if (DObj !=3D NULL) {- = DObj->SetDefaultId (Defa= ultId); - } + = DObj->SetDefaultId (Defa= ultId);+ } = if (DObj2 !=3D NULL) {- = DObj2->SetDefaultId (= DefaultId); + DObj= 2->SetDefaultId (DefaultId); = } >> }@@ = -1917,8 +1930,8 @@ vfrStatementDefault : ); = } = }- = if (DObj !=3D NULL) {delete DObj;} - = if (DObj2 !=3D NULL) {delete DObj2;} + = if (DObj !=3D NULL) {d= elete DObj;}+ if (DOb= j2 !=3D NULL) {delete DObj2;} = >> ) ;@@ -1970,11 +1983,15 @@ vfrStatementInvalid : ; flagsField :- Number - | InteractiveFlag - | ManufacturingFlag - = | DefaultFlag - | ResetRequiredFlag + Number+ | InteractiveFlag+ | Manu= facturingFlag+ | D:DefaultFlag <<+ = if (mIsCatchDefaultE= nable) {+ Defaul= tValueError(VFR_RETURN_UNSUPPORTED, D->getLine());+ = }+ = >>+ | ResetRequiredFlag | ReconnectRequiredFlag | N:NV= AccessFlag << = gCVfrErrorHandle.HandleWarning (@@ -1989,7= +2006,7 @@ flagsField : L->getLine(), = L->getText() = );- = >> + = >> ; vfrStatementValue :@@ -2001,13 +2018,13 @@= vfrStatementValue : vfrStatementRead : << CIfrRead RObj; >> R:Read = << RObj.SetLineNo(R->getLine()); >>- vfrStatementEx= pression[0] ";" + vfrStatementExpression[0] ";" ; vfrStatementWrite : = << CIfrWrite WObj; >> W:Write = << WObj.SetLineNo(W->getLine()); >>- vfrStatementExpression[0] ";" + v= frStatementExpression[0] ";" ; vfrStatementSubTitle :@@ -2140,7 +2157,7 = @@ vfrStatementGoto : FormId "=3D" F3:Number "," << RefType =3D 2;= FId =3D _STOFID(F3->getText(), F3->getLine()); >> Question "=3D" = (- QN3:StringIdentifier "," << + Q= N3:StringIdentifier "," << = mCVfrQuestionDB.GetQuestionId (QN3->getText (= ), NULL, QId, BitMask); = if (QId =3D=3D EFI_QUESTION_ID_INVALID) { = _PCATCH(VFR_RETURN_UNDEFINED, QN3);@@ -22= 22,7 +2239,7 @@ vfrStatementGoto : "," Key "=3D" KN:Number << AssignQuestion= Key (*QHObj, KN); >> } {- E:"," + E:"," vfrStatementQuestio= nOptionList << OHObj->SetScope(1); CRT_END_OP (E);>> } = ";" << if (R1Obj !=3D NU= LL) {delete R1Obj;} if (R2Obj !=3D NULL) {delete R2Obj;} if (R3Obj !=3D NUL= L) {delete R3Obj;} if (R4Obj !=3D NULL) {delete R4Obj;} if (R5Obj !=3D NULL= ) {delete R5Obj;}>>@@ -2511,20 +2528,20 @@ minMaxDateStepDefault[EFI_HII_DA= TE & D, UINT8 KeyValue] : { "default" "=3D" N:Number "," << = switch (KeyValue) {- = case 0: + = case 0: = D.Year =3D _STOU16(N->getText(), N->ge= tLine()); if (D= .Year < _STOU16 (MinN->getText(), MinN->getLine()) || D.Year > _STOU16 (Max= N->getText(), MaxN->getLine())) { = _PCATCH (VFR_RETURN_INVALID_PARAMETER, N->getLine(), "= Year default value must be between Min year and Max year."); = } = break;- = case 1: - = D.Month =3D _STOU8(N->getText(), N->getLine()); + = case 1:+ = D.Month =3D _STOU8(N->getText(), = N->getLine()); = if (D.Month < 1 || D.Month > 12) { = _PCATCH (VFR_RETURN_INVALID_PARAMETER, N->getLine(), = "Month default value must be between 1 and 12."); = } = break;- = case 2: - = D.Day =3D _STOU8(N->getText(), N->getLine()); + = case 2:+ = D.Day =3D _STOU8(N->getText(), N->getLine()); = if (D.Day < 1 |= | D.Day > 31) { = _PCATCH (VFR_RETURN_INVALID_PARAMETER, N->getLine(), "Day default value = must be between 1 and 31."); = }@@ -2570,7 +2587,7 @@ vfrSetMinMaxStep[CIfrMinMaxStepData & = MMSDObj] : BOOLEAN MinNegative =3D FALSE; BOOLEAN MaxNegative =3D FALSE; = >>- Minimum "=3D" + Minimum "=3D" { "\-" = << MinNegative =3D TRUE; >> }@@ -2659,8 +2676,8 @= @ vfrSetMinMaxStep[CIfrMinMaxStepData & MMSDObj] : } = } = >>- Maximum "=3D" - { + Maximum "=3D"+ = { "\-" << MaxNegative =3D= TRUE; >> } A:Number "," <<@@ -= 2889,7 +2906,7 @@ vfrStatementNumeric : } = >> vfrStatementQuestionOptionLis= t- E:EndNumeric << + E:EndNumeric= << = CRT_END_OP (E); = if (GuidObj !=3D NULL) { = GuidObj->SetScope(1);@@ -3131,7 +3148,7= @@ vfrStatementString : { Key "=3D" KN:Number "," << AssignQues= tionKey (SObj, KN); >> }- MinSize "=3D" MIN:Number "," = << + MinSize "=3D" MIN:Number "," << = VarArraySize =3D _G= ET_CURRQEST_ARRAY_SIZE(); = StringMinSize =3D _STOU8(MIN->getText(), MIN->getLine()); = if (_STOU64(MIN->getText(= ), MIN->getLine()) > StringMinSize) {@@ -3141,7 +3158,7 @@ vfrStatementStri= ng : } = SObj.SetMinSize (StringMinSize)= ; >>- MaxSize "=3D"= MAX:Number "," << + MaxSize "=3D" MAX:Number ",= " << = StringMaxSize =3D _STOU8(MAX->getText(), MAX->getLine()); = if (_STOU64(MAX->get= Text(), MAX->getLine()) > StringMaxSize) { = _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->get= Line(), "String MaxSize takes only one byte, which can't be larger than 0xF= F.");@@ -3185,7 +3202,7 @@ vfrStatementPassword : { Key "=3D" KN:Number "," << AssignQues= tionKey (PObj, KN); >> }- MinSize "=3D" MIN:Number "," = << + MinSize "=3D" MIN:Number "," << = VarArraySize =3D _G= ET_CURRQEST_ARRAY_SIZE(); = PasswordMinSize =3D _STOU16(MIN->getText(), MIN->getLine()); = if (_STOU64(MIN->getTe= xt(), MIN->getLine()) > PasswordMinSize) {@@ -3195,7 +3212,7 @@ vfrStatemen= tPassword : } = PObj.SetMinSize (PasswordMinSiz= e); >>- MaxSize "= =3D" MAX:Number "," << + MaxSize "=3D" MAX:Numbe= r "," << = PasswordMaxSize =3D _STOU16(MAX->getText(), MAX->getLine(= )); if (_STOU64(M= AX->getText(), MAX->getLine()) > PasswordMaxSize) { = _PCATCH (VFR_RETURN_INVALID_PARAMETER,= MAX->getLine(), "Password MaxSize takes only two byte, which can't be larg= er than 0xFFFF.");@@ -3230,12 +3247,12 @@ vfrStatementOrderedList : >> L:OrderedList << OLObj.SetLi= neNo(L->getLine()); gIsOrderedList =3D TRUE;>> vfrQuestionHeader[OLObj] "= ,"- << + = << = VarArraySize =3D _GET_CURRQEST_ARRAY_SIZE(); = OLObj.SetMaxContain= ers ((UINT8) (VarArraySize > 0xFF ? 0xFF : VarArraySize)); = >> {- MaxContainers "=3D" M:Num= ber "," << + MaxContainers "=3D" M:Number "," = << = if (_STOU64(M->getText(), M->getLine()) > _STOU8(M->getText(), M->getLine()= )) { _PCATCH (V= FR_RETURN_INVALID_PARAMETER, M->getLine(), "OrderedList MaxContainers takes= only one byte, which can't be larger than 0xFF."); = } else if (VarArraySize !=3D 0 && _STOU8= (M->getText(), M->getLine()) > VarArraySize) {@@ -3328,19 +3345,19 @@ minMa= xTimeStepDefault[EFI_HII_TIME & T, UINT8 KeyValue] : { "default" "=3D" N:Number "," << = switch (KeyValue) {- = case 0: - = T.Hour =3D _STOU8(N->getText= (), N->getLine()); + = case 0:+ T.Ho= ur =3D _STOU8(N->getText(), N->getLine()); = if (T.Hour > 23) { = _PCATCH (VFR_RETURN_INVALID_PARAMETER, = N->getLine(), "Hour default value must be between 0 and 23."); = } = break;- = case 1: - = T.Minute =3D _STOU8(N->getText(), N->getLine()); + = case 1:+ = T.Minute =3D _STOU8(N->getText= (), N->getLine()); = if (T.Minute > 59) { = _PCATCH (VFR_RETURN_INVALID_PARAMETER, N->getLine(), "Minute de= fault value must be between 0 and 59."); = } = break;- = case 2: + case = 2: T.Second =3D= _STOU8(N->getText(), N->getLine()); = if (T.Second > 59) { = _PCATCH (VFR_RETURN_INVALID_PARAMETER, N->get= Line(), "Second default value must be between 0 and 59.");@@ -3419,11 +3436= ,11 @@ vfrStatementStatListOld : ; vfrStatementDisableIfStat :- << - CIfrDisableIf DIObj; + <<+ = CIfrDisableIf DIObj; >> L:DisableIf = << DIObj.SetLineNo(L->getLine()); >>- vfrStatementExpression[0] ";" = + vfrStatementExpression[0] ";" ( vfrStatementStatList )* E:EndIf = << CRT_END_OP (E); >> ";"@@ -354= 8,8 +3565,8 @@ vfrStatementWarningIf : ; vfrStatementDisableIfQuest :- << - CIfrDisableIf DIObj; + <<+ = CIfrDisableIf DIObj; >> L:DisableIf = << DIObj.SetLineNo(L->getLine()); >> vfrStatementExpression[0] ";"= @@ -3616,15 +3633,15 @@ vfrStatementOneOfOption : UINT32 *Type32 =3D (UINT32 *) ValueList; UINT6= 4 *Type64 =3D (UINT64 *) ValueList; >>- L:Option = << + L:Option = << = if (_GET_CURRQEST_DATATYPE() =3D=3D EFI_IFR_TYPE_OTHER) { = _PCATCH (VFR_RETUR= N_FATAL_ERROR, L->getLine(), "Get data type error."); = } = >>- Text "=3D" "STRING_TOKEN" "\(" S:Number "\)" "," = + Text "=3D" "STRING_TOKEN" "\(" S:Number "\)" "," Value "=3D" vfr= ConstantValueField[_GET_CURRQEST_DATATYPE(), *Val, ArrayType] ","- = << + = << = if (gCurrentMinMaxData !=3D NULL) { = //set min/max value for oneof opcode = UINT64 Step =3D = gCurrentMinMaxData->GetStepData(_GET_CURRQEST_DATATYPE(), _GET_CURRQEST_VAR= TINFO().mIsBitVar);@@ -3696,7 +3713,7 @@ vfrStatementOneOfOption : Size +=3D OFFSET= _OF (EFI_IFR_ONE_OF_OPTION, Value); = OOOObj =3D new CIfrOneOfOption((UINT8)Size); = OOOObj->SetLineNo(L->getLine= ());- OOOObj->SetO= ption (_STOSID(S->getText(), S->getLine())); + = OOOObj->SetOption (_STOSID(S->getText(), S->ge= tLine())); if (Ar= rayType) { OOOO= bj->SetType (EFI_IFR_TYPE_BUFFER); = } else {@@ -3706,7 +3723,7 @@ vfrStatementOneOfOption : OOOObj->SetT= ype (_GET_CURRQEST_DATATYPE()); = } = }- OOOObj->SetVa= lue (*Val); + OOOO= bj->SetValue (*Val); = >> F:FLAGS "=3D" vfrOneOfOptionFlags[*OOOObj, F->getLine()] = <<@@ -3790,7 +3807,12 @@ oneofop= tionFlagsField [UINT8 & HFlags, UINT8 & LFlags] : | RestStyleFlag << $HFlags |=3D 0x2= 0; >> | ReconnectRequiredFlag << $HFlags |= =3D 0x40; >> | ManufacturingFlag << $LFl= ags |=3D 0x20; >>- | DefaultFlag <<= $LFlags |=3D 0x10; >>+ | D:DefaultFlag = <<+ $LFlags |= =3D 0x10;+ if (mIs= CatchDefaultEnable) {+ = DefaultValueError(VFR_RETURN_UNSUPPORTED, D->getLine());+ = }+ = >> | A:NVAccessFlag = << = gCVfrErrorHandle.HandleWarning ( = VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,@@ -3963,7 +3985,7= @@ vfrStatementExpression [UINT32 RootLevel, UINT32 ExpOpCount =3D 0] : } = } = }- = + = if ($RootLevel =3D=3D 0) { = _CLEAR_SAVED_OPHDR (); = mCIfrOpHdrIndex --;@@ -4405,10 +4427,10 @@ ideqval= listExp[UINT32 & RootLevel, UINT32 & ExpOpCount] : for (Index =3D= 0; Index < ListLen; Index++) { = EILObj.SetValueList (Index, ValueList[Index]); = }- = + = EILObj.UpdateIfrBuffer();- = _SAVE_OPHDR_COND (EILObj, ($ExpOpCount = =3D=3D 0), L->getLine()); = - + = _SAVE_OPHDR_COND (= EILObj, ($ExpOpCount =3D=3D 0), L->getLine());+ = if (QId =3D=3D EFI_QUESTION_ID_INVALID) { = EILObj.SetQue= stionId (QId, VarIdStr, LineNo); = }@@ -4458,9 +4480,9 @@ stringref1Exp[UINT32 & RootLevel, = UINT32 & ExpOpCount] : >> L:StringRef "\("- ( + ( "STRING_TOKEN"- = "\(" + "\(" S:Number << RefStringId =3D _STOSID(S->getText= (), S->getLine()); >> "\)" | I:Number << RefStringId =3D _S= TOSID(I->getText(), I->getLine()); >>@@ -4499,10 +4521,10 @@ getExp[UINT32 = & RootLevel, UINT32 & ExpOpCount] : Info.mVarStoreId =3D 0; >> L:Get- "\(" + "\(" vfrStorageV= arId[Info, VarIdStr, FALSE] {"\|" FLAGS "=3D" numericVarStoreType [Va= rType] }- "\)" << + "\)" = << = { = if (Info.mVarStoreId =3D=3D 0) { = // support Date/Time question@@ -4= 549,9 +4571,9 @@ getExp[UINT32 & RootLevel, UINT32 & ExpOpCount] : _PCATCH(VF= R_RETURN_UNSUPPORTED, L->getLine(), "Get/Set opcode don't support data arra= y"); } = }- = CIfrGet GObj(L->getLine()); - = _SAVE_OPHDR_COND (GO= bj, ($ExpOpCount =3D=3D 0), L->getLine()); - = GObj.SetVarInfo (&Info); + = CIfrGet GObj(L->getLine());+ = _SAVE_OPHDR_COND (GObj= , ($ExpOpCount =3D=3D 0), L->getLine());+ = GObj.SetVarInfo (&Info); = delete[] VarIdStr; = $ExpOpCount++; = }@@ -4608,7 +4630,7 @@ question23refE= xp[UINT32 & RootLevel, UINT32 & ExpOpCount] : { Uuid "=3D" guidDefinition[Guid] "," = << Type =3D 0x3; >> }- vfrStatementExpressionSub[$RootLevel + 1,= $ExpOpCount] + vfrStatementExpressionSub[$RootLevel + 1, $ExpOpCount]= "\)" << = switch (Type) {@@ -4675,9 = +4697,9 @@ setExp[UINT32 & RootLevel, UINT32 & ExpOpCount] : "\(" vfrStorageVarId[Info, VarIdStr, FALSE] {"\|" FLAG "=3D" n= umericVarStoreType [VarType] }- "," vfrStatementExpressionSub[$RootLeve= l + 1, $ExpOpCount] + "," vfrStatementExpressionSub[$RootLevel + 1, $Ex= pOpCount] "\)"- << = + << = { = if (Info.mVarStoreId =3D=3D 0) { = // support Date/Time quest= ion@@ -4724,8 +4746,8 @@ setExp[UINT32 & RootLevel, UINT32 & ExpOpCount] : _PCATCH(VF= R_RETURN_UNSUPPORTED, L->getLine(), "Get/Set opcode don't support data arra= y"); } = }- = CIfrSet TSObj(L->getLine()); - = TSObj.SetVarInfo (&= Info); + CIfrSet= TSObj(L->getLine());+ = TSObj.SetVarInfo (&Info); = delete[] VarIdStr; = $ExpOpCount++; = }@@ -4808,9 +4830,9 @@ spanExp[UINT32 & RootLevel, UINT= 32 & ExpOpCount] : ; vfrExpressionMap [UINT32 & RootLevel, UINT32 & ExpOpCount]:- L:Map = - "\(" - vfrStatementExp= ressionSub[$RootLevel + 1, $ExpOpCount] + L:Map+ "\("+ vfrStatementExpr= essionSub[$RootLevel + 1, $ExpOpCount] ":" = << { CIfrMap MObj(L->getLine()); } >> ( vfrStat= ementExpression[0]@@ -4837,6 +4859,7 @@ spanFlags [UINT8 & Flags] : class EfiVfrParser { << private:+ BOOLEAN mIsCatchDefaultEnab= le; UINT8 mParserStatus; BOOLEAN mConstantOnl= yInExpression; @@ -4880,6 +4903,7 @@ public: VOID _PCATCH (IN EFI_VFR_RETURN_CODE, IN ANTLRTokenPtr); = VOID _PCATCH (IN EFI_VFR_RETURN_CODE, IN UINT32); VOID = _PCATCH (IN EFI_VFR_RETURN_CODE, IN UINT32, IN CONST CHAR8 *)= ;+ VOID DefaultValueError (IN EFI_VFR_RETURN_CODE, IN UINT3= 2); VOID syn (ANTLRAbstractToken *, ANTLRChar *, Set= WordType *, ANTLRTokenType, INT32); @@ -4909,6 +4933,7 @@ public: VOID IdEqIdDoSpecial (IN UINT32 &, IN UINT32, IN EF= I_QUESTION_ID, IN CHAR8 *, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UI= NT32, IN EFI_COMPARE_TYPE); VOID IdEqListDoSpecial (IN= UINT32 &, IN UINT32, IN EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN UINT16,= IN UINT16 *); VOID SetOverrideClassGuid (IN EFI_GUID *);= + VOID SetIsCatchDefaultEnable (BOOLEAN IsCatchDefaultEnabl= e); >> } @@ -5086,6 +5111,17 @@ EfiVfrParser::_PCATCH ( mParserStatus =3D mParserStatus + gCVfrErrorHandle.HandleError (ReturnCo= de, LineNum, (CHAR8 *) ErrorMsg); } +VOID+EfiVfrParser::DefaultValueError (= + IN EFI_VFR_RETURN_CODE ReturnCode,+ IN UINT32 LineNum+ )+= {+ CHAR8 ErrorMsg[100];+ sprintf(ErrorMsg, "please remove the default val= ue / defaultstore in line %d", LineNum);+ mParserStatus =3D mParserStatus = + gCVfrErrorHandle.HandleError (ReturnCode, LineNum, ErrorMsg);+}+ VOID Efi= VfrParser::syn ( ANTLRAbstractToken *Tok,@@ -5682,12 +5718,18 @@ EfiVfrP= arser::IdEqListDoSpecial ( } } -VOID +VOID EfiVfrParser::SetOverrideClassGuid (IN EFI_GUID *Overrid= eClassGuid) { mOverrideClassGuid =3D OverrideClassGuid; } +VOID+EfiVfrPar= ser::SetIsCatchDefaultEnable (BOOLEAN IsCatchDefaultEnable)+{+ mIsCatchDef= aultEnable =3D IsCatchDefaultEnable;+}+ VOID EfiVfrParser::CheckDuplicateDe= faultValue ( IN EFI_DEFAULT_ID DefaultId,--=20 2.39.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#116501): https://edk2.groups.io/g/devel/message/116501 Mute This Topic: https://groups.io/mt/103969254/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-