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
prev 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