public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD
@ 2018-12-05  3:59 Liming Gao
  2018-12-05  3:59 ` [Patch] edk2 Dscspec: Add the syntax to initialize structure PCD with C style value Liming Gao
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Liming Gao @ 2018-12-05  3:59 UTC (permalink / raw)
  To: edk2-devel

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



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Patch] edk2 Dscspec: Add the syntax to initialize structure PCD with C style value
  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 ` Liming Gao
  2018-12-05  3:59 ` [Patch] ModuleWriteGuide: Add notes to define library instance module type Liming Gao
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Liming Gao @ 2018-12-05  3:59 UTC (permalink / raw)
  To: edk2-devel

https://bugzilla.tianocore.org/show_bug.cgi?id=1292

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_dsc_file_format/33_platform_dsc_definition.md | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/3_edk_ii_dsc_file_format/33_platform_dsc_definition.md b/3_edk_ii_dsc_file_format/33_platform_dsc_definition.md
index 0ff9d9d..4c7fa99 100644
--- a/3_edk_ii_dsc_file_format/33_platform_dsc_definition.md
+++ b/3_edk_ii_dsc_file_format/33_platform_dsc_definition.md
@@ -239,10 +239,11 @@ The following are common definitions used by multiple section types.
 <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>}
 <GuidStr>              ::= "GUID(" <GuidVal> ")"
+<CodeStr>              ::= "CODE(" <CData> ")"
 <GuidVal>              ::= {<DblQuote> <RegistryFormatGUID> <DblQuote>}
                            {<CFormatGUID>} {<CName>}
 <DevicePath>           ::= "DEVICE_PATH(" <DevicePathStr> ")"
@@ -345,6 +346,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 must be used for all EDK II
-- 
2.13.0.windows.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Patch] ModuleWriteGuide: Add notes to define library instance module type
  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 ` Liming Gao
  2018-12-10  1:10   ` Bi, Dandan
  2018-12-05  3:59 ` [Patch] Update edk2-stable201903 tag planning with Remove DuetPkg Liming Gao
  2018-12-18 10:08 ` [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD Feng, Bob C
  3 siblings, 1 reply; 7+ messages in thread
From: Liming Gao @ 2018-12-05  3:59 UTC (permalink / raw)
  To: edk2-devel; +Cc: Bi Dandan

https://bugzilla.tianocore.org/show_bug.cgi?id=834
If the library instance supports the cross module types PEIM, UEFI_DIRVER,
DXE_DRIVER. Its module type can be PEIM or UEFI_DRIVER or DXE_DRIVER.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Cc: Bi Dandan <dandan.bi@intel.com>
---
 3_module_development/31_what_is_an_edk_ii_module.md | 2 ++
 3_module_development/32_creating_a_module.md        | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/3_module_development/31_what_is_an_edk_ii_module.md b/3_module_development/31_what_is_an_edk_ii_module.md
index ace8d53..9f0fe8d 100644
--- a/3_module_development/31_what_is_an_edk_ii_module.md
+++ b/3_module_development/31_what_is_an_edk_ii_module.md
@@ -78,6 +78,8 @@ EDK II defines many module types. The module type is used to:
   example, a PEIM/DXE_DRIVER type module can have "depex" section in .efi
   binary image; a UEFI_DRIVER can have .ui or .ver section in .efi binary image;
 
+* Indicate EntryPoint() or Constructor() API for different types of modules.
+
 * Indicate the suitable library instance for different types of modules. A
   library instance will point out what module types are supported in INF file.
 
diff --git a/3_module_development/32_creating_a_module.md b/3_module_development/32_creating_a_module.md
index 65a4ac7..325156f 100644
--- a/3_module_development/32_creating_a_module.md
+++ b/3_module_development/32_creating_a_module.md
@@ -197,6 +197,11 @@ instance:
   DebugLib
 ```
 
+Note: if the library supports the cross module types PEIM, UEFI_DIRVER, DXE_DRIVER.
+Its module type can be PEIM or UEFI_DRIVER or DXE_DRIVER. If it has the library
+constructor, its module type must be BASE. BASE type library constructor has no 
+the input parameter that can link to the cross driver types.
+
 ### 3.2.3 Adding a Package Dependency
 
 The [Packages] section of the INF file describes all packages dependencies of
-- 
2.13.0.windows.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Patch] Update edk2-stable201903 tag planning with Remove DuetPkg
  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-05  3:59 ` Liming Gao
  2018-12-18 10:08 ` [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD Feng, Bob C
  3 siblings, 0 replies; 7+ messages in thread
From: Liming Gao @ 2018-12-05  3:59 UTC (permalink / raw)
  To: edk2-devel

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
---
 EDK-II-Release-Planning.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/EDK-II-Release-Planning.md b/EDK-II-Release-Planning.md
index f70ca5a..23011fa 100644
--- a/EDK-II-Release-Planning.md
+++ b/EDK-II-Release-Planning.md
@@ -42,6 +42,7 @@
 * [Remove EdkShellBinPkg from edk2/master](https://bugzilla.tianocore.org/show_bug.cgi?id=1108)
 * [BaseTools: Support Array and C code style initialization in Structure PCD](https://bugzilla.tianocore.org/show_bug.cgi?id=1292)
 * [Merge EmuVariable and Real variable driver](https://bugzilla.tianocore.org/show_bug.cgi?id=1323)
+* [Remove DuetPkg](https://bugzilla.tianocore.org/show_bug.cgi?id=1322)
 * TBD Bugzilla List
 
 ---
-- 
2.13.0.windows.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Patch] ModuleWriteGuide: Add notes to define library instance module type
  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
  0 siblings, 1 reply; 7+ messages in thread
From: Bi, Dandan @ 2018-12-10  1:10 UTC (permalink / raw)
  To: Gao, Liming, edk2-devel@lists.01.org

Hi Liming,

Some minor comments inline.

Thanks,
Dandan

> -----Original Message-----
> From: Gao, Liming
> Sent: Wednesday, December 5, 2018 11:59 AM
> To: edk2-devel@lists.01.org
> Cc: Bi, Dandan <dandan.bi@intel.com>
> Subject: [Patch] ModuleWriteGuide: Add notes to define library instance
> module type
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=834
> If the library instance supports the cross module types PEIM, UEFI_DIRVER,
> DXE_DRIVER. Its module type can be PEIM or UEFI_DRIVER or DXE_DRIVER.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Liming Gao <liming.gao@intel.com>
> Cc: Bi Dandan <dandan.bi@intel.com>
> ---
>  3_module_development/31_what_is_an_edk_ii_module.md | 2 ++
>  3_module_development/32_creating_a_module.md        | 5 +++++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/3_module_development/31_what_is_an_edk_ii_module.md
> b/3_module_development/31_what_is_an_edk_ii_module.md
> index ace8d53..9f0fe8d 100644
> --- a/3_module_development/31_what_is_an_edk_ii_module.md
> +++ b/3_module_development/31_what_is_an_edk_ii_module.md
> @@ -78,6 +78,8 @@ EDK II defines many module types. The module type is
> used to:
>    example, a PEIM/DXE_DRIVER type module can have "depex" section in .efi
>    binary image; a UEFI_DRIVER can have .ui or .ver section in .efi binary image;
> 
> +* Indicate EntryPoint() or Constructor() API for different types of modules.
How about  "Indicate different prototypes of EntryPoint() or Constructor() API for different types of modules"?
> +
>  * Indicate the suitable library instance for different types of modules. A
>    library instance will point out what module types are supported in INF file.
> 
> diff --git a/3_module_development/32_creating_a_module.md
> b/3_module_development/32_creating_a_module.md
> index 65a4ac7..325156f 100644
> --- a/3_module_development/32_creating_a_module.md
> +++ b/3_module_development/32_creating_a_module.md
> @@ -197,6 +197,11 @@ instance:
>    DebugLib
>  ```
> 
> +Note: if the library supports the cross module types PEIM, UEFI_DIRVER,
> DXE_DRIVER.
> +Its module type can be PEIM or UEFI_DRIVER or DXE_DRIVER. If it has the
> +library constructor, its module type must be BASE. BASE type library
> +constructor has no the input parameter that can link to the cross driver
> types.
How about "BASE type library constructor has no input parameter that can be linked to any type of cross driver"?

If  you agree the updates, please update them before commit, not require V2 patch.
> +
>  ### 3.2.3 Adding a Package Dependency
> 
>  The [Packages] section of the INF file describes all packages dependencies of
> --
> 2.13.0.windows.1



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Patch] ModuleWriteGuide: Add notes to define library instance module type
  2018-12-10  1:10   ` Bi, Dandan
@ 2018-12-10  1:44     ` Gao, Liming
  0 siblings, 0 replies; 7+ messages in thread
From: Gao, Liming @ 2018-12-10  1:44 UTC (permalink / raw)
  To: Bi, Dandan, edk2-devel@lists.01.org

Thank you. I will update it and push the change. 

>-----Original Message-----
>From: Bi, Dandan
>Sent: Monday, December 10, 2018 9:10 AM
>To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org
>Subject: RE: [Patch] ModuleWriteGuide: Add notes to define library instance
>module type
>
>Hi Liming,
>
>Some minor comments inline.
>
>Thanks,
>Dandan
>
>> -----Original Message-----
>> From: Gao, Liming
>> Sent: Wednesday, December 5, 2018 11:59 AM
>> To: edk2-devel@lists.01.org
>> Cc: Bi, Dandan <dandan.bi@intel.com>
>> Subject: [Patch] ModuleWriteGuide: Add notes to define library instance
>> module type
>>
>> https://bugzilla.tianocore.org/show_bug.cgi?id=834
>> If the library instance supports the cross module types PEIM, UEFI_DIRVER,
>> DXE_DRIVER. Its module type can be PEIM or UEFI_DRIVER or DXE_DRIVER.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Liming Gao <liming.gao@intel.com>
>> Cc: Bi Dandan <dandan.bi@intel.com>
>> ---
>>  3_module_development/31_what_is_an_edk_ii_module.md | 2 ++
>>  3_module_development/32_creating_a_module.md        | 5 +++++
>>  2 files changed, 7 insertions(+)
>>
>> diff --git a/3_module_development/31_what_is_an_edk_ii_module.md
>> b/3_module_development/31_what_is_an_edk_ii_module.md
>> index ace8d53..9f0fe8d 100644
>> --- a/3_module_development/31_what_is_an_edk_ii_module.md
>> +++ b/3_module_development/31_what_is_an_edk_ii_module.md
>> @@ -78,6 +78,8 @@ EDK II defines many module types. The module type is
>> used to:
>>    example, a PEIM/DXE_DRIVER type module can have "depex" section
>in .efi
>>    binary image; a UEFI_DRIVER can have .ui or .ver section in .efi binary
>image;
>>
>> +* Indicate EntryPoint() or Constructor() API for different types of modules.
>How about  "Indicate different prototypes of EntryPoint() or Constructor() API
>for different types of modules"?
>> +
>>  * Indicate the suitable library instance for different types of modules. A
>>    library instance will point out what module types are supported in INF file.
>>
>> diff --git a/3_module_development/32_creating_a_module.md
>> b/3_module_development/32_creating_a_module.md
>> index 65a4ac7..325156f 100644
>> --- a/3_module_development/32_creating_a_module.md
>> +++ b/3_module_development/32_creating_a_module.md
>> @@ -197,6 +197,11 @@ instance:
>>    DebugLib
>>  ```
>>
>> +Note: if the library supports the cross module types PEIM, UEFI_DIRVER,
>> DXE_DRIVER.
>> +Its module type can be PEIM or UEFI_DRIVER or DXE_DRIVER. If it has the
>> +library constructor, its module type must be BASE. BASE type library
>> +constructor has no the input parameter that can link to the cross driver
>> types.
>How about "BASE type library constructor has no input parameter that can be
>linked to any type of cross driver"?
>
>If  you agree the updates, please update them before commit, not require V2
>patch.
>> +
>>  ### 3.2.3 Adding a Package Dependency
>>
>>  The [Packages] section of the INF file describes all packages dependencies
>of
>> --
>> 2.13.0.windows.1



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD
  2018-12-05  3:59 [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD Liming Gao
                   ` (2 preceding siblings ...)
  2018-12-05  3:59 ` [Patch] Update edk2-stable201903 tag planning with Remove DuetPkg Liming Gao
@ 2018-12-18 10:08 ` Feng, Bob C
  3 siblings, 0 replies; 7+ messages in thread
From: Feng, Bob C @ 2018-12-18 10:08 UTC (permalink / raw)
  To: Gao, Liming, edk2-devel@lists.01.org

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



^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-12-18 10:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [Patch] edk2 DecSpec: Support the syntax of the structure array for structure PCD Feng, Bob C

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox