diff options
Diffstat (limited to 'BaseTools/Conf/XMLSchema/DistributionPackage.xsd')
-rw-r--r-- | BaseTools/Conf/XMLSchema/DistributionPackage.xsd | 2818 |
1 files changed, 0 insertions, 2818 deletions
diff --git a/BaseTools/Conf/XMLSchema/DistributionPackage.xsd b/BaseTools/Conf/XMLSchema/DistributionPackage.xsd deleted file mode 100644 index 23cce9555b..0000000000 --- a/BaseTools/Conf/XMLSchema/DistributionPackage.xsd +++ /dev/null @@ -1,2818 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -Filename: DistributionPackage.xsd - -Copyright (c) 2008, Intel Corp. All rights reserved. - -This program and the accompanying materials are licensed and made available -under the terms and conditions of the BSD License which may be found at - http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - ---> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" - elementFormDefault="qualified" targetNamespace="http://www.uefi.org/2008/1.0" - xmlns="http://www.uefi.org/2008/1.0"> - <xs:element name="DistributionPackage"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI - Distribution Package description (PKG) file. It describes the content - of:</xs:documentation> - <xs:documentation xml:lang="en-us"> 1) Package descriptions with - definitions and headers.</xs:documentation> - <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary - format. (Note that Binary format is for FFS leaf section file types - only, complete FFS files cannot be distributed using this distribution - format.) </xs:documentation> - <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools - used to modify the binary images to create UEFI/PI compliant images. </xs:documentation> - <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to - distribute other miscellaneous content that is not specific to UEFI/PI - images. </xs:documentation> - <xs:documentation xml:lang="en-us"> The Package Surface Area describes the - content of packages, while the Module Surface Area provides information - relevant to source and/or binary distributions. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This header contains (legal) - information usually required for distributing both binary and/or - source code. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The list of packages in this - distribution. </xs:documentation> - <xs:documentation xml:lang="en-us"> Packages are groups of files - and/or modules that are similar in nature.</xs:documentation> - <xs:documentation xml:lang="en-us"> Packages are uniquely identified - by a package GUID and a package version. </xs:documentation> - <xs:documentation xml:lang="en-us"> A package can declare public - mappings of C names to GUID values. </xs:documentation> - <xs:documentation xml:lang="en-us"> A package can provide header - files for library classes and/or other industry standard - definitions. </xs:documentation> - <xs:documentation xml:lang="en-us"> A package can also declare - public mappings of platform configuration database (PCD) - "knobs" to control features and operation of - modules within a platform. </xs:documentation> - <xs:documentation xml:lang="en-us"> Finally, a package lists the - library instances and/or modules that are provided in a - distribution package. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant - modules in this distribution that are NOT part of a Package. Every - module that is provided as part of a package needs to be described - in a PackageSurfaceArea.Modules section. </xs:documentation> - <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section - describes how each module in a distribution is coded, or, in the - case of a binary module distribution, how it was built. </xs:documentation> - <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and - modules are uniquely identified by the Module's GUID and version - number. </xs:documentation> - <xs:documentation xml:lang="en-us"> This section will typically be - used for modules that don't require any additional files that - would be included in a package. For example, the Enhanced FAT - driver binary does not need to have a package description, as no - additional files are provided. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section is for distributing - vendor specific executable tools, tool source code and/or - configuration files. These tools are primarily for manipulating - code and/or binary images. </xs:documentation> - <xs:documentation xml:lang="en-us"> Tools in this section - can:</xs:documentation> - <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files - to create source code files and build scripts. </xs:documentation> - <xs:documentation xml:lang="en-us"> 2) Modify image files to conform - to UEFI/PI specifications. </xs:documentation> - <xs:documentation xml:lang="en-us"> 3) Generate binary files from - certain types of text/unicode files. </xs:documentation> - <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or - Firmware Device images. </xs:documentation> - <xs:documentation xml:lang="en-us"> 5) Implement external - encoding/decoding/signature/GUIDed tools. </xs:documentation> - <xs:documentation xml:lang="en-us"> 6) Distribution Package - create/install/remove tools. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The list of miscellaneous files - in this distribution. Any files that are not listed in either the - Package, Module or Tools sections can be listed here. This section - can be used to distribute specifications for packages and modules - that are not "industry standards" such as a - specification for a chipset or a video device. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The UserExtensions section is - used to disseminate processing instructions that may be custom to - the content provided by the distribution. This section contains - information that is common to all aspects of this disribution. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - - </xs:complexType> - </xs:element> - <!-- End of the DistributionPackage Description --> - - <xs:element name="DistributionHeader"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section defines the content of - the UEIF/PI compliant Distribution Package Header. This is the only - required element of a UEFI/PI compliant distribution package. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="Name"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the User Interface Name - for this Distribution Package. </xs:documentation> - <xs:documentation xml:lang="en-us"> Each Distribution Package is - uniquely identified by it's GUID and Version number. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:normalizedString"> - <xs:attribute name="BaseName" type="xs:NCName" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The reference name of - the Distribution Package file. This single word name can - be used by tools as a keyword or for directory and/or file - creation. </xs:documentation> - <xs:documentation xml:lang="en-us"> White space and special - characters (dash and underscore characters may be used) - are not permitted in this name. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This 128-bit GUID and the - Version attribute uniquely identify this Distribution Package. </xs:documentation> - <xs:documentation xml:lang="en-us"> Backward compatible releases of - a distribution package need only change the version number, while - non-backward compatible changes require the GUID to change - (resetting the version number to 1.0 is optional.) - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" type="xs:decimal" use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This value, along with - the GUID, is used to uniquely identify this object. The - higher the number, the more recent the content. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="Vendor" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A string identifying who created - this distribution package. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The date and time this - distribution was created. The format is: YYYY-MM-DDThh:mm:ss, for - example: 2001-01-31T13:30:00 (note the T character separator - between the calendar date and the time. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="Copyright" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The copyright for this file that - is generated by the creator of the distribution. If a derivative - work is generated from an existing distribution, then the existing - copyright must be maintained, and additional copyrights may be - appended to the end of this element. It may also be the primary - copyright for all code provided in the Distribution Package. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="License" type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A license that describes any - restrictions on the use of this distribution. If a derivative work - is allowed by the original license and a derivative work is - generated from an existing distribution, then the existing license - must be maintained, and additional licenses may be appended to the - end of this element. It may also be the primary license for all - code provided in the distribution file. Alternatively, this may - point to a filename that contains the License. The file (included - in the content zip file) will be stored in the same location as - the distribution package’s .pkg file. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="Abstract" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A one line description of the - Distribution Package. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Description" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A complete description of the - Distribution Package. This description may include the release - name of the file, the version of the file, and a complete - description of the file contents and/or features including a - description of the updates since the previous file release. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The packaging utilities will use - this MD5 sum value of the included ZIP file containing files - and/or code. If this element is not present, then installation - tools should assume that the content is correct, or that other - methods may be needed to verify content. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" - type="xs:decimal" default="1.0"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This version of this XML Schema - is 1.0 </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - <xs:attribute name="ReadOnly" type="xs:boolean" default="false" - use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If set to true, all content within - this Distribution Package should NOT be modified. The default - permits modification of all content. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="RePackage" type="xs:boolean" default="false" - use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If set to true, then the content - can be repackaged into another distribution package. The default - prohibits repackaging the Distribution content. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - </xs:element> - <!-- End of the DistributionHeader element. --> - - <xs:element name="PackageSurfaceArea"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A package is a collection of related - objects - Includes, Libraries and Modules. </xs:documentation> - <xs:documentation xml:lang="en-us"> Each package is uniquely identified by - it's GUID and Version number. Backward compatible releases of a package - need only change the version number, while non-backward compatible - changes require the GUID to change (resetting the version number to 1.0 - is optional.) </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - - <xs:element minOccurs="1" maxOccurs="1" name="Header"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="Name"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the User Interface - Name for this package. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:normalizedString"> - <xs:attribute name="BaseName" type="xs:NCName" - use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is a single - word BaseName of the package. This BaseName can be - used by tools as a keyword and for directory/file - creation. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This GUID and the Version - attribute uniquely identify a given package. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" type="xs:decimal" - use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This value, along - with the GUID, is used to uniquely identify this - object. </xs:documentation> - <xs:documentation xml:lang="en-us"> Backward - compatible changes must make sure this number is - incremented from the most recent version. - Non-backward compatible changes require a new GUID, - and the version can be reset. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Copyright" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If the package requires a - different copyright than the distribution package, this - element can list one or more copyright lines. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="License" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If the package requires - licenses that are different from the distribution package - license, this element can contain one or more license text - paragraphs (or license filenames.) </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Abstract" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A one line description of - this package. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Description" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A complete description of - a package. This description may include the release name of - the package, the version of the package, and a complete - description of the package contents and/or features - including a description of the updates since the previous - package’s release. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="PackagePath" - type="xs:anyURI"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This element is the - location (in the ZIP file) for the root directory of a - package. </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea Header element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The term cloned is used here to - indicate that this package as been copied and modified to a - completely different package. An example might be for a new - generation of chipsets that have few or no elements in common with - the original. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This GUID and the Version - attribute uniquely identify the Package that this Package - was copied from. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" type="xs:decimal" - use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This value, along - with the GUID, is used to uniquely identify the - package that this package was cloned from. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea ClonedFrom element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Library Classes are public - interfaces that can be used by modules. One or more library - instances can implement a library class, however only one library - instance can be linked to an individual module. This provides the - platform integrator with the flexibility of choosing one library - instance's implementation over a different library instance. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" - name="LibraryClass"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" - type="xs:anyURI"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The header file - provides definitions and function prototypes for a - library class. Modules can be coded against these - functions, using the definitions in this header, - without concerning themselves about the libraries' - implementation details. This is a PackagePath relative - path and filename for the include file. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" - name="RecommendedInstance"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This GUID and - the Version attribute uniquely identify the - Recommended Library Instance. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" type="xs:decimal" - use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This - value, along with the GUID, is used to - uniquely identify this object. If this - value is not specified, then any version - of the library instance is recommended. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="Keyword" type="xs:NCName" use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The single word name - of the Library Class that module developers will use to - identify a library class dependency. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attributeGroup ref="SupportedArchMod" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea LibraryClassDeclarations element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section is used to list - header files for industry standards not under the auspices of - UEFI.org. For example, headers that contain definitions and data - structures for the USB specifications. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" - name="IndustryStandardHeader"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" - type="xs:anyURI"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The package relative - path and filename (in the content zip file) of the - industry standard include file. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea IndustryStdIncludes element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> All top level header files that - are included by a package that are not listed above. They cannot - be:</xs:documentation> - <xs:documentation xml:lang="en-us"> 1) Local to a module (module - specific.) </xs:documentation> - <xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation> - <xs:documentation xml:lang="en-us"> 3) A library class header. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" - name="PackageHeader"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the Package - relative path and filename location within the content - ZIP file. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:anyURI"> - <xs:attributeGroup ref="SupportedArchMod" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea PackageIncluces element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="Modules"> - <xs:complexType> - <xs:sequence> - <xs:element ref="ModuleSurfaceArea" minOccurs="1" - maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section lists the - Module Surface Area for all modules provided with this - package. </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea Modules element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section defines the mapping - of GUID C names to GUID values as a Registry Format GUID. </xs:documentation> - <xs:documentation xml:lang="en-us"> Modules that use these GUIDs - must specify their dependency on this package. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Individual GUID - Declarations </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="CName" - type="xs:NCName" /> - <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" - type="RegistryFormatGuid" /> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="UiName" type="xs:normalizedString" use="optional" /> - <xs:attribute name="GuidTypes" type="GuidListType" - use="optional" /> - <xs:attributeGroup ref="SupportedArchMod" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea GuidDeclarations element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section defines the mapping - of Protocol C names to GUID values as a Registry Format GUID. </xs:documentation> - <xs:documentation xml:lang="en-us"> Modules that use these Protocols - must specify their dependency on this package. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Individual Protocol - Declarations </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="CName" - type="xs:NCName" /> - <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" - type="RegistryFormatGuid" /> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="UiName" type="xs:normalizedString" use="optional" /> - <xs:attributeGroup ref="SupportedArchMod" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea ProtocolDeclarations element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section defines the mapping - of Ppi C names to GUID values as a Registry Format GUID. </xs:documentation> - <xs:documentation xml:lang="en-us"> Modules that use these Ppis must - specify their dependency on this package. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Individual PPI - Declarations </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="CName" - type="xs:NCName" /> - <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" - type="RegistryFormatGuid" /> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="UiName" type="xs:normalizedString" use="optional" /> - <xs:attributeGroup ref="SupportedArchMod" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea PpiDeclarations element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section is used to declare - platform configuration knobs that are defined by this package. </xs:documentation> - <xs:documentation xml:lang="en-us"> Modules that use these PCD - values must specify their dependency on this package. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" - name="TokenSpaceGuidCname" type="xs:NCName"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Specifies the C name - of the Token Space GUID of which this PCD Entry is a - member. This C name should also be listed in the GUIDs - section, (specified above,) where the C name is - assigned to a GUID value. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="Token"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Specifies the 32-bit - token value for this PCD Entry. The Token number must - be unique to the Token Space that declares the PCD. </xs:documentation> - <xs:documentation xml:lang="en-us"> The minLength of 3 - is required to handle the "0x" prefix to the hex - number. </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - <xs:maxLength value="10" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="CName" - type="xs:NCName" /> - <xs:element minOccurs="1" maxOccurs="1" name="DatumType" - type="PcdDatumTypes"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A string that - contains the data type of this PCD Entry. PCD data - types are restricted to the following set:UINT8, - UINT16, UINT32, UINT64, VOID*, BOOLEAN. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" - type="PcdItemListType"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A string that - contains one or more PCD Item types separated by - spaces. The PCD Item types are restricted to - FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue" - type="xs:normalizedString" /> - <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is a - recommended maximum data size for VOID* data types, - the actual value should be defined by the Platform - Integrator. It is not required for the other data - types. </xs:documentation> - <xs:documentation xml:lang="en-us"> The minLength of 3 - is required to handle the "0x" prefix to the hex - number. </xs:documentation> - - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - - <xs:element minOccurs="0" maxOccurs="unbounded" - name="PcdError"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Valid Error messages - that may be implemented in a module for the PCD Entry. - Only One Error Number per PcdError, (multiple - ErrorMessage entries are permitted) and multiple - PcdError elements are permitted. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:choice minOccurs="1" maxOccurs="1"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> One of the - following types of comparisons, which must be - able to evaluate to either true or false. - </xs:documentation> - </xs:annotation> - <xs:element minOccurs="0" maxOccurs="1" - name="ValidValueList"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The PCD - Value must be space separated list of values. - Values are restricted to the data type of this - PCD. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:normalizedString"> - <xs:attribute name="Lang" type="xs:language" - use="optional" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" - name="ValidValueRange" type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The PCD must - be within a specifed range of numeric values. - Restricted to C style Relational, Equality and - Logicial Operators and parenthesis are valid. - Only the CName for this PCD is permitted in - the ValidValueRange expression. All other - values must be numeric.</xs:documentation> - <xs:documentation xml:lang="en-us"> LValue (op - RValue)+ </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" - name="Expression" type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A in-fix - logical expression using C style logical - operators. </xs:documentation> - </xs:annotation> - </xs:element> - </xs:choice> - <xs:element minOccurs="1" maxOccurs="1" - name="ErrorNumber"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A hexadecimal - value for the error message as defined by - specifications. </xs:documentation> - <xs:documentation xml:lang="en-us"> The minLength - of 3 is required to handle the "0x" prefix to - the hex number. </xs:documentation> - - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="unbounded" - name="ErrorMessage"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This string - should be defined by specifications. There are - pre-defined error number ranges in the UEFI/PI - specificaiton. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="Lang" type="xs:language" - default="en-us" use="optional" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - <xs:attributeGroup ref="SupportedArchMod" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea PcdDeclarations element. --> - - <xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section is used to describe - any PCD interdependencies or relationships. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This entry must used - TokenSpaceGuidCName.PcdCname for every named PCD. Restricted - to Relational, Equality and Logical Operators (NOT, AND, OR, - GT, GE, EQ, LE, LT and XOR) and parenthesis are valid. Only - the TokenSpaceGuidCName.PcdCname us permitted to name PCDs - in the expression. All other values must be numeric. </xs:documentation> - <xs:documentation xml:lang="en-us"> LValue (op RValue)+ - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element minOccurs="0" maxOccurs="unbounded" - name="MiscellaneousFiles"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section contains files that - are not part of the code distributed with this package. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" name="Copyright" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Only required if different - from the Package Copyright. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="License" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Only required if different - from the Package License. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Abstract" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A one line description of - this section's content. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A complete description of - the files in this section. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the PackagePath - relative path and filename location within the ZIP file. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:anyURI"> - <xs:attribute name="Executable" type="xs:boolean" - default="false" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If true, used by - installation tools to ensure that a file that must - be executable has the correct properties to permit - execution. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea Misc element. --> - - <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section is used for any - processing instructions that may be custom to the content provided - by this package that are common to this package. - </xs:documentation> - </xs:annotation> - <xs:complexType mixed="true"> - <xs:sequence> - <xs:any processContents="lax" minOccurs="0" maxOccurs="1" /> - </xs:sequence> - <xs:attribute name="UserId" type="xs:NCName" use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is a single word - identifier for grouping similar content that does not fit into - previously defined sections or other sections of the - Distribution. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="Identifier" type="xs:string" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This can be used to - differentiate multiple sections with a grouping. </xs:documentation> - <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS - Identifier might indicate specific steps and tools required - before processing module content, while a different - UserExtensions section with a POST_PROCESS Identifier might - describe steps that need to be executed after operations on - the modules in this package. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:anyAttribute processContents="lax" /> - </xs:complexType> - </xs:element> - <!-- End of PackageSurfaceArea UserExtensions element. --> - - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of the PackageSurfaceArea element. --> - - <xs:element name="ModuleSurfaceArea"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Each module is uniquely identified by - it's GUID and Version number. Backward compatible releases of a module - need only change the version number, while non-backward compatible - changes require the GUID to change (resetting the version number to 1.0 - is optional.) </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - - <xs:element minOccurs="1" maxOccurs="1" name="Header"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="Name"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the User Interface - Name for this Module. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:normalizedString"> - <xs:attribute name="BaseName" type="xs:NCName" - use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is a single - word BaseName that will be used to create a module - meta-data file. </xs:documentation> - <xs:documentation xml:lang="en-us"> This name should - also be used to create output file names and - directories. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This GUID and the Version - attribute uniquely identify a given Module. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" type="xs:decimal" - use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This value, along - with the GUID, is used to uniquely identify this - object. </xs:documentation> - <xs:documentation xml:lang="en-us"> Backward - compatible changes must make sure this number is - incremented from the most recent version. - Non-backward compatible changes require a new GUID, - and the version can be reset. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Copyright" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is only required if - the Copyright is different from either the Package or - Distribution copyright. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="License" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is only required if - the license is different from either the Package or - Distribution license. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Abstract" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A brief text description - of the module. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Description" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A complete description of - the module contents and/or features including a description - of the updates since the previous module release. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of Module Surface Area Header Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> List general information about a - module, including the Supported Architectures, this module's type, - specifications the module is coded against, and other - informational content. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="ModuleType" - type="ModuleTypes"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> One of the Enumerated - module types that limit the use of a module. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" name="Path" - type="xs:anyURI"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> For stand-alone modules - that are NOT part of any package, this is the path to the - root of the module as listed in the ZIP file. For modules - included in a package, this is the location, relative to the - root of the package (PackagePath) this module belongs to. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This element is only - required for the PEIM that produces the PCD PPI or the DXE - Driver that produces the PCD Protocol. </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="PEI_PCD_DRIVER" /> - <xs:enumeration value="DXE_PCD_DRIVER" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - - <xs:element minOccurs="0" maxOccurs="1" - name="UefiSpecificationVersion" type="xs:decimal" /> - - <xs:element minOccurs="0" maxOccurs="1" - name="PiSpecificationVersion" type="xs:decimal" /> - - <xs:element minOccurs="0" maxOccurs="unbounded" - name="Specification"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is a list of other - specifications that this module is written against. These - entries can be used in #define statements (depending on the - build system implementation, they may be autogenerated.) - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:NCName"> - <xs:attribute name="Version" type="xs:decimal" - use="required" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - - <xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Different firmware - execution paths may be taken based on a given state of the - hardware, firmware, or through feature settings. A BootMode - may be declared (PRODUCES) or discovered (CONSUMES) based on - these states and feature settings. The supported boot modes - map to the PI specification Boot Modes. The boot modes - listed with Recovery are to indicate that the BootMode is - valid during a recovery boot. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence minOccurs="0"> - <xs:element minOccurs="1" maxOccurs="1" - name="SupportedBootModes"> - <xs:simpleType> - <xs:list> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="FULL" /> - <xs:enumeration value="MINIMAL" /> - <xs:enumeration value="NO_CHANGE" /> - <xs:enumeration value="DIAGNOSTICS" /> - <xs:enumeration value="DEFAULT" /> - <xs:enumeration value="S2_RESUME" /> - <xs:enumeration value="S3_RESUME" /> - <xs:enumeration value="S4_RESUME" /> - <xs:enumeration value="S5_RESUME" /> - <xs:enumeration value="FLASH_UPDATE" /> - <xs:enumeration value="RECOVERY_FULL" /> - <xs:enumeration value="RECOVERY_MINIMAL" /> - <xs:enumeration value="RECOVERY_NO_CHANGE" /> - <xs:enumeration value="RECOVERY_DIAGNOSTICS" /> - <xs:enumeration value="RECOVERY_DEFAULT" /> - <xs:enumeration value="RECOVERY_S2_RESUME" /> - <xs:enumeration value="RECOVERY_S3_RESUME" /> - <xs:enumeration value="RECOVERY_S4_RESUME" /> - <xs:enumeration value="RECOVERY_S5_RESUME" /> - <xs:enumeration value="RECOVERY_FLASH_UPDATE" /> - </xs:restriction> - </xs:simpleType> - </xs:list> - </xs:simpleType> - </xs:element> - - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="Usage" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="CONSUMES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module - always supports the given boot modes. - </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SOMETIMES_CONSUMES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module may - support a given mode on some execution paths. - </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PRODUCES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module will - change the boot mode. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SOMETIME_PRODUCES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module will - change the boot mode on some exection paths. - </xs:documentation> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - - <xs:element minOccurs="0" maxOccurs="unbounded" name="Event" - nillable="true"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The functions that make up - the Event, Timer, and Task Priority Services are used during - preboot to create, close, signal, and wait for events; to - set timers; and to raise and restore task priority levels as - defined in the UEFI specification. GUIDed events should be - listed in the Guids section. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="Usage" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="CONSUMES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module will - register a notification function and calls the - function when it is signaled. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SOMETIMES_CONSUMES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module will - register a notification function and calls the - function when it is signaled on some execution - paths. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PRODUCES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module will - signal all events in an event group. - </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SOMETIMES_PRODUCES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module will - signal all events in an event group under some - execution paths. </xs:documentation> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="EventType" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER" /> - <xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER" /> - </xs:restriction> - </xs:simpleType> - - - </xs:attribute> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - - <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB" - nillable="false"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is a list of - non-GUIDed Hand Off Blocks (HOBs) produced or consumed by - this module. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="HobType" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="PHIT" /> - <xs:enumeration value="MEMORY_ALLOCATION" /> - <xs:enumeration value="RESOURCE_DESCRIPTOR" /> - <xs:enumeration value="FIRMWARE_VOLUME" /> - <xs:enumeration value="LOAD_PEIM" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="Usage" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="CONSUMES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A HOB must be - present in the system. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SOMETIMES_CONSUMES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If present, the - HOB will be used. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PRODUCES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The HOB is - always produced by the module. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SOMETIMES_PRODUCES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The HOB may be - produced by the module under some execution paths. - </xs:documentation> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - - </xs:sequence> - <xs:attributeGroup ref="SupportedArchMod" /> - </xs:complexType> - </xs:element> - <!-- End of ModuleProperties Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section may be included for - Modules that are copied from a different module. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This GUID and the Version - attribute uniquely identify the Module that this Module was - copied from. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" type="xs:decimal" - use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This value, along - with the GUID, is used to uniquely identify this - object. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of ClonedFrom Section. --> - - <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A list of the different Library - Classes consumed by a driver, core and/or application module, or - produced by a Library module. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" - name="LibraryClass"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="Keyword" - type="xs:NCName"> - <xs:annotation> - <xs:documentation xml:lang="en-us "> Used by tools to - identify different instances of libraries that provide - the library class. This keyword identifies the library - class this module needs to be linked against. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" - name="RecommendedInstance"> - <xs:complexType> - <xs:all> - <xs:element minOccurs="1" maxOccurs="1" name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This GUID and - the Version attribute uniquely identify the - recommended Library Instance for this module . - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" type="xs:decimal" - use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This - value, along with the GUID, is used to - uniquely identify this object. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:all> - </xs:complexType> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="Usage" use="required"> - <xs:simpleType> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Library instances - can provide code for a library class, or may require - other library instances themselves. Since different - execution paths in a library (or module) may need - different library classes based on some setting, - library classes may not alway be required. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="PRODUCES" /> - <xs:enumeration value="CONSUMES" /> - <xs:enumeration value="SOMETIMES_CONSUMES" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - - <xs:attributeGroup ref="SupportedArchMod" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A FeatureFlag - attribute must evaluate to either true or false - it may - be a fixed value of true or false, a C name or an in-fix - expression. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of LibraryClassDefinitions Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="SourceFiles"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the module - relative (ModuleProperties.Path) path and filename location - within the ZIP file. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:anyURI"> - <xs:attribute name="Family" type="FamilyTypes" - use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The Family - attribute is used to restrict usage to a given - family of compilers, such as GCC or MSFT. Since not - all code processing tools use the same syntax, - especially for assembly, this field can be used to - identify different syntax. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" - type="xs:normalizedString" use="optional" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of SourceFiles Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="BinaryFiles"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="BinaryFile"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" - name="Filename"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the module - relative (ModuleProperties.Path) path and filename - location within the ZIP file. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:anyURI"> - <xs:attribute name="FileType" use="optional"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Binary - file distribution is limited to UEFI/PI - FFS leaf section file types. - </xs:documentation> - </xs:annotation> - <xs:enumeration value="GUID" /> - <xs:enumeration value="FREEFORM" /> - <xs:enumeration value="UEFI_IMAGE" /> - <xs:enumeration value="PE32"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A - UEFI/PI FFS Leaf section file type, not - a raw PE32 file. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PIC" /> - <xs:enumeration value="PEI_DEPEX" /> - <xs:enumeration value="DXE_DEPEX" /> - <xs:enumeration value="TE" /> - <xs:enumeration value="VER" /> - <xs:enumeration value="UI" /> - <xs:enumeration value="BIN" /> - <xs:enumeration value="FV" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" - type="xs:normalizedString" use="optional" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element minOccurs="0" maxOccurs="unbounded" - name="AsBuilt"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section - contains information about how the module was coded, - such as Compiler Tools, Flags, PCDs (only PatchPcd - and/or PcdEx) and Library Class Instances used to - build the binary. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - - <xs:element minOccurs="0" maxOccurs="unbounded" - name="PatchPcdValue"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The element is - the Patchable PCD Value that was used during the - build. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" - name="TokenSpaceGuidValue" - type="RegistryFormatGuid" /> - <xs:element minOccurs="1" maxOccurs="1" - name="PcdCName" type="xs:NCName" /> - <xs:element minOccurs="1" maxOccurs="1" - name="Token"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The - minLength of 3 is required to handle the - "0x" prefix to the hex number. - </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - <xs:maxLength value="10" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" - name="DatumType" type="PcdDatumTypes" /> - <xs:element minOccurs="0" maxOccurs="1" - name="MaxDatumSize"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This - field is required if the Pcd Datum Type is - VOID* </xs:documentation> - <xs:documentation xml:lang="en-us"> The - minLength of 3 is required to handle the - "0x" prefix to the hex number. - </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" - name="Value" type="xs:normalizedString" /> - <xs:element minOccurs="1" maxOccurs="1" - name="Offset"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The - minLength of 3 is required to handle the - "0x" prefix to the hex number. - </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - <xs:element minOccurs="0" maxOccurs="unbounded" - name="PcdError"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Error - information implemented by the module. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" - name="ErrorNumber"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The - minLength of 3 is required to handle the - "0x" prefix to the hex number. - </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element minOccurs="0" - maxOccurs="unbounded" - name="ErrorMessage"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="Lang" - type="xs:language" default="en-us" - use="optional" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element minOccurs="0" maxOccurs="unbounded" - name="PcdExValue"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The element is - the DynamicEx PCD Value that was used during the - build. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" - name="TokenSpaceGuidValue" - type="RegistryFormatGuid" /> - <xs:element minOccurs="1" maxOccurs="1" - name="Token"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The - minLength of 3 is required to handle the - "0x" prefix to the hex number. - </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - <xs:maxLength value="10" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" - name="DatumType" type="PcdDatumTypes" /> - <xs:element minOccurs="0" maxOccurs="1" - name="MaxDatumSize"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This - field is required if the Pcd Datum Type is - VOID* </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="1" - name="Value" type="xs:normalizedString" /> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - <xs:element minOccurs="0" maxOccurs="unbounded" - name="PcdError"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Error - information implemented by the module. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" - name="ErrorNumber"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The - minLength of 3 is required to handle the - "0x" prefix to the hex number. - </xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="HexNumber"> - <xs:minLength value="3" /> - </xs:restriction> - </xs:simpleType> - </xs:element> - <xs:element minOccurs="0" - maxOccurs="unbounded" - name="ErrorMessage"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="Lang" - type="xs:language" default="en-us" - use="optional" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element minOccurs="0" maxOccurs="1" - name="LibraryInstances"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the - actual library instance that was used to link - against the module. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" - name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This - GUID and the Version attribute uniquely - identify the actual Library Instance - linked in this module. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" - type="xs:decimal" use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This - value, along with the GUID, is used to - uniquely identify this object. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element minOccurs="0" maxOccurs="unbounded" - name="BuildFlags"> - <xs:complexType mixed="true"> - <xs:simpleContent> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Any - description of OS, Tool, and flags for the - individual tool can go in this section. - </xs:documentation> - </xs:annotation> - <xs:extension base="xs:string"> - <xs:anyAttribute processContents="lax" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of AsBuilt --> - </xs:sequence> - </xs:complexType> - </xs:element> - - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of BinaryFiles Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="PackageDependencies"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Package"> - <xs:complexType> - <xs:all> - <xs:element minOccurs="0" maxOccurs="1" name="Description" - type="xs:string" /> - <xs:element minOccurs="1" maxOccurs="1" name="GUID"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This GUID and the - Version attribute uniquely identify Package that this - Module depends on. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="RegistryFormatGuid"> - <xs:attribute name="Version" type="xs:decimal" - use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This value, - along with the GUID, is used to uniquely - identify this object. If the version attribute - is not specified, the most recent version of - the package can be used. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:all> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PackageDependencies --> - - <xs:element minOccurs="0" maxOccurs="1" name="Guids"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCName"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="CName" - type="xs:NCName" /> - <xs:element minOccurs="0" maxOccurs="1" name="VariableName" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Only valid for - Variable GUID types. </xs:documentation> - <xs:documentation> This can be either a Hex Array or - Unicode Data. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="Usage" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="CONSUMES"> - <xs:annotation> - <xs:documentation xml:lang="en-us">The module does - not install the GUID, and the GUID must be present - for the module to execute. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SOMETIMES_CONSUMES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module does - not install the GUID, however, the GUID will be - used if it is present. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PRODUCES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The module - always installs the GUID. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SOMETIMES_PRODUCES"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The Module will - install the GUID under certain execution paths. - </xs:documentation> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="GuidType" type="GuidListType" - use="required" /> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of Guids Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="Protocols"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A listing of protocols required - or produced by this module. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol" - nillable="true"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="CName" - type="xs:NCName" /> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="Usage" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="PRODUCES" /> - <xs:enumeration value="SOMETIMES_PRODUCES" /> - <xs:enumeration value="CONSUMES" /> - <xs:enumeration value="SOMETIMES_CONSUMES" /> - <xs:enumeration value="TO_START" /> - <xs:enumeration value="BY_START" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="Notify" type="xs:boolean" use="optional" /> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of Protocols Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="PPIs"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A listing of PPIs required or - produced by this module. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi" - nillable="true"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="CName" - type="xs:NCName" /> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="Usage" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="PRODUCES" /> - <xs:enumeration value="SOMETIMES_PRODUCES" /> - <xs:enumeration value="CONSUMES" /> - <xs:enumeration value="SOMETIMES_CONSUMES" /> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="Notify" type="xs:boolean" use="optional" /> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PPIs Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="Externs"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> These elements specify - additional information about the module. This area may be used by - tools to generate code. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Extern"> - <xs:complexType> - <xs:sequence> - <xs:choice minOccurs="1"> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" - name="EntryPoint" type="xs:NCName" /> - <xs:element minOccurs="0" maxOccurs="1" - name="UnloadImage" type="xs:NCName" /> - </xs:sequence> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" - name="Constructor" type="xs:NCName" /> - <xs:element minOccurs="0" maxOccurs="1" - name="Destructor" type="xs:NCName" /> - </xs:sequence> - </xs:choice> - <xs:element ref="HelpText" minOccurs="0" maxOccurs="1" /> - </xs:sequence> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of Externs Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="PcdCoded"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section describes how a - platform is coded with respect to the platform configuration - knobs. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="CName" - type="xs:NCName" /> - <xs:element minOccurs="1" maxOccurs="1" - name="TokenSpaceGuidCName" type="xs:NCName" /> - <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" - type="xs:normalizedString" /> - <xs:element ref="HelpText" minOccurs="0" - maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="PcdItemType" type="PcdItemTypes" - use="required" /> - <xs:attribute name="PcdUsage" use="required"> - <xs:simpleType> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="PRODUCES" /> - <xs:enumeration value="SOMETIMES_PRODUCES" /> - <xs:enumeration value="CONSUMES" /> - <xs:enumeration value="SOMETIMES_CONSUMES" /> - </xs:restriction> - </xs:simpleType> - - - </xs:attribute> - <xs:attribute name="SupArchList" type="ArchListType" - use="optional" /> - <xs:attribute name="FeatureFlag" type="xs:normalizedString" - use="optional" /> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PcdCoded Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="PeiDepex"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the PEI dependency - expression for a Dependency Section. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="Expression" type="xs:string" minOccurs="1" - maxOccurs="1"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> An in-fix expression, of C - identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER - as well as parenthesis () in the in-fix notation. The - operators are restricted to grammar defined in the PI - specification. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" maxOccurs="1" /> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of PeiDepex Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="DxeDepex"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the DXE dependency - expression for a Dependency Section. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="Expression" type=" xs:string " minOccurs="1" - maxOccurs="1"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> An in-fix expression, of C - identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER - as well as parenthesis () in the in-fix notation. The - operators are restricted to grammar defined in the PI - specification. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" maxOccurs="1" /> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of DxeDepex Section --> - - <xs:element minOccurs="0" maxOccurs="1" name="SmmDepex"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the SMM dependency - expression for a Dependency Section. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element name="Expression" type=" xs:string " minOccurs="1" - maxOccurs="1"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> An in-fix expression, of C - identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER - as well as parenthesis () in the in-fix notation. The - operators are restricted to grammar defined in the PI - specification. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element ref="HelpText" minOccurs="0" maxOccurs="1" /> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of SmmDepex Section --> - - - <xs:element minOccurs="0" maxOccurs="1" name="MiscellaneousFiles"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section is used to provide - comments and/or list auxiliary files, such as pdb or map files. - </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" name="Description" - type="xs:string" /> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the path and - filename location within the ZIP file. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:anyURI"> - <xs:attribute name="Executable" type="xs:boolean" - default="false" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If true, used by - installation tools to ensure that a file that must - be executable has the correct properties to permit - execution. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of Module Surface Area Misc Section --> - - <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section is used for any - processing instructions that may be custom to the content provided - by the distribution that are common to module. </xs:documentation> - <xs:documentation xml:lang="en-us"> The content is vendor specific. </xs:documentation> - <xs:documentation xml:lang="en-us"> The content can be plain text as - well as any user-defined, properly formatted XML structure. - </xs:documentation> - </xs:annotation> - <xs:complexType mixed="true"> - <xs:attribute name="UserId" type="xs:NCName" use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is a single word - identifier for grouping similar content. For example, - ReferenceBuild might be used to identify non-PI compliant - build steps, with two different UserExtensions sections, one - with an Identifier of Prebuild, and another of PostBuild. Both - UserExtensions sections would use the same UserId. - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="Identifier" type="xs:string" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This can be any string used - to differentiate or identify this section from other - UserExtensions sections. </xs:documentation> - <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS - Identifier might indicate specific steps and tools required - before processing module content, while a different - UserExtensions section with a POST_PROCESS Identifier might - describe steps that need to be executed after operations on - this module. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:anyAttribute processContents="lax" /> - </xs:complexType> - </xs:element> - <!-- End of Module Surface Area UserExtensions Section --> - - </xs:sequence> - <xs:attribute name="BinaryModule" type="xs:boolean" default="false" - use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This attribute is used when the - binaries are distributed for this module and no code generation from - source files is required. If set, then the BinaryFiles section - should be used, and any files listed in the SourceFiles section do - not have to be built. Additionally, the AsBuilt section for each - binary file must be included. </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - - </xs:element> - <!-- End of the ModuleSurfaceArea element. --> - - <xs:element name="Tools"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" name="Header"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="1" maxOccurs="1" name="Name" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us">This is the User Interface - Name for this Tools Distribution.</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Copyright" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is only required if - the Copyright is different from the Distribution Package - copyright. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="License" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is only required if - the License is different from the Distribution Package - license. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Abstract" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is only required if - the Abstract is different from the Distribution Package - Abstract. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Description" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is only required if - the Description is different from the Distribution Package - Description. </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the path and filename - location within the ZIP file. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:anyURI"> - <xs:attribute name="OS" type="SupportedOs" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is required for - tools that execute; it should not be used for - configuration files. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="Executable" type="xs:boolean" - default="false" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If true, used by - installation tools to ensure that a file that must be - executable has the correct properties to permit execution. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of the Tools element. --> - - <xs:element name="MiscellaneousFiles"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This section contains a list of files - that are not part of the code distributed with modules, packages or - tools. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" name="Header"> - <xs:complexType> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" name="Name" - type="xs:normalizedString"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The User interface name - for this content. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Copyright" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is only required if - the Copyright is different from the Distribution Package - Copyright. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="License" - type="xs:string"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is only required if - the License is different from the Distribution Package - License. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element minOccurs="0" maxOccurs="1" name="Abstract" - type="xs:normalizedString" /> - <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" - type="xs:string" /> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is the path and filename - location within the ZIP file. </xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:anyURI"> - <xs:attribute name="Executable" type="xs:boolean" - default="false" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> If true, used by - installation tools to ensure that a file that must be - executable has the correct properties to permit execution. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - <!-- End of the Misc element. --> - - <xs:element name="UserExtensions"> - <xs:complexType mixed="true"> - <xs:sequence> - <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </xs:sequence> - <xs:attribute name="UserId" type="xs:NCName" use="required"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This is a single word identifier - for grouping similar content. For example, ReferenceBuild might be - used to identify non-PI compliant build steps, with two different - UserExtensions sections, one with an Identifier of Prebuild, and - another of PostBuild. Both UserExtensions sections would use the - same UserId. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="Identifier" type="xs:string" use="optional"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This can be any string used to - differentiate or identify this section from other UserExtensions - sections. </xs:documentation> - <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS - Identifier might indicate specific steps and tools required before - processing distribution package content, while a different - UserExtensions section with a POST_PROCESS Identifier might describe - steps that need to be executed after operations on this content. - </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:anyAttribute processContents="lax" /> - </xs:complexType> - </xs:element> - <!-- The following elsements are common definitions used with the ref attribute for elements. --> - - <xs:element name="HelpText"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="Lang" type="xs:language" default="en-us" - use="optional" /> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - - <!-- The following attribute groups are used in various elements above. --> - - <xs:attributeGroup name="SupportedArchMod"> - <xs:attribute name="SupArchList" type="ArchListType" use="optional" /> - <xs:attribute name="SupModList" type="ModuleListType" use="optional" /> - </xs:attributeGroup> - - <!-- The following data types are used to restrict content. --> - - <xs:simpleType name="ArchListType"> - <xs:list itemType="ArchTypes" /> - </xs:simpleType> - - <xs:simpleType name="ArchTypes"> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="IA32" /> - <xs:enumeration value="X64" /> - <xs:enumeration value="IPF" /> - <xs:enumeration value="EBC" /> - <xs:pattern value="([A-Z])([a-zA-Z0-9])*"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Any processor architecture not - listed above. The Architecture must be a target architecture of one - or more compiler tool chains. </xs:documentation> - </xs:annotation> - </xs:pattern> - </xs:restriction> - </xs:simpleType> - - - <xs:simpleType name="FamilyTypes"> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="MSFT" /> - <xs:enumeration value="GCC" /> - <xs:pattern value="[A-Z][a-zA-Z0-9]*"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Any other family of build - utilities for which compiler tools exist. </xs:documentation> - </xs:annotation> - </xs:pattern> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="GuidListType"> - <xs:list itemType="GuidTypes" /> - </xs:simpleType> - - <xs:simpleType name="GuidTypes"> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="Event" /> - <xs:enumeration value="File" /> - <xs:enumeration value="FV" /> - <xs:enumeration value="GUID" /> - <xs:enumeration value="Hii" /> - <xs:enumeration value="HOB" /> - <xs:enumeration value="SystemTable" /> - <xs:enumeration value="TokenSpaceGuid" /> - <xs:enumeration value="Variable" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="HexNumber"> - <xs:restriction base="xs:hexBinary"> - <xs:pattern value="0x([a-fA-F0-9])+" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="Md5Sum"> - <xs:restriction base="xs:normalizedString"> - <xs:pattern value="[a-zA-Z0-9]{32}" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="ModuleListType"> - <xs:list itemType="ModuleTypes" /> - </xs:simpleType> - - <xs:simpleType name="ModuleTypes"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The following module types are defined - by specifications. </xs:documentation> - <xs:documentation xml:lang="en-us"> Module types for components and - libraries defined for this distribution mechanism. </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="BASE "> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Use of this module is not - restricted. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="DXE_CORE"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only applicable to - the DXE core. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="DXE_DRIVER"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only applicable to - a DXE driver. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="DXE_RUNTIME_DRIVER"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only applicable to - a DXE runtime driver. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="DXE_SAL_DRIVER"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only applicable to - an IPF DXE runtime driver. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="DXE_SMM_DRIVER"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only applicable to - a DXE SMM driver. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PEI_CORE"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only applicable to - the PEI core. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PEIM"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only valid for PEI - modules. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="SEC"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only applicable to - Security phase. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="UEFI_DRIVER"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only valid for UEFI - drivers. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="UEFI_RUNTIME_DRIVER"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only valid for UEFI - runtime drivers.</xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="UEFI_APPLICATION"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This module is only valid for UEFI - applications. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="USER_DEFINED"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This content is restricted to a - specific implementation. </xs:documentation> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="PcdDatumTypes"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The following data types are defined - by the PCD specification (or PCD section of the UEFI/PI specifications.) - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:normalizedString"> - <xs:enumeration value="UINT8" /> - <xs:enumeration value="UINT16" /> - <xs:enumeration value="UINT32" /> - <xs:enumeration value="UINT64" /> - <xs:enumeration value="BOOLEAN" /> - <xs:enumeration value="VOID*" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="PcdItemListType"> - <xs:list itemType="PcdItemTypes" /> - </xs:simpleType> - - <xs:simpleType name="PcdItemTypes"> - <xs:restriction base="xs:NCName"> - <xs:enumeration value="FeaturePcd"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The Feature PCD is a binary, - evaluating to either true or false. This is used during build to - include/exclude content. It can also be used during execution to - force execution paths within drivers, or to enable/disable features - within a driver for a given platform. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="FixedPcd"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The Fixed PCD is a #define value - that is set at build time. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PatchPcd"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The Patch PCD is a #define that is - set at build time, and that can be modified within a binary file. - Additional information, such as the offset location of the value, - along with it's length may need to be provided.</xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="Pcd"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> This PCD type has an overloaded - definition. Prior to build, the platform integrator may choose to - implement a PCD as Fixed, Patchable or a Dynamic PCD. If the - platform integrator choose to use the PCD as dynamic, then a PCD - driver is required in the platform (PEI/DXE/both) to track the PCD - in some sort of 'database' of these items. For Dynamic PCDs, the - PcdGet* must pass in the token space guid and the token number to - retrieve data (PcdSet* also needs these values.) </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="PcdEx"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The PCD can only be used as - Dynamic, and the platform firmware must contain a driver to maintain - a 'database' of these items. For Dynamic PCDs, the PcdGet* must pass - in the token space guid and the token number to retrieve data - (PcdSet* also needs these values.) </xs:documentation> - </xs:annotation> - </xs:enumeration> - </xs:restriction> - </xs:simpleType> - - - - <xs:simpleType name="RegistryFormatGuid"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> A GUID must contain five different - Hexadecimal character sets that are separated by a dash (-) character. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:pattern - value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*" - /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="SupportedOs"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> The EDK II build system supports - workstations running one of the following supported operating systems. - This is the OS for the developer's workstation, not the target platform. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="Win32"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and - Windows Vista. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="Win64"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and - Windows Vista. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="Linux32" /> - <xs:enumeration value="Linux64" /> - <xs:enumeration value="OS/X32" /> - <xs:enumeration value="OS/X64" /> - <xs:enumeration value="GenericWin"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Typically, this is used for - Windows Batch files. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:enumeration value="GenericNix"> - <xs:annotation> - <xs:documentation xml:lang="en-us"> Typically use for shell scripts - - valid for any Linux and Mac OS/X. </xs:documentation> - </xs:annotation> - </xs:enumeration> - <xs:pattern value="[a-zA-Z]([a-zA-Z0-9])*" /> - </xs:restriction> - </xs:simpleType> - -</xs:schema> |