From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.136; helo=mga12.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3456A22436928 for ; Mon, 5 Mar 2018 06:14:53 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2018 06:21:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,427,1515484800"; d="scan'208";a="208961482" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga006.fm.intel.com with ESMTP; 05 Mar 2018 06:21:05 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 5 Mar 2018 06:21:05 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.125]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.116]) with mapi id 14.03.0319.002; Mon, 5 Mar 2018 22:21:03 +0800 From: "Gao, Liming" To: "Zhu, Yonghong" , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Shaw, Kevin W" Thread-Topic: [Patch V2] DEC spec: Add flexible PCD value format into spec Thread-Index: AQHToBA7TImEDl5VXkWF8yx+Liw9eKPB2jyg Date: Mon, 5 Mar 2018 14:21:02 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E1D788E@SHSMSX104.ccr.corp.intel.com> References: <1518006956-2284-1-git-send-email-yonghong.zhu@intel.com> <1518006956-2284-2-git-send-email-yonghong.zhu@intel.com> In-Reply-To: <1518006956-2284-2-git-send-email-yonghong.zhu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch V2] DEC spec: Add flexible PCD value format into spec X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Mar 2018 14:14:53 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Liming Gao >-----Original Message----- >From: Zhu, Yonghong >Sent: Wednesday, February 07, 2018 8:36 PM >To: edk2-devel@lists.01.org >Cc: Gao, Liming ; Kinney, Michael D >; Shaw, Kevin W >Subject: [Patch V2] DEC spec: Add flexible PCD value format into spec > >V2: update EBNF for Array format. > >Cc: Liming Gao >Cc: Michael Kinney >Cc: Kevin W Shaw >Contributed-under: TianoCore Contribution Agreement 1.1 >Signed-off-by: Yonghong Zhu >--- > 3_edk_ii_dec_file_format/310_pcd_sections.md | 14 ++-- > .../32_package_declaration_dec_definitions.md | 74 >++++++++++++++++++---- > 2 files changed, 67 insertions(+), 21 deletions(-) > >diff --git a/3_edk_ii_dec_file_format/310_pcd_sections.md >b/3_edk_ii_dec_file_format/310_pcd_sections.md >index 488f17f..36c32ff 100644 >--- a/3_edk_ii_dec_file_format/310_pcd_sections.md >+++ b/3_edk_ii_dec_file_format/310_pcd_sections.md >@@ -113,24 +113,24 @@ PCDs listed in `PcdsFeatureFlag` sections must only >be listed in > [ ] > [] > ::=3D {} {} {} > ::=3D {} {} {} {} > ::=3D >- ::=3D "BOOLEAN" >+ ::=3D "BOOLEAN" > ::=3D {} {} > ::=3D >- ::=3D "UINT8" >+ ::=3D {} {} "UINT8" > ::=3D >- ::=3D "UINT16" >+ ::=3D {} {} "UINT16" > ::=3D >- ::=3D "UINT32" >+ ::=3D {} {} "UINT32" > ::=3D >- ::=3D "UINT64" >+ ::=3D {} {} "UINT64" > ::=3D > ::=3D "VOID*" >- ::=3D {} {} >- ::=3D >+ ::=3D {} {} >+ ::=3D {} {} > ::=3D {+} {} {+} > ::=3D "#" "@Prompt > ::=3D "#" "@ValidRange" > ::=3D [ ] > ::=3D "#" "@ValidList" >diff --git >a/3_edk_ii_dec_file_format/32_package_declaration_dec_definitions.md >b/3_edk_ii_dec_file_format/32_package_declaration_dec_definitions.md >index 8e473f2..c701603 100644 >--- a/3_edk_ii_dec_file_format/32_package_declaration_dec_definitions.md >+++ >b/3_edk_ii_dec_file_format/32_package_declaration_dec_definitions.md >@@ -86,15 +86,16 @@ DEC file (for example, `` statements are >not permitted). > ::=3D (0-9) > ::=3D (a-zA-Z_) > ::=3D * > ::=3D # A valid C variable name. > ::=3D (0x21 - 0x7E) >- ::=3D [{0x21} {(0x23 - 0x5B)} {(0x5D - 0x7E)} >- {}]* >+ ::=3D [{0x21} {(0x23 - 0x26)} {(0x28 - 0x5B)} >+ {(0x5D - 0x7E)} {}]* > ::=3D 0x22 >+ ::=3D 0x27 > ::=3D "\" {"n"} {"t"} {"f"} {"r"} {"b"} {"0"} {"\"} >- {} >+ {} {} > ::=3D {} {} > ::=3D * > ::=3D + > ::=3D 0x09 > ::=3D 0x20 >@@ -112,15 +113,16 @@ DEC file (for example, `` statements are >not permitted). > ::=3D [ * * ]* > ::=3D > ::=3D > ::=3D {} {} > ::=3D * >- ::=3D ["L"] >+ ::=3D * >+ ::=3D {} {} > ::=3D [{} {}]+ > ::=3D "#" [ ] + > ::=3D "#" + >- ::=3D "L" >+ ::=3D "L" {} {} > ::=3D (a-fA-F0-9) > ::=3D {"0x"} {"0X"} [] > ::=3D {"0x"} {"0X"} + > ::=3D "0x" [0]* > ::=3D ? ? ? >@@ -157,11 +159,12 @@ DEC file (for example, `` statements are >not permitted). > ::=3D {} {} > ::=3D {"TRUE"} {"true"} {"True"} {"0x1"} > {"0x01"} {"1"} > ::=3D {"FALSE"} {"false"} {"False"} {"0x0"} > {"0x00"} {"0"} >- ::=3D {} {} >+ ::=3D {} {} >+ ::=3D {} {"{""}"} > ::=3D (A-Z)(A-Z0-9_)* > ::=3D "$(" ")" > ::=3D "." > ::=3D > ::=3D >@@ -182,14 +185,49 @@ DEC file (for example, `` statements are >not permitted). > > ::=3D (0-255) > ::=3D (0-65535) > ::=3D (0-4294967295) > ::=3D (0-18446744073709551615) >- ::=3D {} {} >- ::=3D {} {} >- ::=3D {} {} >- ::=3D {} {} >+ ::=3D {} {} {} >+ {} {} >+ ::=3D {} {} {} >+ {} {} >+ ::=3D {} {} {} >+ {} {} >+ ::=3D {} {} {} >+ {} {} >+ ::=3D {} {"{""}"} >+ ::=3D {} >+ {"{" [ ]*"}"} >+ ::=3D {} >+ {"{" [ ]*"}"} >+ ::=3D {} >+ {"{" [ ]*"}"} >+ ::=3D {} {} {} >+ ::=3D "{" {} {[] >+ [ [] ]* } "}" >+ ::=3D {} {} {} >+ ::=3D {}{} {} >+ {} {} >+ ::=3D {} {} {} >+ ::=3D {} {} {} >+ ::=3D {} {} {} >+ ::=3D {} {} {} >+ ::=3D "GUID(" ")" >+ ::=3D { } >+ {} {} >+ ::=3D "DEVICE_PATH(" ")" >+ ::=3D A double quoted string that follow the device= path >+ as string format defined in UEFI Specification = 2.6 >+ Section 9.6 >+ ::=3D {} {} {} >{} >+ ::=3D "UINT8(" ")" >+ ::=3D "UINT16(" ")" >+ ::=3D "UINT32(" ")" >+ ::=3D "UINT64(" ")" >+ ::=3D "LABEL(" ")" >+ ::=3D "OFFSET_OF(" ")" > ::=3D {"BASE"} {"SEC"} {"PEI_CORE"} {"PEIM"} > {"DXE_CORE"} {"DXE_DRIVER"} {"SMM_CORE"} > {"DXE_RUNTIME_DRIVER"} {"DXE_SAL_DRIVER"} > {"DXE_SMM_DRIVER"} {"UEFI_DRIVER"} > {"UEFI_APPLICATION"} {"USER_DEFINED"} >@@ -200,10 +238,18 @@ DEC file (for example, `` statements are >not permitted). > ::=3D (a-zA-Z)(a-zA-Z0-9)* > ::=3D {"IA32"} {"X64"} {"IPF"} {"EBC"} {} > ``` > > ********** >+**Note:** When using CString, UnicodeString or byte array format as >+UINT8/UINT16/UINT32/UINT64 values, please make sure they fit in the >+target type's size, otherwise tool would report failure. >+********** >+**Note:** LABEL() macro in byte arrays to tag the byte offset of a >+location in a byte array. OFFSET_OF() macro in byte arrays that returns >+the byte offset of a LABEL() declared in a byte array. >+********** > **Note:** When using the characters "|" or "||" in an expression, the > expression must be encapsulated in open "(" and close ")" parenthesis. > ********** > **Note:** Comments may appear anywhere within a DEC file, provided they >follow > the rules that a comment may not be enclosed within Section headers, and >that >@@ -233,14 +279,14 @@ must cause a build break. > ********** > > **_UnicodeString_** > > When the `` element (these characters are string literals = as >-defined by the C99 specification: L"string", not actual Unicode character= s) is >-included in a value, the build tools may be required to expand the ASCII = string >-between the quotation marks into a valid UCS-2 character format string. T= he >-build tools parser must treat all content between the field separators >+defined by the C99 specification: L"string"/L'string', not actual Unicode >+characters) is included in a value, the build tools may be required to ex= pand >+the ASCII string between the quotation marks into a valid UCS-2 character >format >+string. The build tools parser must treat all content between the field >separators > (excluding white space characters around the field separators) as ASCII l= iteral > content when generating the AutoGen.c and AutoGen.h files. > > **_Comments_** > >-- >2.6.1.windows.1