public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Feng, Bob C" <bob.c.feng@intel.com>
To: "Gao, Liming" <liming.gao@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD
Date: Tue, 18 Dec 2018 10:08:21 +0000	[thread overview]
Message-ID: <08650203BA1BD64D8AD9B6D5D74A85D160030417@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <1543982345-13708-1-git-send-email-liming.gao@intel.com>

Hi Liming,

<CArrayName>          ::= <Identifier>"["<Number>"]" # A valid C variable array name.

We support multiple dimension array but this format is for one dimension array. Would you please update this ?

Thanks,
Bob

-----Original Message-----
From: Gao, Liming 
Sent: Wednesday, December 5, 2018 11:59 AM
To: edk2-devel@lists.01.org
Cc: Feng, Bob C <bob.c.feng@intel.com>
Subject: [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD

https://bugzilla.tianocore.org/show_bug.cgi?id=1292
1. Support the syntax of the structure array for structure PCD 2. Add the syntax to initialize structure PCD with C style value

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
---
 3_edk_ii_dec_file_format/310_pcd_sections.md                     | 2 +-
 .../32_package_declaration_dec_definitions.md                    | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 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 42beee9..2711788 100644
--- a/3_edk_ii_dec_file_format/310_pcd_sections.md
+++ b/3_edk_ii_dec_file_format/310_pcd_sections.md
@@ -125,7 +125,7 @@ PCDs listed in `PcdsFeatureFlag` sections must only be listed in
 <PcdUint32>       ::= {<NumValUint32>} {<Expression>} <FS> "UINT32"
 <Pcd64>           ::= <PcdName> <FS> <PcdUint64> <FS> <Token> <CbOrEol>
 <PcdUint64>       ::= {<NumValUint64>} {<Expression>} <FS> "UINT64"
-<PcdStruct>       ::= <PcdName> <FS> <PtrVal> <FS> <CName> <FS> <Token> "{" <EOL>
+<PcdStruct>       ::= <PcdName> <FS> <PtrVal> <FS> {<CName>} {<CArrayName>} <FS> <Token> "{" <EOL>
                       <TS> <PcdStructHF>
                       <TS> <PcdStructPKGs> "}" <CbOrEol>
 <PcdStructHF>     ::= "<HeaderFile>" <EOL> <PcdStructFile>
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 a3120f3..bc794fe 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
@@ -87,6 +87,7 @@ DEC file (for example, `<Expression>` statements are not permitted).
 <NonDigit>            ::= (a-zA-Z_)
 <Identifier>          ::= <NonDigit> <Chars>*
 <CName>               ::= <Identifier> # A valid C variable name.
+<CArrayName>          ::= <Identifier>"["<Number>"]" # A valid C variable array name.
 <AsciiChars>          ::= (0x21 - 0x7E)
 <CChars>              ::= [{0x21} {(0x23 - 0x26)} {(0x28 - 0x5B)}
                           {(0x5D - 0x7E)} {<EscapeSequence>}]* @@ -208,7 +209,7 @@ DEC file (for example, `<Expression>` statements are not permitted).
 <StringVal>           ::= {<UnicodeString>} {<CString>} {<Array>}
 <Array>               ::= "{" {<Array>} {[<Lable>] <ArrayVal> 
                            [<CommaSpace> [<Lable>] <ArrayVal>]* } "}"
-<ArrayVal>            ::= {<Num8Array>} {<GuidStr>} {<DevicePath>} 
+<ArrayVal>            ::= {<Num8Array>} {<GuidStr>} {<DevicePath>} {<CodeStr>}
 <NonNumType>          ::= {<BoolVal>}{<UnicodeString>} {<CString>}
                           {<Offset>} {<UintMac>}
 <Num8Array>           ::= {<NonNumType>} {<ShortNum>} {<UINT8>}
@@ -216,6 +217,7 @@ DEC file (for example, `<Expression>` statements are not permitted).
 <Num32Array>          ::= {<NonNumType>} {<LongNum>} {<UINT32>}
 <Num64Array>          ::= {<NonNumType>} {<LongLongNum>} {<UINT64>}
 <GuidStr>             ::= "GUID(" <GuidVal> ")"
+<CodeStr>             ::= "CODE(" <CData> ")"
 <GuidVal>             ::= {<DblQuote> <RegistryFormatGUID> <DblQuote>}
                           {<CFormatGUID>} {<CName>}
 <DevicePath>          ::= "DEVICE_PATH(" <DevicePathStr> ")"
@@ -326,6 +328,11 @@ All C data arrays used in PCD value fields must be byte arrays. The C format  GUID style is a special case that is permitted in some fields that use the  `<CArray>` nomenclature.
 
+**_CData_**
+
+All C data used in PCD value CODE syntax can be C style value to 
+initialize C structure or Array in C source code.
+
 **_EOL_**
 
 The DOS End Of Line: "0x0D 0x0A" character sequence must be used for all EDK II
--
2.13.0.windows.1



      parent reply	other threads:[~2018-12-18 10:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-05  3:59 [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD Liming Gao
2018-12-05  3:59 ` [Patch] edk2 Dscspec: Add the syntax to initialize structure PCD with C style value Liming Gao
2018-12-05  3:59 ` [Patch] ModuleWriteGuide: Add notes to define library instance module type Liming Gao
2018-12-10  1:10   ` Bi, Dandan
2018-12-10  1:44     ` Gao, Liming
2018-12-05  3:59 ` [Patch] Update edk2-stable201903 tag planning with Remove DuetPkg Liming Gao
2018-12-18 10:08 ` Feng, Bob C [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=08650203BA1BD64D8AD9B6D5D74A85D160030417@SHSMSX101.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox