public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package
@ 2017-04-25  1:10 Michael Kinney
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 1/4] Remove trailing spaces from README.MD Michael Kinney
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Michael Kinney @ 2017-04-25  1:10 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

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

GitHub word diff view of the patches in this series

* [1/4] https://github.com/mdkinney/edk2-DecSpecification/commit/24a07ae89ef0467c9009633d19d24bb1ba2e115a?w=1
* [2/4] https://github.com/mdkinney/edk2-DecSpecification/commit/65f49d1d86439b6144ff82217349a5145ec42ef0?w=1
* [3/4] https://github.com/mdkinney/edk2-DecSpecification/commit/a28fd82b07521fc7412be75b159a44a0dd3bf1b1?w=1
* [4/4] https://github.com/mdkinney/edk2-DecSpecification/commit/c04e668af9e1aa8c8e49d73fede6df7287b7d454?w=1

Remove trailing spaces from README.md 

Update DEC_SPECIFCATION to 0x0001001A / 1.26 

Add new syntax to the DEC file for specifying
information that can only be used by modules
within the package. When modules outside the
packages attempt to use this content, the EDK
II build system must break with an error
regarding content not found.

The four sections, Includes, Ppis, Guids and
Protocols headers will be modified with a keyword,
Private following the architecture modifier. If
Private is not present, then the content is usable
by modules outside the package.

Clarify restriction that an element is not allowed
to be declared with and without Private modifier.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>


Michael Kinney (4):
  Remove trailing spaces from README.MD
  Update version from 1.25 to 1.26
  Add support for Private declarations in a package
  Declarations not allowed to be both public and private

 2_dec_file_overview/24_[defines]_usage.md          |   2 +-
 2_dec_file_overview/25_[includes]_usage.md         |  24 ++-
 2_dec_file_overview/26_[guids]_usage.md            |  22 ++-
 2_dec_file_overview/27_[protocols]_usage.md        |  24 ++-
 2_dec_file_overview/28_[ppis]_usage.md             |  24 ++-
 3_edk_ii_dec_file_format/34_[defines]_section.md   |  28 ++-
 3_edk_ii_dec_file_format/35_[includes]_sections.md |  30 ++-
 3_edk_ii_dec_file_format/36_[guids]_sections.md    |  29 ++-
 .../37_[protocols]_sections.md                     |  29 ++-
 3_edk_ii_dec_file_format/38_[ppis]_sections.md     |  29 ++-
 README.md                                          | 211 +++++++++++----------
 11 files changed, 329 insertions(+), 123 deletions(-)

-- 
2.6.3.windows.1



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

* [ edk2-DecSpecification PATCH 1/4] Remove trailing spaces from README.MD
  2017-04-25  1:10 [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Michael Kinney
@ 2017-04-25  1:10 ` Michael Kinney
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 2/4] Update version from 1.25 to 1.26 Michael Kinney
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Michael Kinney @ 2017-04-25  1:10 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 README.md | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/README.md b/README.md
index b69a091..8f37a7e 100644
--- a/README.md
+++ b/README.md
@@ -29,24 +29,24 @@
 
 -->
 
-<img src="media/TianocoreTitlePageLogo.jpg" width="300" />
+<img src="media/TianocoreTitlePageLogo.jpg" width="300" />
 
-### {{ book.title }}
+### {{ book.title }}
 
-{% if book.draft %}
-** DRAFT FOR REVIEW **
-{% else %}
-** {{ book.version }} **
-{% endif %}
+{% if book.draft %}
+** DRAFT FOR REVIEW **
+{% else %}
+** {{ book.version }} **
+{% endif %}
 
-** {{ gitbook.time|date('MM/DD/YYYY hh:mm:ss') }} **
-
-{% if book.udkrelease %}
-** {{ book.udkrelease }} **
-{% endif %}
+** {{ gitbook.time|date('MM/DD/YYYY hh:mm:ss') }} **
 
+{% if book.udkrelease %}
+** {{ book.udkrelease }} **
+{% endif %}
 
-### Acknowledgements
+
+### Acknowledgements
 
 Redistribution and use in source (original document form) and 'compiled'
 forms (converted to PDF, epub, HTML and other formats) with or without
@@ -74,7 +74,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 Copyright (c) 2007-2017, Intel Corporation. All rights reserved.
 
-### Revision History
+### Revision History
 
 | Revision   | Revision History                                                                                                          | Date            |
 | ---------- | ------------------------------------------------------------------------------------------------------------------------- | --------------- |
-- 
2.6.3.windows.1



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

* [ edk2-DecSpecification PATCH 2/4] Update version from 1.25 to 1.26
  2017-04-25  1:10 [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Michael Kinney
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 1/4] Remove trailing spaces from README.MD Michael Kinney
@ 2017-04-25  1:10 ` Michael Kinney
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 3/4] Add support for Private declarations in a package Michael Kinney
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Michael Kinney @ 2017-04-25  1:10 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 2_dec_file_overview/24_[defines]_usage.md        |  2 +-
 3_edk_ii_dec_file_format/34_[defines]_section.md | 28 ++++++++++++++++--------
 README.md                                        |  3 ++-
 3 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/2_dec_file_overview/24_[defines]_usage.md b/2_dec_file_overview/24_[defines]_usage.md
index 3729902..fe97c25 100644
--- a/2_dec_file_overview/24_[defines]_usage.md
+++ b/2_dec_file_overview/24_[defines]_usage.md
@@ -66,7 +66,7 @@ The following is an example of this section.
 
 ```ini
 [Defines]
-  DEC_SPECIFICATION = 0x00010019
+  DEC_SPECIFICATION = 0x0001001A
   PACKAGE_NAME      = MdePkg
   PACKAGE_GUID      = 1E73767F-8F52-4603-AEB4-F29B510B6766
   PACKAGE_VERSION   = 1.02
diff --git a/3_edk_ii_dec_file_format/34_[defines]_section.md b/3_edk_ii_dec_file_format/34_[defines]_section.md
index f84db5f..d249ab7 100644
--- a/3_edk_ii_dec_file_format/34_[defines]_section.md
+++ b/3_edk_ii_dec_file_format/34_[defines]_section.md
@@ -40,9 +40,9 @@ This file is created during installation of a UEFI distribution package or by
 the developer and is an input to the EDK II build tool parsing utilities.
 Elements may appear in any order within this section.
 
-The code for this specification is `"00010019`" and new versions of this
-specification must increment the minor (0019) portion of the specification
-code. This value may also be specified as a decimal value, 1.25.
+The code for this specification is `"0001001A`" and new versions of this
+specification must increment the minor (001A) portion of the specification
+code. This value may also be specified as a decimal value, 1.26.
 
 Existing DEC files are not required to update the `DEC_SPECIFICATION` version
 value. This value may be used by tools to identify any new functionality
@@ -83,11 +83,11 @@ characters are not permitted.
 
 **_SpecVer_**
 
-For new DEC files, the version value must be set to 0x00010019 Tools that
+For new DEC files, the version value must be set to 0x0001001A Tools that
 process this version of the DEC file can successfully process earlier versions
 of the DEC file (this is a backward compatible update). There is no requirement
 to change the value in existing DEC files if no other content changes. This may
-also be specified as decimal value, 1.25.
+also be specified as decimal value, 1.26.
 
 **_Filename_**
 
@@ -97,13 +97,23 @@ permitted. Use of an absolute path is not permitted. The file name specified in
 the `PACKAGE_UNI_FILE` entry must be a Unicode file with an extension of .uni, .UNI
 or .Uni.
 
-#### Example
+#### Example 1
 
 ```ini
 [DEFINES]
-  DEC_SPECIFICATION = 0x00010019
+  DEC_SPECIFICATION = 0x0001001A
   PACKAGE_NAME      = MdePkg
-  PACKAGE_GUID      = 5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec
-  PACKAGE_VERSION   = 0.3
+  PACKAGE_GUID      = 1E73767F-8F52-4603-AEB4-F29B510B6766
+  PACKAGE_VERSION   = 1.06
   PACKAGE_UNI_FILE  = MdePkg.uni
 ```
+
+#### Example 2
+
+```ini
+[DEFINES]
+  DEC_SPECIFICATION = 1.26
+  PACKAGE_NAME      = IntelFspPkg
+  PACKAGE_GUID      = 444C6CDF-55BD-4744-8F74-AE98B003B955
+  PACKAGE_VERSION   = 0.1
+```
diff --git a/README.md b/README.md
index 8f37a7e..b489cb1 100644
--- a/README.md
+++ b/README.md
@@ -164,4 +164,5 @@ Copyright (c) 2007-2017, Intel Corporation. All rights reserved.
 |            | packages located outside of the WORKSPACE directory tree (refer to                                                        |                 |
 |            | the TianoCore.org EDKII website for additional instructions on setting                                                    |                 |
 |            | up a development environment).                                                                                            |                 |
-| 1.26       | Reformat for GitBook                                                                                                      | March 2017      |
+| 1.26       | Reformat for GitBook                                                                                                      | April 2017      |
+|            | Updated `DEC_SPECIFICATION` to `0x0001001A` or `1.26`                                                                     |                 |
-- 
2.6.3.windows.1



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

* [ edk2-DecSpecification PATCH 3/4] Add support for Private declarations in a package
  2017-04-25  1:10 [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Michael Kinney
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 1/4] Remove trailing spaces from README.MD Michael Kinney
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 2/4] Update version from 1.25 to 1.26 Michael Kinney
@ 2017-04-25  1:10 ` Michael Kinney
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 4/4] Declarations not allowed to be both public and private Michael Kinney
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Michael Kinney @ 2017-04-25  1:10 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

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

Add new syntax to the DEC file for specifying
information that can only be used by modules
within the package. When modules outside the
packages attempt to use this content, the EDK
II build system must break with an error
regarding content not found.

The four sections, Includes, Ppis, Guids and
Protocols headers will be modified with a keyword,
Private following the architecture modifier. If
Private is not present, then the content is usable
by modules outside the package.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 2_dec_file_overview/25_[includes]_usage.md         | 24 +++++++++++++++++++++-
 2_dec_file_overview/26_[guids]_usage.md            | 22 ++++++++++++++++++--
 2_dec_file_overview/27_[protocols]_usage.md        | 24 +++++++++++++++++++++-
 2_dec_file_overview/28_[ppis]_usage.md             | 24 +++++++++++++++++++++-
 3_edk_ii_dec_file_format/35_[includes]_sections.md | 14 ++++++++++++-
 3_edk_ii_dec_file_format/36_[guids]_sections.md    | 14 ++++++++++++-
 .../37_[protocols]_sections.md                     | 14 ++++++++++++-
 3_edk_ii_dec_file_format/38_[ppis]_sections.md     | 14 ++++++++++++-
 README.md                                          |  1 +
 9 files changed, 142 insertions(+), 9 deletions(-)

diff --git a/2_dec_file_overview/25_[includes]_usage.md b/2_dec_file_overview/25_[includes]_usage.md
index b61eb98..17feb57 100644
--- a/2_dec_file_overview/25_[includes]_usage.md
+++ b/2_dec_file_overview/25_[includes]_usage.md
@@ -48,23 +48,45 @@ Also included in this section are the directories containing headers that may
 be required for individual EDK II module types. Refer to Appendix, "EDK II
 Module Types", for a list of the valid types.
 
+The section tag modifier, `Private`, is used to restrict the EDK II build
+system by preventing references to content in these sections from being used by
+modules outside of the package.
+
 Refer to the `[Includes]` definition later in this document for a complete
 description of this section and its contents.
 
 The `[Includes]` section uses one of the following section definitions:
 
 ```ini
+[Includes]
+
 [Includes.common]
 
+[Includes.common.Private]
+
 [Includes.IA32]
 
+[Includes.IA32.Private]
+
 [Includes.X64]
 
+[Includes.X64.Private]
+
 [Includes.IPF]
 
+[Includes.IPF.Private]
+
 [includes.EBC]
 
-[Includes]
+[includes.EBC.Private]
+```
+
+Architectural sections may also be combined, as in:
+
+```ini
+[Includes.IA32, Includes.X64]
+
+[Includes.IA32.Private, Includes.X64.Private]
 ```
 
 The format for entries in this section is one field, with an optional comment
diff --git a/2_dec_file_overview/26_[guids]_usage.md b/2_dec_file_overview/26_[guids]_usage.md
index 98459cf..f9addf5 100644
--- a/2_dec_file_overview/26_[guids]_usage.md
+++ b/2_dec_file_overview/26_[guids]_usage.md
@@ -35,24 +35,42 @@ This is an optional section.
 
 This section is used to define the GUID Value for Guid C Names.
 
+The section tag modifier, `Private`, is used to restrict the EDK II build
+system by preventing references to content in these sections from being used by
+modules outside of the package.
+
 This section uses one of the following section definitions:
 
 ```ini
 [Guids]
 
+[Guids.common]
+
+[Guids.common.Private]
+
 [Guids.IA32]
 
+[Guids.IA32.Private]
+
 [Guids.X64]
 
+[Guids.X64.Private]
+
 [Guids.IPF]
 
+[Guids.IPF.Private]
+
 [Guids.EBC]
 
-[Guids.common]
+[Guids.EBC.Private]
+```
 
+Architectural sections may also be combined, as in:
+
+```ini
 [Guids.IA32, Guids.X64]
 
-[Guids.X64, Guids.IPF]
+[Guids.IA32.Private, Guids.X64.Private]
 ```
 
 Format for the entries in this section is two fields with an equal "="
diff --git a/2_dec_file_overview/27_[protocols]_usage.md b/2_dec_file_overview/27_[protocols]_usage.md
index fb539b2..9f89524 100644
--- a/2_dec_file_overview/27_[protocols]_usage.md
+++ b/2_dec_file_overview/27_[protocols]_usage.md
@@ -35,20 +35,42 @@ This is an optional section.
 
 This section is used to define the GUID Value for Protocol C Names.
 
+The section tag modifier, `Private`, is used to restrict the EDK II build
+system by preventing references to content in these sections from being used by
+modules outside of the package.
+
 This section use ones of the following section definitions:
 
 ```ini
 [Protocols]
 
+[Protocols.common]
+
+[Protocols.common.Private]
+
 [Protocols.IA32]
 
+[Protocols.IA32.Private]
+
 [Protocols.X64]
 
+[Protocols.X64.Private]
+
 [Protocols.IPF]
 
+[Protocols.IPF.Private]
+
 [Protocols.EBC]
 
-[Protocols.common]
+[Protocols.EBC.Private]
+```
+
+Architectural sections may also be combined, as in:
+
+```ini
+[Protocols.IA32, Protocols.X64]
+
+[Protocols.IA32.Private, Protocols.X64.Private]
 ```
 
 Format for the entries in this section is two fields with an equal "="
diff --git a/2_dec_file_overview/28_[ppis]_usage.md b/2_dec_file_overview/28_[ppis]_usage.md
index 578be72..35db7b0 100644
--- a/2_dec_file_overview/28_[ppis]_usage.md
+++ b/2_dec_file_overview/28_[ppis]_usage.md
@@ -35,20 +35,42 @@ This is an optional section.
 
 This section is used to define the GUID Value for PPI C Names.
 
+The section tag modifier, `Private`, is used to restrict the EDK II build
+system by preventing references to content in these sections from being used by
+modules outside of the package.
+
 This section use ones of the following section definitions:
 
 ```ini
 [Ppis]
 
+[Ppis.common]
+
+[Ppis.common.Private]
+
 [Ppis.IA32]
 
+[Ppis.IA32.Private]
+
 [Ppis.X64]
 
+[Ppis.X64.Private]
+
 [Ppis.IPF]
 
+[Ppis.IPF.Private]
+
 [Ppis.EBC]
 
-[Ppis.common]
+[Ppis.EBC.Private]
+```
+
+Architectural sections may also be combined, as in:
+
+```ini
+[Ppis.IA32, Ppis.X64]
+
+[Ppis.IA32.Private, Ppis.X64.Private]
 ```
 
 Format for the entries in this section is two fields with an equal "="
diff --git a/3_edk_ii_dec_file_format/35_[includes]_sections.md b/3_edk_ii_dec_file_format/35_[includes]_sections.md
index 939a175..6fa083c 100644
--- a/3_edk_ii_dec_file_format/35_[includes]_sections.md
+++ b/3_edk_ii_dec_file_format/35_[includes]_sections.md
@@ -58,9 +58,13 @@ other architecture type modifiers; doing so will result in a build break.
 
 ```c
 <Include>      ::= "[Includes" [<com_attribs>] "]" <EOL> <IncEntries>*
-<com_attribs>  ::= {".common"} {<attribs>}
+<com_attribs>  ::= {<Public>} {<Hidden>}
+<Public>       ::= {".common"} {<attribs>}
+<Hidden>       ::= {".common.Private"} {<hattribs>}
 <attribs>      ::= <attrs> ["," <TS> "Includes" <attrs>]*
 <attrs>        ::= "." <arch>
+<hattribs>     ::= <hattrs> ["," <TS> "includes" <hattrs>]*
+<hattrs>       ::= "." <arch> ".Private"
 <IncEntries>   ::= {<MacroDefinition>} {<HdrFile>}
 <HdrFile>      ::= <CommentBlock>*
                    <TS> <PATH>
@@ -84,6 +88,14 @@ specific architecture. It is permissible to specify include directory entries
 under all architectures except `"common`" if different include directories are
 required for different architectures.
 
+It is NOT permissible to mix section tags without the `Private` modifier with
+section tags with the `Private` modifier. If this condition is detected, the
+build tools must terminate with an error message.
+
+For example, `[Includes.common, Includes.IA32.Private]` is prohibited.
+
+#### Example
+
 ```ini
 # Include section - list of Include Paths relative to the DEC file that
 # are provided by this package.
diff --git a/3_edk_ii_dec_file_format/36_[guids]_sections.md b/3_edk_ii_dec_file_format/36_[guids]_sections.md
index 6422300..1d00c9a 100644
--- a/3_edk_ii_dec_file_format/36_[guids]_sections.md
+++ b/3_edk_ii_dec_file_format/36_[guids]_sections.md
@@ -51,9 +51,13 @@ Each GUID entry must be listed only once per section.
 
 ```c
 <Guids>          ::= "[Guids" [<com_attribs>] "]" <EOL> <GuidEntries>*
-<com_attribs>    ::= {".common"} {<attribs>}
+<com_attribs>    ::= {<Public>} {<Hidden>}
+<Public>         ::= {".common"} {<attribs>}
+<Hidden>         ::= {".common.Private"} {<hattribs>}
 <attribs>        ::= <attrs> ["," <TS> "Guids" <attrs>]*
 <attrs>          ::= "." <arch>
+<hattribs>       ::= <hattrs> ["," <TS> "Guids" <hattrs>]*
+<hattrs>         ::= "." <arch> ".Private"
 <GuidEntries>    ::= [<GuidComment>]
                      <TS> <CName> <Eq> <CFormatGUID> {<CommentBlock>} {<EOL>}
 <GuidComment>    ::= [<Description>]
@@ -81,6 +85,14 @@ architecture. It is permissible to specify GUID entries under all architectures
 except `"common`" if different GUID values may be required for different
 architectures.
 
+It is NOT permissible to mix section tags without the `Private` modifier with
+section tags with the `Private` modifier. If this condition is detected, the
+build tools must terminate with an error message.
+
+For example, `[Guids.common, Guids.IA32.Private]` is prohibited.
+
+#### Example
+
 ```ini
 # Global Guid Definition section - list of Global Guid C Name
 # Data Structures that are provided by
diff --git a/3_edk_ii_dec_file_format/37_[protocols]_sections.md b/3_edk_ii_dec_file_format/37_[protocols]_sections.md
index 445939f..a43260c 100644
--- a/3_edk_ii_dec_file_format/37_[protocols]_sections.md
+++ b/3_edk_ii_dec_file_format/37_[protocols]_sections.md
@@ -51,9 +51,13 @@ Each Protocol entry must be listed only once per section.
 
 ```c
 <Protocols>       ::= "[Protocols" [<com_attribs>] "]" <EOL> <ProtocolEntries>*
-<com_attribs>     ::= {".common"} {<attribs>}
+<com_attribs>     ::= {<Public>} {<Hidden>}
+<Public>          ::= {".common"} {<attribs>}
+<Hidden>          ::= {".common.Private"} {<hattribs>}
 <attribs>         ::= <attrs> ["," <TS> "Protocols" <attrs>]8
 <attrs>           ::= "." <arch>
+<hattribs>        ::= <hattrs> ["," <TS> "Protocols" <hattrs>]*
+<hattrs>          ::= "." <arch> ".Private"
 <ProtocolEntries> ::= [<ProtocolComment>]
                       <TS> <CName> <Eq> <CFormatGUID> {<CommentBlock>} {<EOL>}
 <ProtocolComment> ::= [<Description>]
@@ -80,6 +84,14 @@ specific architecture. It is permissible to specify Protocol entries under all
 architectures except `"common`" if different Guid values may be required for
 different architectures.
 
+It is NOT permissible to mix section tags without the `Private` modifier with
+section tags with the `Private` modifier. If this condition is detected, the
+build tools must terminate with an error message.
+
+For example, `[Protocols.common, Protocols.IA32.Private]` is prohibited.
+
+#### Example
+
 ```ini
 # Global Protocols Definition section - list of Global Protocols C Name
 # Data Structures that are provided by
diff --git a/3_edk_ii_dec_file_format/38_[ppis]_sections.md b/3_edk_ii_dec_file_format/38_[ppis]_sections.md
index 9b571c8..87c5f0d 100644
--- a/3_edk_ii_dec_file_format/38_[ppis]_sections.md
+++ b/3_edk_ii_dec_file_format/38_[ppis]_sections.md
@@ -52,9 +52,13 @@ Each PPI entry must be listed only once per section.
 
 ```c
 <Ppis>          ::= "[Ppis" [<com_attribs>] "]" <EOL> <PpiEntries>*
-<com_attribs>   ::= {".common"} {<attribs>}
+<com_attribs>   ::= {<Public>} {<Hidden>}
+<Public>        ::= {".common"} {<attribs>}
+<Hidden>        ::= {".common.Private"} {<hattribs>}
 <attribs>       ::= <attrs> ["," <TS> "Ppis" <attrs>]*
 <attrs>         ::= "." <arch>
+<hattribs>      ::= <hattrs> ["," <TS> "Ppis" <hattrs>]*
+<hattrs>        ::= "." <arch> ".Private"
 <PpiEntries>    ::= [<PpiComment>]
                     <TS> <CName> <Eq> <CFormatGUID> {<CommentBlock>} {<EOL>}
 <PpiComment>    ::= [<Description>]
@@ -81,6 +85,14 @@ architecture. It is permissible to specify PPI entries under all architectures
 except `"common`" if different Guid values may be required for different
 architectures.
 
+It is NOT permissible to mix section tags without the `Private` modifier with
+section tags with the `Private` modifier. If this condition is detected, the
+build tools must terminate with an error message.
+
+For example, `[Ppis.common, Ppis.IA32.Private]` is prohibited.
+
+#### Example
+
 ```ini
 # Global Ppis Definition section - list of Global Ppis C Name
 # Data Structures that are provided by
diff --git a/README.md b/README.md
index b489cb1..372ef19 100644
--- a/README.md
+++ b/README.md
@@ -166,3 +166,4 @@ Copyright (c) 2007-2017, Intel Corporation. All rights reserved.
 |            | up a development environment).                                                                                            |                 |
 | 1.26       | Reformat for GitBook                                                                                                      | April 2017      |
 |            | Updated `DEC_SPECIFICATION` to `0x0001001A` or `1.26`                                                                     |                 |
+|            | [#465](https://bugzilla.tianocore.org/show_bug.cgi?id=465) DEC spec: document private definitions                         |                 |
-- 
2.6.3.windows.1



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

* [ edk2-DecSpecification PATCH 4/4] Declarations not allowed to be both public and private
  2017-04-25  1:10 [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Michael Kinney
                   ` (2 preceding siblings ...)
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 3/4] Add support for Private declarations in a package Michael Kinney
@ 2017-04-25  1:10 ` Michael Kinney
  2017-04-25  1:40 ` [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Zhu, Yonghong
  2017-04-25 15:21 ` Laszlo Ersek
  5 siblings, 0 replies; 7+ messages in thread
From: Michael Kinney @ 2017-04-25  1:10 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

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

Clarify that Includes, Protocols, PPIs, and GUIDs
declared in and a DEC file are now allowed to be
both public and private.  If this condition is
detected the build tools must terminate with an
error.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 3_edk_ii_dec_file_format/35_[includes]_sections.md |  16 ++
 3_edk_ii_dec_file_format/36_[guids]_sections.md    |  15 ++
 .../37_[protocols]_sections.md                     |  15 ++
 3_edk_ii_dec_file_format/38_[ppis]_sections.md     |  15 ++
 README.md                                          | 183 +++++++++++----------
 5 files changed, 153 insertions(+), 91 deletions(-)

diff --git a/3_edk_ii_dec_file_format/35_[includes]_sections.md b/3_edk_ii_dec_file_format/35_[includes]_sections.md
index 6fa083c..ed5acea 100644
--- a/3_edk_ii_dec_file_format/35_[includes]_sections.md
+++ b/3_edk_ii_dec_file_format/35_[includes]_sections.md
@@ -94,6 +94,22 @@ build tools must terminate with an error message.
 
 For example, `[Includes.common, Includes.IA32.Private]` is prohibited.
 
+It is NOT permissible for the same include directory to be listed in section
+tags with and without the `Private` modifier. If this condition is detected,
+the build tools must terminate with an error message.
+
+For example, the following is prohibited because the same directory called
+`MyPrivateIncludePath` is listed in a tag with and without a `Private`
+modifier.
+
+```
+[Includes]
+  MyPrivateIncludePath
+
+[Includes.common.Private]
+  MyPrivateIncludePath
+```
+
 #### Example
 
 ```ini
diff --git a/3_edk_ii_dec_file_format/36_[guids]_sections.md b/3_edk_ii_dec_file_format/36_[guids]_sections.md
index 1d00c9a..6a398ea 100644
--- a/3_edk_ii_dec_file_format/36_[guids]_sections.md
+++ b/3_edk_ii_dec_file_format/36_[guids]_sections.md
@@ -91,6 +91,21 @@ build tools must terminate with an error message.
 
 For example, `[Guids.common, Guids.IA32.Private]` is prohibited.
 
+It is NOT permissible for the same GUID to be listed in section tags with and
+without the `Private` modifier. If this condition is detected, the build tools
+must terminate with an error message.
+
+For example, the following is prohibited because the GUID named `MyPrivateGuid`
+is listed in a tag with and without a `Private` modifier.
+
+```
+[Guids]
+  MyPrivateGuid = { 0x1e96808b, 0xfa93, 0x4230, { 0xb5, 0x6b, 0x96, 0xc5, 0x95, 0x9b, 0xd1, 0xd2 }}
+
+[Guids.common.Private]
+  MyPrivateGuid = { 0x1e96808b, 0xfa93, 0x4230, { 0xb5, 0x6b, 0x96, 0xc5, 0x95, 0x9b, 0xd1, 0xd2 }}
+```
+
 #### Example
 
 ```ini
diff --git a/3_edk_ii_dec_file_format/37_[protocols]_sections.md b/3_edk_ii_dec_file_format/37_[protocols]_sections.md
index a43260c..c1d7daf 100644
--- a/3_edk_ii_dec_file_format/37_[protocols]_sections.md
+++ b/3_edk_ii_dec_file_format/37_[protocols]_sections.md
@@ -90,6 +90,21 @@ build tools must terminate with an error message.
 
 For example, `[Protocols.common, Protocols.IA32.Private]` is prohibited.
 
+It is NOT permissible for the same protocol to be listed in section tags with
+and without the `Private` modifier. If this condition is detected, the build
+tools must terminate with an error message.
+
+For example, the following is prohibited because the protocol named
+`MyPrivateProtocol` is listed in a tag with and without a `Private` modifier.
+
+```
+[Protocols]
+  MyPrivateProtocol = { 0xc7c4a20f, 0xd1d1, 0x427a, { 0xb0, 0x82, 0xa8, 0xb6, 0x24, 0xf7, 0x69, 0x4f }}
+
+[Protocols.common.Private]
+  MyPrivateProtocol = { 0xc7c4a20f, 0xd1d1, 0x427a, { 0xb0, 0x82, 0xa8, 0xb6, 0x24, 0xf7, 0x69, 0x4f }}
+```
+
 #### Example
 
 ```ini
diff --git a/3_edk_ii_dec_file_format/38_[ppis]_sections.md b/3_edk_ii_dec_file_format/38_[ppis]_sections.md
index 87c5f0d..db83fc4 100644
--- a/3_edk_ii_dec_file_format/38_[ppis]_sections.md
+++ b/3_edk_ii_dec_file_format/38_[ppis]_sections.md
@@ -91,6 +91,21 @@ build tools must terminate with an error message.
 
 For example, `[Ppis.common, Ppis.IA32.Private]` is prohibited.
 
+It is NOT permissible for the same PPI to be listed in section tags with and
+without the `Private` modifier. If this condition is detected, the build tools
+must terminate with an error message.
+
+For example, the following is prohibited because the PPI named `MyPrivatePpi`
+is listed in a tag with and without a `Private` modifier.
+
+```
+[Ppis]
+  MyPrivatePpi = { 0x10ed6a18, 0xbbf7, 0x4051, { 0xba, 0xb8, 0xb4, 0x90, 0x1a, 0x65, 0xa2, 0xc5 }}
+
+[Ppis.common.Private]
+  MyPrivatePpi = { 0x10ed6a18, 0xbbf7, 0x4051, { 0xba, 0xb8, 0xb4, 0x90, 0x1a, 0x65, 0xa2, 0xc5 }}
+```
+
 #### Example
 
 ```ini
diff --git a/README.md b/README.md
index 372ef19..5eea1ad 100644
--- a/README.md
+++ b/README.md
@@ -76,94 +76,95 @@ Copyright (c) 2007-2017, Intel Corporation. All rights reserved.
 
 ### Revision History
 
-| Revision   | Revision History                                                                                                          | Date            |
-| ---------- | ------------------------------------------------------------------------------------------------------------------------- | --------------- |
-| 1.0        | Initial release.                                                                                                          | December 2007   |
-| 1.1        | Updated based on errata                                                                                                   | August 2008     |
-| 1.2        | Updated based on enhancement requests                                                                                     | June 2009       |
-| 1.21       | Updated based on errata and for enhancement requests                                                                      | January 2010    |
-|            | Standardized the format for common content.                                                                               |                 |
-|            | Added support for @Keyword Doxygen tag                                                                                    |                 |
-|            | Added support for @ModuleType Doxygen tags                                                                                |                 |
-|            | Added support for @ValidList, @DefaultValue and @ValidRange Doxygen tags for PCDs                                         |                 |
-|            | Added PKG_UNI_FILE element to [defines] section                                                                           |                 |
-| 1.22       | Errata and grammatical editing                                                                                            | April 2010      |
-| 1.22 w/    | Updates:                                                                                                                  | December 2011   |
-| Errata A   | Updated to support UEFI version 2.3.1 and updated spec release dates in Introduction                                      |                 |
-|            | Clarify UEFI's PI Distribution Package Specification                                                                      |                 |
-|            | Standardize Common data definitions for all specifications                                                                |                 |
-|            | Grammatical, formatting and spelling changes                                                                              |                 |
-|            | Replaced "should" with wording saying that it is                                                                          |                 |
-|            | "recommended"                                                                                                             |                 |
-|            | Added EBNF for `<Extension>`                                                                                              |                 |
-|            | Added scoping rules for Macros, clarified MACRO summary                                                                   |                 |
-|            | Added an example of a binary only DEC file                                                                                |                 |
-|            | Removed references to system environment variables in the Macros section                                                  |                 |
-|            | Specifically state where `<MACROVAL>` can be used, and where it is prohibited;                                            |                 |
-|            | specifically state that MACROVAL entries are expanded where they are used;                                                |                 |
-|            | clarify that MACROS are only expanded, not evaluated during initial parsing of the DEC file                               |                 |
-|            | Added table that shows that every part of a path name can be replaced by a MACROVAL                                       |                 |
-|            | Clarify that C data arrays must be byte arrays for PCD value fields; prohibit C format and                                |                 |
-|            | Registry Format GUID structures in VOID* PCD value fields                                                                 |                 |
-|            | Update non-zero number is True, only 0 is consideered False                                                               |                 |
-|            | Prohibit specifying items as architecturally specific and also common                                                     |                 |
-|            | Changed `<RegistryGuid>` to `<RegistryFormatGUID>` in                                                                     |                 |
-|            | 3.4                                                                                                                       |                 |
-|            | Defined `<GuidValue>` as a `<CFormatGUID>` for this release (need to allow registry format in a future release)           |                 |
-|            | Update the [Includes], [Guids], [Protocols], [PPIs], [LibraryClasses] and PCD sections to allow an empty section          |                 |
-|            | Updated the format for `<QuotedString>`, `<CString>` and `<UnicodeString>`                                                |                 |
-|            | Update PATH related EBNF                                                                                                  |                 |
-|            | Add `<MacroDefinition>` to [Defines], [Includes] and                                                                      |                 |
-|            | `[LibraryClasses] sections`                                                                                               |                 |
-|            | Provide rules in 2.2.6 for how macros can be shared between different subsections                                         |                 |
-| 1.22 w/    | Updates:                                                                                                                  | June 2012       |
-| Errata B   | Added a + after `<Express>` in the DoxComment definition of PCDs, as more than one expression can be                      |                 |
-|            | specified in the UEFI PI Distribution Package Specification.                                                              |                 |
-|            | Added text describing the use of `<HexDigit>` for error numbers as well as how they are scoped.                           |                 |
-| 1.22 w/    | Updates:                                                                                                                  | June 2012       |
-| Errata B   | Updated UEFI/PI Spec version in chapter 1.3 to include Errata letters.                                                    |                 |
-| (cont.)    | In Section 3.10 modified the optional error number in                                                                     |                 |
-|            | DoxComment definitions for PCDs from `<HexDigit>`+ to                                                                     |                 |
-|            | <ErrorCode> and defined <ErrorCode> to be of type <NumValUint32>;                                                         |                 |
-|            | also added a "\|" after the value to separate the error code from numeric values                                          |                 |
-|            | Added AsBuilt entries for Abstract and Description                                                                        |                 |
-|            | Clarified that the file must use the DOS end-of-line character sequence, `0x0D 0x0A`                                      |                 |
-| 1.22 w/    | Updates:                                                                                                                  | August 2013     |
-| Errata C   | Updated UEFI/PI Specification version support in chapter 1                                                                |                 |
-|            | Modified examples to correct previous errors                                                                              |                 |
-|            | Removed errors from text                                                                                                  |                 |
-|            | Updated examples                                                                                                          |                 |
-|            | Modified EBNF to prevent using the architectural modifier of common with any other architecture.                          |                 |
-|            | Ensure that wording specifically states that the architecture modifiers are not case sensitive.                           |                 |
-|            | Add description of PCD processing rules in section 3.10                                                                   |                 |
-|            | Allow registry format GUID values in GUIDs, Protocols,                                                                    |                 |
-|            | PPIs sections instead of requiring C format GUID values                                                                   |                 |
-|            | (which will continue to be allowed)                                                                                       |                 |
-|            | The error codes are scoped to the TokenSpaceGUID, not to the PCD                                                          |                 |
-|            | Added reference to the EDK II Build Specification for PCD processing rules.                                               |                 |
-| 1.24       | `Updates;`                                                                                                                | August 2014     |
-|            | Change revision number of this specification from 1.22 to                                                                 |                 |
-|            | 1.24                                                                                                                      |                 |
-|            | Updated `DEC_SPECIFICATION` to `0x00010017`                                                                               |                 |
-|            | Added additional parameter definitions for clarification of the comment content for PCDs                                  |                 |
-|            | Added the `PACKAGE_UNI_FILE` entry to the `[Defines]` section                                                             |                 |
-|            | Added reserved TianoCore user extension, for                                                                              |                 |
-|            | `"ExtraFiles"`                                                                                                            |                 |
-|            | Added PCD comment type for # [Error] which is used to map an error code for a given token space to a specific string.     |                 |
-| 1.24 w/    | Updates:                                                                                                                  | December 2014   |
-| Errata A   | Changed DEC_SPECIFICATION to 0x00010018 and allow specifying it as a decimal, i.e., 1.24.                                 |                 |
-|            | Updated specification dates and added two new specifications in section 1.2                                               |                 |
-|            | Removed expression EBNF as it has been replaced by the EDK II Expression Syntax Specification.                            |                 |
-| 1.24 w/    | Updates:                                                                                                                  | March 2015      |
-| Errata B   | - Update link to the EDK II Specifications, fixed the name of the Multi-String .UNI File Format Specification             |                 |
-| 1.24 w/    | Updates:                                                                                                                  | August 2015     |
-| Errata C   | Clarify that #include statements are not permitted in UNI file specified in the PACKAGE_UNI_FILE entry                    |                 |
-| 1.25       | Updates:                                                                                                                  | January 2015    |
-|            | Specification revision to 1.25                                                                                            |                 |
-|            | Revised WORKSPACE wording for updated build system that can handle                                                        |                 |
-|            | packages located outside of the WORKSPACE directory tree (refer to                                                        |                 |
-|            | the TianoCore.org EDKII website for additional instructions on setting                                                    |                 |
-|            | up a development environment).                                                                                            |                 |
-| 1.26       | Reformat for GitBook                                                                                                      | April 2017      |
-|            | Updated `DEC_SPECIFICATION` to `0x0001001A` or `1.26`                                                                     |                 |
-|            | [#465](https://bugzilla.tianocore.org/show_bug.cgi?id=465) DEC spec: document private definitions                         |                 |
+| Revision   | Revision History                                                                                                                                    | Date            |
+| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
+| 1.0        | Initial release.                                                                                                                                    | December 2007   |
+| 1.1        | Updated based on errata                                                                                                                             | August 2008     |
+| 1.2        | Updated based on enhancement requests                                                                                                               | June 2009       |
+| 1.21       | Updated based on errata and for enhancement requests                                                                                                | January 2010    |
+|            | Standardized the format for common content.                                                                                                         |                 |
+|            | Added support for @Keyword Doxygen tag                                                                                                              |                 |
+|            | Added support for @ModuleType Doxygen tags                                                                                                          |                 |
+|            | Added support for @ValidList, @DefaultValue and @ValidRange Doxygen tags for PCDs                                                                   |                 |
+|            | Added PKG_UNI_FILE element to [defines] section                                                                                                     |                 |
+| 1.22       | Errata and grammatical editing                                                                                                                      | April 2010      |
+| 1.22 w/    | Updates:                                                                                                                                            | December 2011   |
+| Errata A   | Updated to support UEFI version 2.3.1 and updated spec release dates in Introduction                                                                |                 |
+|            | Clarify UEFI's PI Distribution Package Specification                                                                                                |                 |
+|            | Standardize Common data definitions for all specifications                                                                                          |                 |
+|            | Grammatical, formatting and spelling changes                                                                                                        |                 |
+|            | Replaced "should" with wording saying that it is                                                                                                    |                 |
+|            | "recommended"                                                                                                                                       |                 |
+|            | Added EBNF for `<Extension>`                                                                                                                        |                 |
+|            | Added scoping rules for Macros, clarified MACRO summary                                                                                             |                 |
+|            | Added an example of a binary only DEC file                                                                                                          |                 |
+|            | Removed references to system environment variables in the Macros section                                                                            |                 |
+|            | Specifically state where `<MACROVAL>` can be used, and where it is prohibited;                                                                      |                 |
+|            | specifically state that MACROVAL entries are expanded where they are used;                                                                          |                 |
+|            | clarify that MACROS are only expanded, not evaluated during initial parsing of the DEC file                                                         |                 |
+|            | Added table that shows that every part of a path name can be replaced by a MACROVAL                                                                 |                 |
+|            | Clarify that C data arrays must be byte arrays for PCD value fields; prohibit C format and                                                          |                 |
+|            | Registry Format GUID structures in VOID* PCD value fields                                                                                           |                 |
+|            | Update non-zero number is True, only 0 is consideered False                                                                                         |                 |
+|            | Prohibit specifying items as architecturally specific and also common                                                                               |                 |
+|            | Changed `<RegistryGuid>` to `<RegistryFormatGUID>` in                                                                                               |                 |
+|            | 3.4                                                                                                                                                 |                 |
+|            | Defined `<GuidValue>` as a `<CFormatGUID>` for this release (need to allow registry format in a future release)                                     |                 |
+|            | Update the [Includes], [Guids], [Protocols], [PPIs], [LibraryClasses] and PCD sections to allow an empty section                                    |                 |
+|            | Updated the format for `<QuotedString>`, `<CString>` and `<UnicodeString>`                                                                          |                 |
+|            | Update PATH related EBNF                                                                                                                            |                 |
+|            | Add `<MacroDefinition>` to [Defines], [Includes] and                                                                                                |                 |
+|            | `[LibraryClasses] sections`                                                                                                                         |                 |
+|            | Provide rules in 2.2.6 for how macros can be shared between different subsections                                                                   |                 |
+| 1.22 w/    | Updates:                                                                                                                                            | June 2012       |
+| Errata B   | Added a + after `<Express>` in the DoxComment definition of PCDs, as more than one expression can be                                                |                 |
+|            | specified in the UEFI PI Distribution Package Specification.                                                                                        |                 |
+|            | Added text describing the use of `<HexDigit>` for error numbers as well as how they are scoped.                                                     |                 |
+| 1.22 w/    | Updates:                                                                                                                                            | June 2012       |
+| Errata B   | Updated UEFI/PI Spec version in chapter 1.3 to include Errata letters.                                                                              |                 |
+| (cont.)    | In Section 3.10 modified the optional error number in                                                                                               |                 |
+|            | DoxComment definitions for PCDs from `<HexDigit>`+ to                                                                                               |                 |
+|            | <ErrorCode> and defined <ErrorCode> to be of type <NumValUint32>;                                                                                   |                 |
+|            | also added a "\|" after the value to separate the error code from numeric values                                                                    |                 |
+|            | Added AsBuilt entries for Abstract and Description                                                                                                  |                 |
+|            | Clarified that the file must use the DOS end-of-line character sequence, `0x0D 0x0A`                                                                |                 |
+| 1.22 w/    | Updates:                                                                                                                                            | August 2013     |
+| Errata C   | Updated UEFI/PI Specification version support in chapter 1                                                                                          |                 |
+|            | Modified examples to correct previous errors                                                                                                        |                 |
+|            | Removed errors from text                                                                                                                            |                 |
+|            | Updated examples                                                                                                                                    |                 |
+|            | Modified EBNF to prevent using the architectural modifier of common with any other architecture.                                                    |                 |
+|            | Ensure that wording specifically states that the architecture modifiers are not case sensitive.                                                     |                 |
+|            | Add description of PCD processing rules in section 3.10                                                                                             |                 |
+|            | Allow registry format GUID values in GUIDs, Protocols,                                                                                              |                 |
+|            | PPIs sections instead of requiring C format GUID values                                                                                             |                 |
+|            | (which will continue to be allowed)                                                                                                                 |                 |
+|            | The error codes are scoped to the TokenSpaceGUID, not to the PCD                                                                                    |                 |
+|            | Added reference to the EDK II Build Specification for PCD processing rules.                                                                         |                 |
+| 1.24       | `Updates;`                                                                                                                                          | August 2014     |
+|            | Change revision number of this specification from 1.22 to                                                                                           |                 |
+|            | 1.24                                                                                                                                                |                 |
+|            | Updated `DEC_SPECIFICATION` to `0x00010017`                                                                                                         |                 |
+|            | Added additional parameter definitions for clarification of the comment content for PCDs                                                            |                 |
+|            | Added the `PACKAGE_UNI_FILE` entry to the `[Defines]` section                                                                                       |                 |
+|            | Added reserved TianoCore user extension, for                                                                                                        |                 |
+|            | `"ExtraFiles"`                                                                                                                                      |                 |
+|            | Added PCD comment type for # [Error] which is used to map an error code for a given token space to a specific string.                               |                 |
+| 1.24 w/    | Updates:                                                                                                                                            | December 2014   |
+| Errata A   | Changed DEC_SPECIFICATION to 0x00010018 and allow specifying it as a decimal, i.e., 1.24.                                                           |                 |
+|            | Updated specification dates and added two new specifications in section 1.2                                                                         |                 |
+|            | Removed expression EBNF as it has been replaced by the EDK II Expression Syntax Specification.                                                      |                 |
+| 1.24 w/    | Updates:                                                                                                                                            | March 2015      |
+| Errata B   | - Update link to the EDK II Specifications, fixed the name of the Multi-String .UNI File Format Specification                                       |                 |
+| 1.24 w/    | Updates:                                                                                                                                            | August 2015     |
+| Errata C   | Clarify that #include statements are not permitted in UNI file specified in the PACKAGE_UNI_FILE entry                                              |                 |
+| 1.25       | Updates:                                                                                                                                            | January 2015    |
+|            | Specification revision to 1.25                                                                                                                      |                 |
+|            | Revised WORKSPACE wording for updated build system that can handle                                                                                  |                 |
+|            | packages located outside of the WORKSPACE directory tree (refer to                                                                                  |                 |
+|            | the TianoCore.org EDKII website for additional instructions on setting                                                                              |                 |
+|            | up a development environment).                                                                                                                      |                 |
+| 1.26       | Reformat for GitBook                                                                                                                                | April 2017      |
+|            | Updated `DEC_SPECIFICATION` to `0x0001001A` or `1.26`                                                                                               |                 |
+|            | [#465](https://bugzilla.tianocore.org/show_bug.cgi?id=465) DEC spec: document private definitions                                                   |                 |
+|            | [#482](https://bugzilla.tianocore.org/show_bug.cgi?id=482) DEC Spec: add clarification for [Ppis], [Guids], [Protocols], [Includes] Private support |                 |
-- 
2.6.3.windows.1



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

* Re: [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package
  2017-04-25  1:10 [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Michael Kinney
                   ` (3 preceding siblings ...)
  2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 4/4] Declarations not allowed to be both public and private Michael Kinney
@ 2017-04-25  1:40 ` Zhu, Yonghong
  2017-04-25 15:21 ` Laszlo Ersek
  5 siblings, 0 replies; 7+ messages in thread
From: Zhu, Yonghong @ 2017-04-25  1:40 UTC (permalink / raw)
  To: Kinney, Michael D, edk2-devel@lists.01.org
  Cc: Gao, Liming, Shaw, Kevin W, Zhu, Yonghong

Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> 

Best Regards,
Zhu Yonghong


-----Original Message-----
From: Kinney, Michael D 
Sent: Tuesday, April 25, 2017 9:10 AM
To: edk2-devel@lists.01.org
Cc: Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com>; Shaw, Kevin W <kevin.w.shaw@intel.com>
Subject: [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package

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

GitHub word diff view of the patches in this series

* [1/4] https://github.com/mdkinney/edk2-DecSpecification/commit/24a07ae89ef0467c9009633d19d24bb1ba2e115a?w=1
* [2/4] https://github.com/mdkinney/edk2-DecSpecification/commit/65f49d1d86439b6144ff82217349a5145ec42ef0?w=1
* [3/4] https://github.com/mdkinney/edk2-DecSpecification/commit/a28fd82b07521fc7412be75b159a44a0dd3bf1b1?w=1
* [4/4] https://github.com/mdkinney/edk2-DecSpecification/commit/c04e668af9e1aa8c8e49d73fede6df7287b7d454?w=1

Remove trailing spaces from README.md 

Update DEC_SPECIFCATION to 0x0001001A / 1.26 

Add new syntax to the DEC file for specifying information that can only be used by modules within the package. When modules outside the packages attempt to use this content, the EDK II build system must break with an error regarding content not found.

The four sections, Includes, Ppis, Guids and Protocols headers will be modified with a keyword, Private following the architecture modifier. If Private is not present, then the content is usable by modules outside the package.

Clarify restriction that an element is not allowed to be declared with and without Private modifier.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>


Michael Kinney (4):
  Remove trailing spaces from README.MD
  Update version from 1.25 to 1.26
  Add support for Private declarations in a package
  Declarations not allowed to be both public and private

 2_dec_file_overview/24_[defines]_usage.md          |   2 +-
 2_dec_file_overview/25_[includes]_usage.md         |  24 ++-
 2_dec_file_overview/26_[guids]_usage.md            |  22 ++-
 2_dec_file_overview/27_[protocols]_usage.md        |  24 ++-
 2_dec_file_overview/28_[ppis]_usage.md             |  24 ++-
 3_edk_ii_dec_file_format/34_[defines]_section.md   |  28 ++-
 3_edk_ii_dec_file_format/35_[includes]_sections.md |  30 ++-
 3_edk_ii_dec_file_format/36_[guids]_sections.md    |  29 ++-
 .../37_[protocols]_sections.md                     |  29 ++-
 3_edk_ii_dec_file_format/38_[ppis]_sections.md     |  29 ++-
 README.md                                          | 211 +++++++++++----------
 11 files changed, 329 insertions(+), 123 deletions(-)

--
2.6.3.windows.1



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

* Re: [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package
  2017-04-25  1:10 [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Michael Kinney
                   ` (4 preceding siblings ...)
  2017-04-25  1:40 ` [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Zhu, Yonghong
@ 2017-04-25 15:21 ` Laszlo Ersek
  5 siblings, 0 replies; 7+ messages in thread
From: Laszlo Ersek @ 2017-04-25 15:21 UTC (permalink / raw)
  To: Michael Kinney, edk2-devel; +Cc: Kevin W Shaw, Liming Gao

On 04/25/17 03:10, Michael Kinney wrote:
> https://bugzilla.tianocore.org/show_bug.cgi?id=465
> https://bugzilla.tianocore.org/show_bug.cgi?id=482
> 
> GitHub word diff view of the patches in this series
> 
> * [1/4] https://github.com/mdkinney/edk2-DecSpecification/commit/24a07ae89ef0467c9009633d19d24bb1ba2e115a?w=1
> * [2/4] https://github.com/mdkinney/edk2-DecSpecification/commit/65f49d1d86439b6144ff82217349a5145ec42ef0?w=1
> * [3/4] https://github.com/mdkinney/edk2-DecSpecification/commit/a28fd82b07521fc7412be75b159a44a0dd3bf1b1?w=1
> * [4/4] https://github.com/mdkinney/edk2-DecSpecification/commit/c04e668af9e1aa8c8e49d73fede6df7287b7d454?w=1
> 
> Remove trailing spaces from README.md 
> 
> Update DEC_SPECIFCATION to 0x0001001A / 1.26 
> 
> Add new syntax to the DEC file for specifying
> information that can only be used by modules
> within the package. When modules outside the
> packages attempt to use this content, the EDK
> II build system must break with an error
> regarding content not found.
> 
> The four sections, Includes, Ppis, Guids and
> Protocols headers will be modified with a keyword,
> Private following the architecture modifier. If
> Private is not present, then the content is usable
> by modules outside the package.
> 
> Clarify restriction that an element is not allowed
> to be declared with and without Private modifier.
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
> 
> 
> Michael Kinney (4):
>   Remove trailing spaces from README.MD
>   Update version from 1.25 to 1.26
>   Add support for Private declarations in a package
>   Declarations not allowed to be both public and private
> 
>  2_dec_file_overview/24_[defines]_usage.md          |   2 +-
>  2_dec_file_overview/25_[includes]_usage.md         |  24 ++-
>  2_dec_file_overview/26_[guids]_usage.md            |  22 ++-
>  2_dec_file_overview/27_[protocols]_usage.md        |  24 ++-
>  2_dec_file_overview/28_[ppis]_usage.md             |  24 ++-
>  3_edk_ii_dec_file_format/34_[defines]_section.md   |  28 ++-
>  3_edk_ii_dec_file_format/35_[includes]_sections.md |  30 ++-
>  3_edk_ii_dec_file_format/36_[guids]_sections.md    |  29 ++-
>  .../37_[protocols]_sections.md                     |  29 ++-
>  3_edk_ii_dec_file_format/38_[ppis]_sections.md     |  29 ++-
>  README.md                                          | 211 +++++++++++----------
>  11 files changed, 329 insertions(+), 123 deletions(-)
> 

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Thanks!
Laszlo


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

end of thread, other threads:[~2017-04-25 15:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-25  1:10 [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Michael Kinney
2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 1/4] Remove trailing spaces from README.MD Michael Kinney
2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 2/4] Update version from 1.25 to 1.26 Michael Kinney
2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 3/4] Add support for Private declarations in a package Michael Kinney
2017-04-25  1:10 ` [ edk2-DecSpecification PATCH 4/4] Declarations not allowed to be both public and private Michael Kinney
2017-04-25  1:40 ` [ edk2-DecSpecification PATCH 0/4] Add support for Private declarations in a package Zhu, Yonghong
2017-04-25 15:21 ` Laszlo Ersek

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