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 09262AC1146 for ; Tue, 16 Jan 2024 15:03:43 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=SqvPsXTb2HFfkyAqMrcwI02p/U6ILWXFK+TvoekEfAI=; c=relaxed/simple; d=groups.io; h=From:To:Cc:References:In-Reply-To:Subject:Date:Message-ID:MIME-Version:Thread-Index:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Transfer-Encoding:Content-Language; s=20140610; t=1705417422; v=1; b=YnjqBgW6ehCBeHEkTqqNitByntKiS5tnDIrLT/aGrU49moAjTgfvJq5GnYiBqxYMOQ45FmNI J/zvk3SSHSp3AKIVdos/9JZN0WibX6zoedFfDjLi7GUUB1soRdMkUIfIfZ0uk5/zFDuez0vvGQy ZW+ogysgglA3UQcCa9/m5XNI= X-Received: by 127.0.0.2 with SMTP id d9j6YY7687511xNf8VVEquUX; Tue, 16 Jan 2024 07:03:42 -0800 X-Received: from cxsh.intel-email.com (cxsh.intel-email.com [121.46.250.151]) by mx.groups.io with SMTP id smtpd.web11.16928.1705417419819889297 for ; Tue, 16 Jan 2024 07:03:41 -0800 X-Received: from cxsh.intel-email.com (localhost [127.0.0.1]) by cxsh.intel-email.com (Postfix) with ESMTP id 38A79DDA791 for ; Tue, 16 Jan 2024 23:03:36 +0800 (CST) X-Received: from localhost (localhost [127.0.0.1]) by cxsh.intel-email.com (Postfix) with ESMTP id 33DB0DDA787 for ; Tue, 16 Jan 2024 23:03:36 +0800 (CST) X-Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by cxsh.intel-email.com (Postfix) with SMTP id 4B10DDDA793 for ; Tue, 16 Jan 2024 23:03:32 +0800 (CST) X-Received: from DESKTOPS6D0PVI ([114.93.194.54]) (envelope-sender ) by 192.168.6.13 with ESMTP(SSL) for ; Tue, 16 Jan 2024 23:03:30 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 114.93.194.54 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming via groups.io" To: , , "'Yang, Yuting2'" Cc: "'Chen, Christine'" References: <20231212090119.1150-1-yuting2.yang@intel.com> <023101da36cf$a50bb8f0$ef232ad0$@byosoft.com.cn> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BhdGNoIFYyXSBCYXNlVG9vbHM6IFZmckNvbXBpbGVyIEFkZHMgRGVmYXVsdFZhbHVlRXJyb3IgRmVhdHVyZQ==?= Date: Tue, 16 Jan 2024 23:03:31 +0800 Message-ID: <02c801da488d$2bcee960$836cbc20$@byosoft.com.cn> MIME-Version: 1.0 Thread-Index: AQKYIdcKmMO+dy/SabaxWAalEJCh8AI6a+33Apct1G8COAEoggGUjl+4AhUWxFsC3ndSJQGujL5orubPQdA= 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,gaoliming@byosoft.com.cn List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: S8m8Brbn2VEqFKBAzgmf5NVYx7686176AA= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=YnjqBgW6; dmarc=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 This option is for the module check. I suggest to set this option in INF in= stead of DSC.=20 If so, DSC is not required to configure the additional options. And, this m= odule will have the same build result=20 when it is specified in the different platform DSC files. I understand your requirement to enable this option for the modules in some= specific package.=20 I think you can easily find those modules those have VFR/HFR, then update t= heir INFs with new check option.=20 Thanks Liming > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Zhang, Zifeng > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2024=E5=B9=B41=E6=9C=8812=E6=97=A5 = 13:20 > =E6=94=B6=E4=BB=B6=E4=BA=BA: Yang, Yuting2 ; Gao,= Liming > > =E6=8A=84=E9=80=81: Chen, Christine ; devel@edk2.gr= oups.io > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [Patch V2] BaseTools: VfrCompiler Ad= ds > DefaultValueError Feature >=20 > Hi Liming, >=20 > Could you help to share the update for this patch solution? >=20 > Best Regards, > Zifeng >=20 > -----Original Message----- > From: Yang, Yuting2 > Sent: Monday, December 25, 2023 3:10 PM > To: Gao, Liming > Cc: Zhang, Zifeng ; Chen, Christine > ; devel@edk2.groups.io > Subject: RE: [Patch V2] BaseTools: VfrCompiler Adds DefaultValueError > Feature >=20 > Hi Liming, >=20 > Thank you for adding the account for me. > I have created a Bugzilla https://bugzilla.tianocore.org/show_bug.cgi?id= =3D4629 > for this feature ~ >=20 > Best Regards,, > Yuting >=20 > -----Original Message----- > From: gaoliming > Sent: Monday, December 25, 2023 9:14 AM > To: Yang, Yuting2 > Subject: =E5=9B=9E=E5=A4=8D: [Patch V2] BaseTools: VfrCompiler Adds Defau= ltValueError > Feature >=20 > Your account yuting2.yang@intel.com has been added. PW: tiano@123 >=20 > > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > > =E5=8F=91=E4=BB=B6=E4=BA=BA: Yang, Yuting2 > > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2023=E5=B9=B412=E6=9C=8822=E6=97= =A5 13:41 > > =E6=94=B6=E4=BB=B6=E4=BA=BA: Gao, Liming > > =E6=8A=84=E9=80=81: Rebecca Cran ; Feng, Bob C > > ; Chen, Arthur G ; > > Chen, Christine ; Zhang, Zifeng > > ; devel@edk2.groups.io > > =E4=B8=BB=E9=A2=98: RE: [Patch V2] BaseTools: VfrCompiler Adds DefaultV= alueError > > Feature > > > > Hi Liming, > > > > Thank you for reviewing ~ > > Could you please help me create a Bugzilla account? Currently, I do > > not > have > > access to the Bugzilla. > > > > Best Regards, > > Yuting > > > > -----Original Message----- > > From: Zhang, Zifeng > > Sent: Thursday, December 21, 2023 2:44 PM > > To: Gao, Liming ; Yang, Yuting2 > > > > Cc: Rebecca Cran ; Feng, Bob C > > ; Chen, Arthur G ; > > devel@edk2.groups.io; Chen, Christine > > Subject: RE: [Patch V2] BaseTools: VfrCompiler Adds DefaultValueError > > Feature > > > > Hi Liming, > > > > Thanks for reviewing. > > For background of this change, we will remove default flags in VFR/HFR > > in new platform. So we need help from VFR complier to make a default > > flag check to avoid manually adding. > > @Yang, Yuting2, could you help to create a BZ for this feature and > > share > in > > mail thread? > > Then let me make a clarification for your questions. > > > > #1: The purpose of --catch_default > > We send --catch_default flag in build option to indicate which > > platform > should > > check default flag in VFR/HFR. > > Actually maybe some platforms used same EDK2 downstream branch, so we > > only send --catch_default flag for the platforms which need this check. > > > > #2: The purpose of --except_list > > VFR compiler will receive VFR/HFR configurations from all folders > including > > Intel and EDK2. But in our expectation VFR compiler only do this check > > in Intel. > > So We use --except_list to deliver package list in EDK2 to avoid this > check. > > > > Best Regards, > > Zifeng > > > > -----Original Message----- > > From: Yang, Yuting2 > > Sent: Tuesday, December 12, 2023 5:12 PM > > To: Zhang, Zifeng ; Chen, Arthur G > > ; devel@edk2.groups.io > > Cc: Rebecca Cran ; Gao, Liming > > ; Feng, Bob C > > Subject: RE: [Patch V2] BaseTools: VfrCompiler Adds DefaultValueError > > Feature > > > > +Cc Zhang, Zifeng, Chen, Arthur G > > > > -----Original Message----- > > From: Chen, Christine > > Sent: Tuesday, December 12, 2023 5:04 PM > > To: Yang, Yuting2 ; devel@edk2.groups.io > > Cc: Rebecca Cran ; Gao, Liming > > ; Feng, Bob C > > Subject: RE: [Patch V2] BaseTools: VfrCompiler Adds DefaultValueError > > Feature > > > > +Cc Yang, Yuting2 > > > > > -----Original Message----- > > > From: Yang, Yuting2 > > > Sent: Tuesday, December 12, 2023 5:01 PM > > > To: devel@edk2.groups.io > > > Cc: Rebecca Cran ; Gao, Liming > > > ; Feng, Bob C ; > > > Chen, Christine > > > Subject: [Patch V2] BaseTools: VfrCompiler Adds DefaultValueError > > > Feature > > > > > > Add --catch_default option > > > Raise a DefaultValueError when encountering VFR default definitions > > > to help remove default variables. > > > Add --except_list option > > > Exclude packages that don't require enabling the catch_default functi= on. > > > > > > Cc: Rebecca Cran > > > Cc: Liming Gao > > > Cc: Bob Feng > > > Cc: Christine Chen > > > Cc: Yuting Yang > > > > > > Signed-off-by: Yuting Yang > > > --- > > > BaseTools/Source/C/VfrCompile/VfrCompiler.cpp | 40 ++- > > > BaseTools/Source/C/VfrCompile/VfrCompiler.h | 3 + > > > 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, 184 insertions(+), 104 deletions(-) > > > > > > diff --git a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp > > > b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp > > > index 5f4d262d85..e97cebff65 100644 > > > --- a/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp > > > +++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp > > > @@ -78,6 +78,9 @@ CVfrCompiler::OptionInitialization ( > > > mOptions.WarningAsError =3D FALSE; > > mOptions.AutoDefault > > > =3D FALSE; mOptions.CheckDefault =3D FALSE;+ > > > mOptions.IsCatchDefaultEnable =3D FALSE;+ > > mOptions.ExceptionList > > > =3D NULL;+ mOptions.ExceptionListSize =3D 0; memset > > > (&mOptions.OverrideClassGuid, 0, sizeof (EFI_GUID)); if (Argc =3D= =3D 1) > > {@@ - > > > 95,6 +98,23 @@ 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], > > "-- > > > except_list") =3D=3D 0){+ INT32 Start =3D ++Index;+ if ((St= art >=3D > Argc) > > || > > > (Argv[Start][0] =3D=3D '-')) {+ DebugError (NULL, 0, 1001, "Mi= ssing > > option", "- > > > exception_list missing except list");+ goto Fail;+ }+ > > while > > > ((Argv[Index][0] !=3D '-') && (Index < Argc - 1)) {+ Index++;+ > }+ > > INT32 > > > End =3D Index--;+ mOptions.ExceptionListSize =3D End - Start;+ > for > > (INT32 i =3D > > > Start; i < End; i++) {+ mOptions.ExceptionList =3D (CHAR8**) > > > realloc(mOptions.ExceptionList, (i - Start + 1) * sizeof(CHAR8*));+ > > > mOptions.ExceptionList[i-Start] =3D Argv[i];+ } } else if > > (stricmp(Argv[Index], > > > "-l") =3D=3D 0) { mOptions.CreateRecordListFile =3D TRUE; > > > gCIfrRecordInfoDB.TurnOn ();@@ -179,7 +199,11 @@ > > > CVfrCompiler::OptionInitialization ( > > > goto Fail; } strcpy (mOptions.VfrFileName, > > Argv[Index]);-+ for (int i =3D > > > 0; i < mOptions.ExceptionListSize; i++) {+ if > > (strstr(mOptions.VfrFileName, > > > mOptions.ExceptionList[i]) !=3D NULL) {+ > > mOptions.IsCatchDefaultEnable =3D > > > FALSE;+ }+ } if (mOptions.OutputDirectory =3D=3D NULL) > > > { mOptions.OutputDirectory =3D (CHAR8 *) malloc (1); if > > > (mOptions.OutputDirectory =3D=3D NULL) {@@ -217,6 +241,11 @@ Fail: > > > free (mOptions.VfrFileName); mOptions.VfrFileName > > =3D > > > NULL; }+ if (mOptions.ExceptionList !=3D NULL) {+ > > > free(mOptions.ExceptionList);+ mOptions.ExceptionList > > =3D NULL;++ } > > > if (mOptions.VfrBaseFileName !=3D NULL) { free > > (mOptions.VfrBaseFileName); > > > mOptions.VfrBaseFileName =3D NULL;@@ -496,6 +525,11 > > @@ > > > CVfrCompiler::~CVfrCompiler ( > > > mOptions.VfrBaseFileName =3D NULL; } + if > > (mOptions.ExceptionList !=3D > > > NULL) {+ free (mOptions.ExceptionList);+ mOptions.ExceptionList > =3D > > > NULL;+ }+ if (mOptions.OutputDirectory !=3D NULL) { free > > > (mOptions.OutputDirectory); mOptions.OutputDirectory =3D > NULL;@@ > > -679,7 > > > +713,7 @@ CVfrCompiler::Compile ( > > > DebugError (NULL, 0, 0001, "Error opening the input file", "%s", > > > InFileName); goto Fail; }-+ InputInfo.IsCatchDefaultEnable =3D > > > mOptions.IsCatchDefaultEnable; if (mOptions.HasOverrideClassGuid) > > > { InputInfo.OverrideClassGuid =3D &mOptions.OverrideClassGuid; = } > > else > > > {@@ -937,5 +971,3 @@ main ( > > > return GetUtilityStatus (); }--diff --git > > > a/BaseTools/Source/C/VfrCompile/VfrCompiler.h > > > b/BaseTools/Source/C/VfrCompile/VfrCompiler.h > > > index b6e207d2ce..39e0a89a29 100644 > > > --- a/BaseTools/Source/C/VfrCompile/VfrCompiler.h > > > +++ b/BaseTools/Source/C/VfrCompile/VfrCompiler.h > > > @@ -52,6 +52,9 @@ typedef struct { > > > BOOLEAN WarningAsError; BOOLEAN AutoDefault; BOOLEAN > > > CheckDefault;+ BOOLEAN IsCatchDefaultEnable;+ CHAR8** > > ExceptionList;+ > > > INT16 ExceptionListSize; } OPTIONS; typedef enum {diff --git > > > a/BaseTools/Source/C/VfrCompile/VfrError.cpp > > > b/BaseTools/Source/C/VfrCompile/VfrError.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 should not have TextTwo part"}, { > > > VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, ": Not recommend > to > > use > > > obsoleted framework opcode"},- { VFR_WARNING_CODEUNDEFINED, ": > > > undefined Warning Code" }+ { VFR_WARNING_CODEUNDEFINED, ": > > > undefined Warning Code" },+ { VFR_WARNING_UNSUPPORTED, ": pls > > remove > > > the default values if necessary" } }; > > > CVfrErrorHandle::CVfrErrorHandle (diff -- git > > > a/BaseTools/Source/C/VfrCompile/VfrError.h > > > b/BaseTools/Source/C/VfrCompile/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_TEXT_TWO, > > > VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,- > > > VFR_WARNING_CODEUNDEFINED+ > VFR_WARNING_CODEUNDEFINED,+ > > > VFR_WARNING_UNSUPPORTED } EFI_VFR_WARNING_CODE; typedef > > struct > > > _SVFR_ERROR_HANDLE {diff --git > > > a/BaseTools/Source/C/VfrCompile/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 > > > IsCatchDefaultEnable; } INPUT_INFO_TO_SYNTAX; class CFormPkg {diff > > > --git a/BaseTools/Source/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- > > > >IsCatchDefaultEnable); return > > VfrParser.parser()->vfrProgram(); } >>@@ - > > > 386,8 +387,8 @@ dataStructField32 [BOOLEAN FieldInUnion]: > > > ; dataStructField16 [BOOLEAN FieldInUnion]:- << - UINT32 > > ArrayNum =3D 0; > > > + <<+ UINT32 ArrayNum =3D 0; >> ("UINT16" | "CHAR16") > > > N:StringIdentifier@@ -737,7 +738,7 @@ vfrFormSetList : > > > ; vfrStatementExtension:- << + << EFI_GUID Guid; > > CIfrGuid *GuidObj > > > =3D NULL; CHAR8 *TypeName =3D NULL;@@ -751,7 +752,7 @@ > > > vfrStatementExtension: > > > >> L:GuidOp Uuid "=3D" guidDefinition[Guid]- {"," DataType "= =3D" > + > > {"," > > > DataType "=3D" ( U64:"UINT64" {OpenBracket AN1:Number > > CloseBracket > > > <getText(), AN1->getLine());>>} << > TypeName > > =3D > > > U64->getText(); LineNum =3D U64->getLine(); >>@@ -770,7 > > > +771,7 @@ vfrStatementExtension: > > > | T:"EFI_HII_TIME" {OpenBracket AN8:Number CloseBracket > > > <getText(), AN8->getLine());>>} << > TypeName > > > =3D T->getText(); LineNum =3D T->getLine(); IsStruct =3D TRUE;>> > > | > > > R:"EFI_HII_REF" {OpenBracket AN9:Number CloseBracket < > > _STOU32(AN9->getText(), AN9->getLine());>>}- << TypeName =3D > > > R->getText(); LineNum =3D R->getLine(); IsStruct =3D TRUE;>> > > > + << > > TypeName =3D > > > + R->getText(); LineNum =3D R- > > > >getLine(); IsStruct =3D TRUE;>> | TN:StringIdentifier {OpenBra= cket > > > AN10:Number CloseBracket <getText(), > > AN10- > > > >getLine());>>} > > << TypeName =3D TN->getText(); > > > LineNum =3D TN->getLine(); IsStruct =3D TRUE;>> )@@ -875,19 +876,= 19 > > @@ > > > vfrExtensionData[UINT8 *DataBuff, UINT32 Size, CHAR8 *TypeName, > > UINT32 > > > TypeSize, > > > memcpy (ByteOffset, &Data_U64, > > TypeSize); }else if (strcmp > > > ("UINT32", TypeName) =3D=3D 0) { Data_U32 =3D > > _STOU32(RD->getText(), > > > RD->getLine());- memcpy (ByteOffset, &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 (ByteOffset, &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 (ByteOffset, &Data_U8, > TypeSize); > > > + memcpy (ByteOffset, &Data_U8, > > TypeSize); }else 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 if (strcmp > > > ("EFI_STRING_ID", TypeName) =3D=3D 0) { Data_SID =3D > > _STOSID(RD- > > > >getText(), RD->getLine());- memcpy (ByteOffset, > > &Data_SID, > > > TypeSize); > > + memcpy (ByteOffset, > > > &Data_SID, TypeSize); } } else > > > { gCVfrVarDataTypeDB.GetDataFieldInfo(TFName, > > FieldOffset, > > > FieldType, FieldSize, BitField);@@ -975,7 +976,15 @@ > > > vfrExtensionData[UINT8 *DataBuff, UINT32 Size, CHAR8 *TypeName, > > UINT32 > > > TypeSize, > > > vfrStatementDefaultStore : << UINT16 DefaultId =3D > > > EFI_HII_DEFAULT_CLASS_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->getText(); > > > LineNum =3D U64->getLine(); >> | D:"EFI_HII_DATE" "," > > << > > > TypeName =3D D->getText(); LineNum =3D D->getLine(); >> | > > T:"EFI_HII_TIME" > > > "," << TypeName =3D T->getText(); LineNum > =3D > > T->getLine(); >>- | > > > R:"EFI_HII_REF" "," << TypeName =3D > > R->getText(); LineNum =3D R- > > > >getLine(); >> + | R:"EFI_HII_REF" "," > > << TypeName =3D R- > > > >getText(); 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 "," << + Name > > "=3D" "STRING_TOKEN" > > > "\(" VN:Number "\)" ","+ VarSize "=3D" N:Number "," > > << > > > IsUEFI23EfiVarstore =3D FALSE; > > StoreName =3D > > > gCVfrStringDB.GetVarStoreNameFormStringId(_STOSID(VN->getText(), > VN- > > > >getLine())); > > if (StoreName =3D=3D NULL) {@@ - > > > 1116,7 +1125,7 @@ vfrStatementVarStoreEfi : > > > > > break; > > case 8: > > > TypeName =3D (CHAR8 *) "UINT64";- > > break; + > > > break; > > default: > > > _PCATCH (VFR_RETURN_UNSUPPORTED, N); break;@@ -1124,7 +1133,7 > @@ > > > vfrStatementVarStoreEfi : > > > >> ) > - > > Uuid "=3D" guidDefinition[Guid] > > > << + Uuid "=3D" guidDefinition[Guid] << > > > if (IsUEFI23EfiVarstore) > > > > > > { _PCAT > > CH(gCVfrDataStorage.DeclareBufferVarS > > > tore > > ( > > StoreName,@@ -1150,7 > > > +1159,7 @@ vfrStatementVarStoreEfi : > > > } > > > VSEObj.SetGuid (&Guid); > > VSEObj.SetVarStoreId > > > (VarStoreId);- > > + > > > VSEObj.SetSize ((UINT16) Size); > > > VSEObj.SetName (StoreName); > > if > > > (IsUEFI23EfiVarstore =3D=3D FALSE && StoreName !=3D NULL) {@@ -1184,7 > > > +1193,7 @@ vfrStatementVarStoreNameValue : > > > >> } > > (- Name "=3D" "STRING_TOKEN" "\(" > > > N:Number "\)" "," << + Name "=3D" "STRING_TOKEN" "\(" N:Number > > "\)" "," > > > << if > > (!Created) > > > > > > { _PC > > ATCH(gCVfrDataStorage.DeclareNameVar > > > StoreBegin (SN->getText(), VarStoreId), SN); Created =3D TRUE;@@ > > > -1245,12 +1254,12 @@ vfrStatementDisableIfFormSet : > > > vfrStatementSuppressIfFormSet : << CIfrSuppressIf SIObj;>> > > L:SuppressIf > > > <<- > > SIObj.SetLineNo(L->getLine()); + > > > > > SIObj.SetLineNo(L->getLine()); > > >> { FLAGS "=3D" > > > flagsField ( "\|" flagsField )* "," } vfrStatementExpression[0] ";" > > > vfrFormSetList- E: EndIf + E: EndIf ";" > > << > > > CRT_END_OP (E); >> ; @@ -1491,7 +1500,7 @@ > > vfrQuestionDataFieldName > > > [EFI_QUESTION_ID &QId, UINT32 &Mask, CHAR8 *&VarIdStr, > > > ( SN2:StringIdentifier << > > _STRCAT (&VarIdStr, SN2- > > > >getText()); LineNo =3D SN2->getLine(); >> (- "." > > << + > > > "." << > > _STRCAT > > > (&VarIdStr, "."); > > if > > > (mConstantOnlyInExpression) > > > > > > { _PC > > ATCH(VFR_RETURN_CONSTANT_ONLY, > > > LineNo);@@ -1518,7 +1527,7 @@ vfrQuestionDataFieldName > > > [EFI_QUESTION_ID &QId, UINT32 &Mask, CHAR8 *&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 > > @@ > > > vfrConstantValueField[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->getText(), > > > DAY->getText(), YEAR->getLine()); >>- | QI:Number";" FI:Number";" > > > guidDefinition[Guid] ";" "STRING_TOKEN" "\(" DP:Number "\)" + | > > > QI:Number";" FI:Number";" guidDefinition[Guid] ";" "STRING_TOKEN" "\(= " > > > DP:Number "\)" > > << $Value.ref =3D _STOR(QI- > > > >getText(), FI->getText(), &Guid, DP->getText(), QI->getLine()); >> = | > > > "STRING_TOKEN" "\(" S1:Number "\)" << $Value.string =3D > > _STOSID(S1- > > > >getText(), S1->getLine()); >> | "\{" > > << ListType =3D > > > TRUE; >>- L1:Number > > << + L1:Number > > > << > > switch (Type) > > > > > > { case > > EFI_IFR_TYPE_NUM_SIZE_8 : > > > Type8[Index] =3D _STOU8(L1->getText(), L1->getLine());@@ -1658,8 > > > +1667,8 @@ vfrConstantValueField[UINT8 Type, EFI_IFR_TYPE_VALUE > > > &Value, BOOLEAN &ListType] > > > > > > Index++; >> > > (- > > > "," - L2:Number << + > > ","+ L2:Number > > > << > > 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 @@ vfrFormDefinition : > > > ; 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[_GET_CURRQEST_DATATYPE(), > > *Val, > > > ArrayType] "," - > > << + "=3D" > > > vfrConstantValueField[_GET_CURRQEST_DATATYPE(), *Val, ArrayType] > ","+ > > > << > if > > (gCurrentMinMaxData !=3D NULL && > > > gCurrentMinMaxData->IsNumericOpcode()) > > > > > > { //c > > heck default value is valid for Numeric > > > Opcode > > NumericQst =3D (CIfrNumeric *) > > > gCurrentQuestion;@@ -1888,14 +1901,14 @@ vfrStatementDefault : > > > vfrStatementValue "," << CIfrEnd > > EndObj1; > > > EndObj1.SetLineNo(D->getLine()); >> ) {- DefaultStore > "=3D" > > > SN:StringIdentifier "," << + DefaultStore "=3D" > SN:StringIdentifier > > "," << > > > _PCATCH(gCVfrDefaultStore.GetDefaultId (SN->getText(), &DefaultId), > > > SN); if (DObj !=3D NULL) {- > > DObj->SetDefaultId > > > (DefaultId); > > - } + > > > DObj->SetDefaultId > > (DefaultId);+ > > } > > > if (DObj2 !=3D NULL) {- > > DObj2->SetDefaultId > > > (DefaultId); + > > DObj2->SetDefaultId > > > > > (DefaultId); > > } >> > > > }@@ -1917,8 +1930,8 @@ vfrStatementDefault : > > > > > ); > > } > > > }- > > if (DObj !=3D NULL) > > > {delete DObj;} - > > if (DObj2 !=3D NULL) {delete > > > DObj2;} + > > if (DObj !=3D NULL) {delete DObj;}+ > > > if (DObj2 !=3D NULL) {delete > > > DObj2;} >> > > ) ;@@ - > > > 1970,11 +1983,15 @@ vfrStatementInvalid : > > > ; flagsField :- Number - | InteractiveFlag - | > > > ManufacturingFlag - | DefaultFlag - | ResetRequiredFlag + Number+ > > > | InteractiveFlag+ | > > > ManufacturingFlag+ | D:DefaultFlag > > <<+ > > > if (mIsCatchDefaultEnable) {+ > > > DefaultValueError(VFR_RETURN_UNSUPPORTED, D- > > > >getLine());+ > > }+ > > > >>+ | ResetRequiredFlag | ReconnectRequiredFlag | > > N:NVAccessFlag > > > << > > 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()); >>- vfrStatementExpression[0] ";" + > > > vfrStatementExpression[0] ";" ; vfrStatementWrite : << CIfrWrite > > WObj; >> > > > W:Write << > > WObj.SetLineNo(W->getLine()); >>- > > > vfrStatementExpression[0] ";" + vfrStatementExpression[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 > > > "," << + QN3:StringIdentifier "," > > << > > > mCVfrQuestionDB.GetQuestionId (QN3->getText (), NULL, QId, BitMask); > > > if (QId =3D=3D EFI_QUESTION_ID_INVALID) > > > > > { > > _PCATCH(VFR_RETURN_UNDEFINED, > > > QN3);@@ -2222,7 +2239,7 @@ vfrStatementGoto : > > > "," Key "=3D" KN:Number << > > AssignQuestionKey (*QHObj, > > > KN); >> } {- E:"," + E:"," > > vfrStatementQuestionOptionList << > > > OHObj->SetScope(1); CRT_END_OP (E);>> } ";" > > > << if (R1Obj !=3D NULL) {delete R1Obj;} if (R2Obj !=3D NULL) {delete > > > R2Obj;} if (R3Obj !=3D NULL) {delete R3Obj;} if (R4Obj !=3D NULL) > > > {delete R4Obj;} if (R5Obj !=3D > > > NULL) {delete R5Obj;}>>@@ -2511,20 +2528,20 @@ > > > minMaxDateStepDefault[EFI_HII_DATE & D, UINT8 KeyValue] : > > > { "default" "=3D" N:Number "," << > > > switch (KeyValue) {- > > case 0: + > > > case 0: > > D.Year =3D _STOU16(N->getText(), N- > > > >getLine()); > > if (D.Year < _STOU16 (MinN- > > > >getText(), MinN->getLine()) || D.Year > _STOU16 (MaxN->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 : > > > > } > > >> > > > vfrStatementQuestionOptionList- E:EndNumeric > > << + > > > E:EndNumeric << > > > CRT_END_OP (E); > > if (GuidObj !=3D NULL) > > > > > { > > GuidObj->SetScope(1);@@ -3131,7 > > > +3148,7 @@ vfrStatementString : > > > { Key "=3D" KN:Number "," << > > AssignQuestionKey (SObj, > > > KN); >> }- MinSize "=3D" MIN:Number "," > > << + MinSize "=3D" > > > MIN:Number "," << > > > VarArraySize =3D _GET_CURRQEST_ARRAY_SIZE(); StringMinSize =3D > > > _STOU8(MIN->getText(), MIN->getLine()); if (_STOU64(MIN->getText(), > > > MIN->getLine()) > StringMinSize) {@@ -3141,7 > > > +3158,7 @@ vfrStatementString : > > > > } > > > SObj.SetMinSize > > (StringMinSize); > > >>- MaxSize > > > "=3D" MAX:Number "," << + MaxSize "=3D" > > MAX:Number "," > > > << > > StringMaxSize =3D _STOU8(MAX->getText(), > > > MAX->getLine()); > > if (_STOU64(MAX- > > > >getText(), MAX->getLine()) > StringMaxSize) > > > > > { > > _PCATCH > > > (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "String MaxSize > > takes > > > only one byte, which can't be larger than 0xFF.");@@ -3185,7 +3202,7 > > > @@ vfrStatementPassword : > > > { Key "=3D" KN:Number "," << > > AssignQuestionKey (PObj, > > > KN); >> }- MinSize "=3D" MIN:Number "," > > << + MinSize "=3D" > > > MIN:Number "," << > > > VarArraySize =3D _GET_CURRQEST_ARRAY_SIZE(); PasswordMinSize =3D > > > _STOU16(MIN->getText(), MIN->getLine()); if (_STOU64(MIN->getText(), > > > MIN->getLine()) > PasswordMinSize) {@@ - > > > 3195,7 +3212,7 @@ vfrStatementPassword : > > > > } > > > PObj.SetMinSize > > (PasswordMinSize); > > >>- > > > MaxSize "=3D" MAX:Number "," << + > > MaxSize "=3D" MAX:Number > > > "," << > > PasswordMaxSize =3D > > > _STOU16(MAX->getText(), MAX->getLine()); > > if > > > (_STOU64(MAX->getText(), MAX->getLine()) > PasswordMaxSize) > > > > > { > > _PCATCH > > > (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "Password > MaxSize > > takes > > > only two byte, which can't be larger than 0xFFFF.");@@ -3230,12 > > > +3247,12 @@ vfrStatementOrderedList : > > > >> L:OrderedList > > << OLObj.SetLineNo(L->getLine()); > > > gIsOrderedList =3D TRUE;>> vfrQuestionHeader[OLObj] ","- > > > << + > << > > > VarArraySize =3D _GET_CURRQEST_ARRAY_SIZE(); OLObj.SetMaxContainers > > > ((UINT8) (VarArraySize > 0xFF ? 0xFF : > > > > > VarArraySize)); > > >> {- MaxContainers "=3D" > > > M:Number "," << + MaxContainers "=3D" > > M:Number "," > > > << > > if (_STOU64(M->getText(), M->getLine()) > > > > _STOU8(M->getText(), M->getLine())) > > > > > { > > _PCATCH > > > (VFR_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 @@ minMaxTimeStepDefault[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.Hour =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 default 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->getLine(), "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); >> ";"@@ -3548,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; > > UINT64 > > > *Type64 =3D (UINT64 *) ValueList; >>- L:Option > > << > > > + L:Option << > > if > > > (_GET_CURRQEST_DATATYPE() =3D=3D EFI_IFR_TYPE_OTHER) > > > > > { > > _PCATCH (VFR_RETURN_FATAL_ERROR, L- > > > >getLine(), "Get data type > > > > > error."); > > } > > > > >- > > > Text "=3D" "STRING_TOKEN" "\(" S:Number "\)" "," + Text "=3D" > > > "STRING_TOKEN" "\(" S:Number "\)" "," Value "=3D" > > > vfrConstantValueField[_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_VARTINFO().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- > > > >SetOption (_STOSID(S->getText(), S->getLine())); + > > > OOOObj->SetOption (_STOSID(S->getText(), S->getLine())); > > > if (ArrayType) > > { > > OOOObj->SetType > > > > > (EFI_IFR_TYPE_BUFFER); > > } else {@@ -3706,7 > > > +3723,7 @@ vfrStatementOneOfOption : > > > > > OOOObj->SetType > > > > > (_GET_CURRQEST_DATATYPE()); > > } > > > }- > > OOOObj->SetValue > > > (*Val); + > > OOOObj->SetValue > > > > > > (*Val); > > > > > F:FLAGS "=3D" > > > vfrOneOfOptionFlags[*OOOObj, F->getLine()] <<@@ -3790,7 +3807,12 > @@ > > > oneofoptionFlagsField [UINT8 & HFlags, UINT8 & LFlags] : > > > | RestStyleFlag << > > $HFlags |=3D 0x20; >> | > > > ReconnectRequiredFlag << $HFlags > |=3D > > 0x40; >> | > > > ManufacturingFlag << $LFlags > |=3D > > 0x20; >>- | DefaultFlag > > > << $LFlags |=3D 0x10; >>+ | D:DefaultFlag > > <<+ > > > $LFlags |=3D 0x10;+ > > if (mIsCatchDefaultEnable) > > > {+ > > > 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 @@ ideqvallistExp[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.SetQuestionId (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 _STOSID(I->getText(), I->getLine()); > > > | >>@@ > > > | - > > > 4499,10 +4521,10 @@ getExp[UINT32 & RootLevel, UINT32 & > > ExpOpCount] : > > > Info.mVarStoreId =3D 0; >> L:Get- "\(" + "\(" > > vfrStorageVarId[Info, > > > VarIdStr, FALSE] {"\|" FLAGS "=3D" numericVarStoreType > [VarType] }- > > "\)" > > > << + "\)" << > > > > > > { i > > f (Info.mVarStoreId =3D=3D 0) > > > > > { > > // support Date/Time question@@ - > > > 4549,9 +4571,9 @@ getExp[UINT32 & RootLevel, UINT32 & > ExpOpCount] : > > > > > > _PCATCH(VFR_RETURN_UNSUPPORTED, L- > > > >getLine(), "Get/Set opcode don't support data > > > > > array"); > > } > > } > > > - > > CIfrGet GObj(L->getLine()); - > > > _SAVE_OPHDR_COND (GObj, ($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 @@ > > > question23refExp[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" > > > numericVarStoreType [VarType] }- "," > > > vfrStatementExpressionSub[$RootLevel + 1, $ExpOpCount] + "," > > > vfrStatementExpressionSub[$RootLevel + 1, $ExpOpCount] "\)"- > > > << + > << > > > > > > { i > > f (Info.mVarStoreId =3D=3D 0) > > > > > { > > // support Date/Time question@@ - > > > 4724,8 +4746,8 @@ setExp[UINT32 & RootLevel, UINT32 & > ExpOpCount] : > > > > > > _PCATCH(VFR_RETURN_UNSUPPORTED, L- > > > >getLine(), "Get/Set opcode don't support data > > > > > array"); > > } > > } > > > - > > CIfrSet TSObj(L->getLine()); - > > > TSObj.SetVarInfo (&Info); + > > CIfrSet TSObj(L- > > > >getLine());+ > > TSObj.SetVarInfo (&Info); > > > delete[] VarIdStr; > > > > > $ExpOpCount++; > > }@@ -4808,9 +4830,9 @@ > > > spanExp[UINT32 & RootLevel, UINT32 & ExpOpCount] : > > > ; vfrExpressionMap [UINT32 & RootLevel, UINT32 & ExpOpCount]:- > > > L:Map > > > - "\(" - vfrStatementExpressionSub[$RootLevel + 1, $ExpOpCount] + > > L:Map+ > > > "\("+ vfrStatementExpressionSub[$RootLevel + 1, $ExpOpCount] ":" > > > << { CIfrMap MObj(L->getLine()); } >> > > ( vfrStatementExpression[0]@@ - > > > 4837,6 +4859,7 @@ spanFlags [UINT8 & Flags] : > > > class EfiVfrParser { << private:+ BOOLEAN > > mIsCatchDefaultEnable; > > > UINT8 mParserStatus; BOOLEAN > > mConstantOnlyInExpression; > > > @@ -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 UINT32); VOID > > > syn (ANTLRAbstractToken *, ANTLRChar *, SetWordType *, > > > ANTLRTokenType, INT32); @@ -4909,6 +4933,7 @@ public: > > > VOID IdEqIdDoSpecial (IN UINT32 &, IN > > UINT32, IN > > > EFI_QUESTION_ID, IN CHAR8 *, IN UINT32, IN EFI_QUESTION_ID, IN > > CHAR8 *, > > > IN UINT32, 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 > > IsCatchDefaultEnable); >> } > > > @@ -5086,6 +5111,17 @@ EfiVfrParser::_PCATCH ( > > > mParserStatus =3D mParserStatus + gCVfrErrorHandle.HandleError > > > (ReturnCode, LineNum, (CHAR8 *) ErrorMsg); } > > > +VOID+EfiVfrParser::DefaultValueError (+ IN EFI_VFR_RETURN_CODE > > > ReturnCode,+ IN UINT32 LineNum+ )+{+ CHAR8 > > ErrorMsg[100];+ > > > sprintf(ErrorMsg, "please remove the default value / defaultstore in > > > line %d", LineNum);+ mParserStatus =3D mParserStatus + > > > gCVfrErrorHandle.HandleError (ReturnCode, LineNum, ErrorMsg);+}+ > > > VOID > > EfiVfrParser::syn > > > ( ANTLRAbstractToken *Tok,@@ -5682,12 +5718,18 @@ > > > EfiVfrParser::IdEqListDoSpecial ( > > > } } -VOID +VOID EfiVfrParser::SetOverrideClassGuid (IN EFI_GUID > > > *OverrideClassGuid) { mOverrideClassGuid =3D OverrideClassGuid; } > > > +VOID+EfiVfrParser::SetIsCatchDefaultEnable (BOOLEAN > > > IsCatchDefaultEnable)+{+ mIsCatchDefaultEnable =3D > > IsCatchDefaultEnable;+}+ > > > VOID EfiVfrParser::CheckDuplicateDefaultValue ( IN EFI_DEFAULT_ID > > > DefaultId,-- > > > 2.26.2.windows.1 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 -=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 (#113907): https://edk2.groups.io/g/devel/message/113907 Mute This Topic: https://groups.io/mt/103763345/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-