From nobody Sun May 5 04:41:57 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1493082616372696.7643347989555; Mon, 24 Apr 2017 18:10:16 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id EE24121954093; Mon, 24 Apr 2017 18:10:11 -0700 (PDT) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 9799E2195408B for ; Mon, 24 Apr 2017 18:10:10 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Apr 2017 18:10:10 -0700 Received: from mdkinney-mobl.amr.corp.intel.com ([10.241.98.36]) by fmsmga006.fm.intel.com with ESMTP; 24 Apr 2017 18:10:10 -0700 X-Original-To: edk2-devel@lists.01.org X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,247,1488873600"; d="scan'208,217";a="93697949" From: Michael Kinney To: edk2-devel@lists.01.org Date: Mon, 24 Apr 2017 18:10:03 -0700 Message-Id: <1493082606-9348-2-git-send-email-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.6.3.windows.1 In-Reply-To: <1493082606-9348-1-git-send-email-michael.d.kinney@intel.com> References: <1493082606-9348-1-git-send-email-michael.d.kinney@intel.com> Subject: [edk2] [ edk2-DecSpecification PATCH 1/4] Remove trailing spaces from README.MD X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin W Shaw , Liming Gao MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Cc: Liming Gao Cc: Yonghong Zhu Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Kinney Reviewed-by: Laszlo Ersek Reviewed-by: Yonghong Zhu =20 --- 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 @@ =20 --> =20 - + =20 -### {{ book.title }} +### {{ book.title }} =20 -{% if book.draft %} -** DRAFT FOR REVIEW ** -{% else %} -** {{ book.version }} ** -{% endif %} +{% if book.draft %} +** DRAFT FOR REVIEW ** +{% else %} +** {{ book.version }} ** +{% endif %} =20 -** {{ gitbook.time|date('MM/DD/YYYY hh:mm:ss') }} ** - -{% if book.udkrelease %} -** {{ book.udkrelease }} ** -{% endif %} +** {{ gitbook.time|date('MM/DD/YYYY hh:mm:ss') }} ** =20 +{% if book.udkrelease %} +** {{ book.udkrelease }} ** +{% endif %} =20 -### Acknowledgements + +### Acknowledgements =20 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. =20 Copyright (c) 2007-2017, Intel Corporation. All rights reserved. =20 -### Revision History +### Revision History =20 | Revision | Revision History = | Date = | | ---------- | -----------------------------------------------------------= -------------------------------------------------------------- | ----------= ----- | --=20 2.6.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Sun May 5 04:41:57 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1493082618743506.6817129371541; Mon, 24 Apr 2017 18:10:18 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 25B182050B98B; Mon, 24 Apr 2017 18:10:12 -0700 (PDT) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BACF721954084 for ; Mon, 24 Apr 2017 18:10:10 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Apr 2017 18:10:10 -0700 Received: from mdkinney-mobl.amr.corp.intel.com ([10.241.98.36]) by fmsmga006.fm.intel.com with ESMTP; 24 Apr 2017 18:10:10 -0700 X-Original-To: edk2-devel@lists.01.org X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,247,1488873600"; d="scan'208";a="93697952" From: Michael Kinney To: edk2-devel@lists.01.org Date: Mon, 24 Apr 2017 18:10:04 -0700 Message-Id: <1493082606-9348-3-git-send-email-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.6.3.windows.1 In-Reply-To: <1493082606-9348-1-git-send-email-michael.d.kinney@intel.com> References: <1493082606-9348-1-git-send-email-michael.d.kinney@intel.com> Subject: [edk2] [ edk2-DecSpecification PATCH 2/4] Update version from 1.25 to 1.26 X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin W Shaw , Liming Gao MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Cc: Liming Gao Cc: Yonghong Zhu Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Kinney Reviewed-by: Laszlo Ersek Reviewed-by: Yonghong Zhu =20 --- 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_overvie= w/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. =20 ```ini [Defines] - DEC_SPECIFICATION =3D 0x00010019 + DEC_SPECIFICATION =3D 0x0001001A PACKAGE_NAME =3D MdePkg PACKAGE_GUID =3D 1E73767F-8F52-4603-AEB4-F29B510B6766 PACKAGE_VERSION =3D 1.02 diff --git a/3_edk_ii_dec_file_format/34_[defines]_section.md b/3_edk_ii_de= c_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 distri= bution 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. =20 -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. =20 Existing DEC files are not required to update the `DEC_SPECIFICATION` vers= ion value. This value may be used by tools to identify any new functionality @@ -83,11 +83,11 @@ characters are not permitted. =20 **_SpecVer_** =20 -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 vers= ions of the DEC file (this is a backward compatible update). There is no requir= ement to change the value in existing DEC files if no other content changes. Thi= s may -also be specified as decimal value, 1.25. +also be specified as decimal value, 1.26. =20 **_Filename_** =20 @@ -97,13 +97,23 @@ permitted. Use of an absolute path is not permitted. Th= e file name specified in the `PACKAGE_UNI_FILE` entry must be a Unicode file with an extension of .= uni, .UNI or .Uni. =20 -#### Example +#### Example 1 =20 ```ini [DEFINES] - DEC_SPECIFICATION =3D 0x00010019 + DEC_SPECIFICATION =3D 0x0001001A PACKAGE_NAME =3D MdePkg - PACKAGE_GUID =3D 5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec - PACKAGE_VERSION =3D 0.3 + PACKAGE_GUID =3D 1E73767F-8F52-4603-AEB4-F29B510B6766 + PACKAGE_VERSION =3D 1.06 PACKAGE_UNI_FILE =3D MdePkg.uni ``` + +#### Example 2 + +```ini +[DEFINES] + DEC_SPECIFICATION =3D 1.26 + PACKAGE_NAME =3D IntelFspPkg + PACKAGE_GUID =3D 444C6CDF-55BD-4744-8F74-AE98B003B955 + PACKAGE_VERSION =3D 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 (r= efer 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` = | = | --=20 2.6.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Sun May 5 04:41:57 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 149308262090747.2726151474958; Mon, 24 Apr 2017 18:10:20 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 55AEA20D770D6; Mon, 24 Apr 2017 18:10:12 -0700 (PDT) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E61BB2195408B for ; Mon, 24 Apr 2017 18:10:10 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Apr 2017 18:10:10 -0700 Received: from mdkinney-mobl.amr.corp.intel.com ([10.241.98.36]) by fmsmga006.fm.intel.com with ESMTP; 24 Apr 2017 18:10:10 -0700 X-Original-To: edk2-devel@lists.01.org X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,247,1488873600"; d="scan'208";a="93697957" From: Michael Kinney To: edk2-devel@lists.01.org Date: Mon, 24 Apr 2017 18:10:05 -0700 Message-Id: <1493082606-9348-4-git-send-email-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.6.3.windows.1 In-Reply-To: <1493082606-9348-1-git-send-email-michael.d.kinney@intel.com> References: <1493082606-9348-1-git-send-email-michael.d.kinney@intel.com> Subject: [edk2] [ edk2-DecSpecification PATCH 3/4] Add support for Private declarations in a package X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin W Shaw , Liming Gao MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" https://bugzilla.tianocore.org/show_bug.cgi?id=3D465 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 Cc: Yonghong Zhu Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Kinney Reviewed-by: Laszlo Ersek Reviewed-by: Yonghong Zhu =20 --- 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_overvi= ew/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 conta= ining 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. =20 +The section tag modifier, `Private`, is used to restrict the EDK II build +system by preventing references to content in these sections from being us= ed 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. =20 The `[Includes]` section uses one of the following section definitions: =20 ```ini +[Includes] + [Includes.common] =20 +[Includes.common.Private] + [Includes.IA32] =20 +[Includes.IA32.Private] + [Includes.X64] =20 +[Includes.X64.Private] + [Includes.IPF] =20 +[Includes.IPF.Private] + [includes.EBC] =20 -[Includes] +[includes.EBC.Private] +``` + +Architectural sections may also be combined, as in: + +```ini +[Includes.IA32, Includes.X64] + +[Includes.IA32.Private, Includes.X64.Private] ``` =20 The format for entries in this section is one field, with an optional comm= ent 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. =20 This section is used to define the GUID Value for Guid C Names. =20 +The section tag modifier, `Private`, is used to restrict the EDK II build +system by preventing references to content in these sections from being us= ed by +modules outside of the package. + This section uses one of the following section definitions: =20 ```ini [Guids] =20 +[Guids.common] + +[Guids.common.Private] + [Guids.IA32] =20 +[Guids.IA32.Private] + [Guids.X64] =20 +[Guids.X64.Private] + [Guids.IPF] =20 +[Guids.IPF.Private] + [Guids.EBC] =20 -[Guids.common] +[Guids.EBC.Private] +``` =20 +Architectural sections may also be combined, as in: + +```ini [Guids.IA32, Guids.X64] =20 -[Guids.X64, Guids.IPF] +[Guids.IA32.Private, Guids.X64.Private] ``` =20 Format for the entries in this section is two fields with an equal "=3D" diff --git a/2_dec_file_overview/27_[protocols]_usage.md b/2_dec_file_overv= iew/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. =20 This section is used to define the GUID Value for Protocol C Names. =20 +The section tag modifier, `Private`, is used to restrict the EDK II build +system by preventing references to content in these sections from being us= ed by +modules outside of the package. + This section use ones of the following section definitions: =20 ```ini [Protocols] =20 +[Protocols.common] + +[Protocols.common.Private] + [Protocols.IA32] =20 +[Protocols.IA32.Private] + [Protocols.X64] =20 +[Protocols.X64.Private] + [Protocols.IPF] =20 +[Protocols.IPF.Private] + [Protocols.EBC] =20 -[Protocols.common] +[Protocols.EBC.Private] +``` + +Architectural sections may also be combined, as in: + +```ini +[Protocols.IA32, Protocols.X64] + +[Protocols.IA32.Private, Protocols.X64.Private] ``` =20 Format for the entries in this section is two fields with an equal "=3D" diff --git a/2_dec_file_overview/28_[ppis]_usage.md b/2_dec_file_overview/2= 8_[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. =20 This section is used to define the GUID Value for PPI C Names. =20 +The section tag modifier, `Private`, is used to restrict the EDK II build +system by preventing references to content in these sections from being us= ed by +modules outside of the package. + This section use ones of the following section definitions: =20 ```ini [Ppis] =20 +[Ppis.common] + +[Ppis.common.Private] + [Ppis.IA32] =20 +[Ppis.IA32.Private] + [Ppis.X64] =20 +[Ppis.X64.Private] + [Ppis.IPF] =20 +[Ppis.IPF.Private] + [Ppis.EBC] =20 -[Ppis.common] +[Ppis.EBC.Private] +``` + +Architectural sections may also be combined, as in: + +```ini +[Ppis.IA32, Ppis.X64] + +[Ppis.IA32.Private, Ppis.X64.Private] ``` =20 Format for the entries in this section is two fields with an equal "=3D" 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. =20 ```c ::=3D "[Includes" [] "]" * - ::=3D {".common"} {} + ::=3D {} {} + ::=3D {".common"} {} + ::=3D {".common.Private"} {} ::=3D ["," "Includes" ]* ::=3D "." + ::=3D ["," "includes" ]* + ::=3D "." ".Private" ::=3D {} {} ::=3D * @@ -84,6 +88,14 @@ specific architecture. It is permissible to specify incl= ude directory entries under all architectures except `"common`" if different include directories= are required for different architectures. =20 +It is NOT permissible to mix section tags without the `Private` modifier w= ith +section tags with the `Private` modifier. If this condition is detected, t= he +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. =20 ```c ::=3D "[Guids" [] "]" * - ::=3D {".common"} {} + ::=3D {} {} + ::=3D {".common"} {} + ::=3D {".common.Private"} {} ::=3D ["," "Guids" ]* ::=3D "." + ::=3D ["," "Guids" ]* + ::=3D "." ".Private" ::=3D [] {} {} ::=3D [] @@ -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. =20 +It is NOT permissible to mix section tags without the `Private` modifier w= ith +section tags with the `Private` modifier. If this condition is detected, t= he +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. =20 ```c ::=3D "[Protocols" [] "]" * - ::=3D {".common"} {} + ::=3D {} {} + ::=3D {".common"} {} + ::=3D {".common.Private"} {} ::=3D ["," "Protocols" ]8 ::=3D "." + ::=3D ["," "Protocols" ]* + ::=3D "." ".Private" ::=3D [] {} {} ::=3D [] @@ -80,6 +84,14 @@ specific architecture. It is permissible to specify Prot= ocol entries under all architectures except `"common`" if different Guid values may be required f= or different architectures. =20 +It is NOT permissible to mix section tags without the `Private` modifier w= ith +section tags with the `Private` modifier. If this condition is detected, t= he +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. =20 ```c ::=3D "[Ppis" [] "]" * - ::=3D {".common"} {} + ::=3D {} {} + ::=3D {".common"} {} + ::=3D {".common.Private"} {} ::=3D ["," "Ppis" ]* ::=3D "." + ::=3D ["," "Ppis" ]* + ::=3D "." ".Private" ::=3D [] {} {} ::=3D [] @@ -81,6 +85,14 @@ architecture. It is permissible to specify PPI entries u= nder all architectures except `"common`" if different Guid values may be required for different architectures. =20 +It is NOT permissible to mix section tags without the `Private` modifier w= ith +section tags with the `Private` modifier. If this condition is detected, t= he +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=3D465= ) DEC spec: document private definitions | = | --=20 2.6.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Sun May 5 04:41:57 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1493082623898508.5328390867277; Mon, 24 Apr 2017 18:10:23 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 8488A20D770D2; Mon, 24 Apr 2017 18:10:12 -0700 (PDT) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3BB6921954084 for ; Mon, 24 Apr 2017 18:10:11 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Apr 2017 18:10:11 -0700 Received: from mdkinney-mobl.amr.corp.intel.com ([10.241.98.36]) by fmsmga006.fm.intel.com with ESMTP; 24 Apr 2017 18:10:10 -0700 X-Original-To: edk2-devel@lists.01.org X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,247,1488873600"; d="scan'208";a="93697960" From: Michael Kinney To: edk2-devel@lists.01.org Date: Mon, 24 Apr 2017 18:10:06 -0700 Message-Id: <1493082606-9348-5-git-send-email-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.6.3.windows.1 In-Reply-To: <1493082606-9348-1-git-send-email-michael.d.kinney@intel.com> References: <1493082606-9348-1-git-send-email-michael.d.kinney@intel.com> Subject: [edk2] [ edk2-DecSpecification PATCH 4/4] Declarations not allowed to be both public and private X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin W Shaw , Liming Gao MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" https://bugzilla.tianocore.org/show_bug.cgi?id=3D482 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 Cc: Yonghong Zhu Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Kinney Reviewed-by: Laszlo Ersek Reviewed-by: Yonghong Zhu =20 --- 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. =20 For example, `[Includes.common, Includes.IA32.Private]` is prohibited. =20 +It is NOT permissible for the same include directory to be listed in secti= on +tags with and without the `Private` modifier. If this condition is detecte= d, +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 =20 ```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. =20 For example, `[Guids.common, Guids.IA32.Private]` is prohibited. =20 +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 t= ools +must terminate with an error message. + +For example, the following is prohibited because the GUID named `MyPrivate= Guid` +is listed in a tag with and without a `Private` modifier. + +``` +[Guids] + MyPrivateGuid =3D { 0x1e96808b, 0xfa93, 0x4230, { 0xb5, 0x6b, 0x96, 0xc5= , 0x95, 0x9b, 0xd1, 0xd2 }} + +[Guids.common.Private] + MyPrivateGuid =3D { 0x1e96808b, 0xfa93, 0x4230, { 0xb5, 0x6b, 0x96, 0xc5= , 0x95, 0x9b, 0xd1, 0xd2 }} +``` + #### Example =20 ```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. =20 For example, `[Protocols.common, Protocols.IA32.Private]` is prohibited. =20 +It is NOT permissible for the same protocol to be listed in section tags w= ith +and without the `Private` modifier. If this condition is detected, the bui= ld +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` modifi= er. + +``` +[Protocols] + MyPrivateProtocol =3D { 0xc7c4a20f, 0xd1d1, 0x427a, { 0xb0, 0x82, 0xa8, = 0xb6, 0x24, 0xf7, 0x69, 0x4f }} + +[Protocols.common.Private] + MyPrivateProtocol =3D { 0xc7c4a20f, 0xd1d1, 0x427a, { 0xb0, 0x82, 0xa8, = 0xb6, 0x24, 0xf7, 0x69, 0x4f }} +``` + #### Example =20 ```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. =20 For example, `[Ppis.common, Ppis.IA32.Private]` is prohibited. =20 +It is NOT permissible for the same PPI to be listed in section tags with a= nd +without the `Private` modifier. If this condition is detected, the build t= ools +must terminate with an error message. + +For example, the following is prohibited because the PPI named `MyPrivateP= pi` +is listed in a tag with and without a `Private` modifier. + +``` +[Ppis] + MyPrivatePpi =3D { 0x10ed6a18, 0xbbf7, 0x4051, { 0xba, 0xb8, 0xb4, 0x90,= 0x1a, 0x65, 0xa2, 0xc5 }} + +[Ppis.common.Private] + MyPrivatePpi =3D { 0x10ed6a18, 0xbbf7, 0x4051, { 0xba, 0xb8, 0xb4, 0x90,= 0x1a, 0x65, 0xa2, 0xc5 }} +``` + #### Example =20 ```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. =20 ### Revision History =20 -| Revision | Revision History = | Date = | -| ---------- | -----------------------------------------------------------= -------------------------------------------------------------- | ----------= ----- | -| 1.0 | Initial release. = | December 2= 007 | -| 1.1 | Updated based on errata = | August 200= 8 | -| 1.2 | Updated based on enhancement requests = | June 2009 = | -| 1.21 | Updated based on errata and for enhancement requests = | January 20= 10 | -| | 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 2= 011 | -| Errata A | Updated to support UEFI version 2.3.1 and updated spec rele= ase 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 `` = | = | -| | 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 M= acros section | = | -| | Specifically state where `` can be used, and wher= e 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 b= e replaced by a MACROVAL | = | -| | Clarify that C data arrays must be byte arrays for PCD valu= e 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 a= lso common | = | -| | Changed `` to `` in = | = | -| | 3.4 = | = | -| | Defined `` as a `` for this release= (need to allow registry format in a future release) | = | -| | Update the [Includes], [Guids], [Protocols], [PPIs], [Libra= ryClasses] and PCD sections to allow an empty section | = | -| | Updated the format for ``, `` and `<= UnicodeString>` | = | -| | Update PATH related EBNF = | = | -| | Add `` 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 `` 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 `` for error num= bers 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 Erra= ta letters. | = | -| (cont.) | In Section 3.10 modified the optional error number in = | = | -| | DoxComment definitions for PCDs from ``+ to = | = | -| | and defined to be of type ; | = | -| | also added a "\|" after the value to separate the error cod= e from numeric values | = | -| | Added AsBuilt entries for Abstract and Description = | = | -| | Clarified that the file must use the DOS end-of-line charac= ter sequence, `0x0D 0x0A` | = | -| 1.22 w/ | Updates: = | August 201= 3 | -| 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 o= f common with any other architecture. | = | -| | Ensure that wording specifically states that the architectu= re 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 th= e PCD | = | -| | Added reference to the EDK II Build Specification for PCD p= rocessing rules. | = | -| 1.24 | `Updates;` = | August 201= 4 | -| | 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]` secti= on | = | -| | Added reserved TianoCore user extension, for = | = | -| | `"ExtraFiles"` = | = | -| | Added PCD comment type for # [Error] which is used to map a= n error code for a given token space to a specific string. | = | -| 1.24 w/ | Updates: = | December 2= 014 | -| Errata A | Changed DEC_SPECIFICATION to 0x00010018 and allow specifyin= g it as a decimal, i.e., 1.24. | = | -| | Updated specification dates and added two new specification= s 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 201= 5 | -| Errata C | Clarify that #include statements are not permitted in UNI f= ile specified in the PACKAGE_UNI_FILE entry | = | -| 1.25 | Updates: = | January 20= 15 | -| | Specification revision to 1.25 = | = | -| | Revised WORKSPACE wording for updated build system that can= handle | = | -| | packages located outside of the WORKSPACE directory tree (r= efer 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=3D465= ) 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 rele= ase 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 `` = = | | +| | 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 M= acros section = | | +| | Specifically state where `` can be used, and wher= e 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 b= e replaced by a MACROVAL = | | +| | Clarify that C data arrays must be byte arrays for PCD valu= e 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 a= lso common = | | +| | Changed `` to `` in = = | | +| | 3.4 = = | | +| | Defined `` as a `` for this release= (need to allow registry format in a future release) = | | +| | Update the [Includes], [Guids], [Protocols], [PPIs], [Libra= ryClasses] and PCD sections to allow an empty section = | | +| | Updated the format for ``, `` and `<= UnicodeString>` = | | +| | Update PATH related EBNF = = | | +| | Add `` 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 `` 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 `` for error num= bers 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 Erra= ta letters. = | | +| (cont.) | In Section 3.10 modified the optional error number in = = | | +| | DoxComment definitions for PCDs from ``+ to = = | | +| | and defined to be of type ; = | | +| | also added a "\|" after the value to separate the error cod= e from numeric values = | | +| | Added AsBuilt entries for Abstract and Description = = | | +| | Clarified that the file must use the DOS end-of-line charac= ter 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 o= f common with any other architecture. = | | +| | Ensure that wording specifically states that the architectu= re 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 th= e PCD = | | +| | Added reference to the EDK II Build Specification for PCD p= rocessing 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]` secti= on = | | +| | Added reserved TianoCore user extension, for = = | | +| | `"ExtraFiles"` = = | | +| | Added PCD comment type for # [Error] which is used to map a= n 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 specifyin= g it as a decimal, i.e., 1.24. = | | +| | Updated specification dates and added two new specification= s 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 f= ile 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 (r= efer 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=3D465= ) DEC spec: document private definitions = | | +| | [#482](https://bugzilla.tianocore.org/show_bug.cgi?id=3D482= ) DEC Spec: add clarification for [Ppis], [Guids], [Protocols], [Includes] = Private support | | --=20 2.6.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel