I.1 Build System Output File Format

Summary

The build system will generate a text file containing a list of PCDs that have been declared as type VPD. An external tool that processes this file must be capable of reading the following format.

Prototype

<File>            ::= <AutoGenHeading>
                      [<CommentBlock>] [<PcdEntry>]*

<AutoGenHeading>  ::= "## @file" <EOL> "#" <EOL>
                      "# THIS IS AUTO-GENERATED FILE BY BUILD TOOLS"
                      " AND PLEASE DO NOT MAKE MODIFICATION." <EOL>
                      "#" <EOL>
                      "# This file lists all VPD information for a"
                      " platform collected by build.exe." <EOL>
                      "#" <EOL>
                      "# Copyright (c) 2010, Intel Corporation. All"
                      " rights reserved.<BR>" <EOL>
                      "# This program and the accompanying materials" <EOL>
                      "# are licensed and made available under the"
                      " terms and conditions of the BSD License" <EOL>
                      "# which accompanies this distribution. The"
                      " full text of the license may be found at" <EOL>
                      "# "
                      "http://opensource.org/licenses/bsd-license.php"
                      <EOL> "#" <EOL>
                      "# THE PROGRAM IS DISTRIBUTED UNDER THE BSD"
                      " LICENSE ON AN \"AS IS\" BASIS," <EOL>
                      "# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY"
                      " KIND, EITHER EXPRESS OR IMPLIED." <EOL>
<CommentBlock>    ::= ["#" <String> <EOL>]*
<PcdEntry>        ::= <PcdName> "|" <Offset> "|" <Size> "|" <PcdValue> <EOL>
<PcdName>         ::= <TokenSpaceCName> "." <PcdCName>
<TokenSpaceCName> ::= C Variable Name of the Token Space GUID
<PcdCName>        ::= C Variable Name of the PCD
<Offset>          ::= {"*"} {<Number>}
<HexNumber>       ::= "0x" (a-fA-F0-9)8
<Size>            ::= <Number>
<PcdValue>        ::= if (pcddatumtype == "BOOLEAN"):
                        <Boolean>
                      elif (pcddatumtype == "UINT8"):
                        <HexByte>
                      elif (pcddatumtype == "UINT16"):
                        <HexWord>
                      elif (pcddatumtype == "UINT32"):
                        <HexLong>
                      elif (pcddatumtype == "UINT64"):
                        <HexLongLong>
                      else:
                        <StringData> [<MaxSize>]
<Number>          ::= {<HexNumber>} {<NonNegativeInt>}
<PcdNumber>       ::= if NumType == UINT8
                        <HexByte>
                      if NumType == UINT16
                        <HexWord>
                      if NumType == UINT32
                        <HexLong>
                      if NumType == UINT64
                        <HexLongLong>
<HexByte>         ::= "0x"(a-fA-F0-9){1,2}
<HexWord>         ::= "0x" (a-fA-F0-9){1,4}
<HexLong>         ::= "0x" (a-fA-F0-9){1,8}
<HexLongLong>     ::= "0x" (a-fA-F0-9){1,16}
<Boolean>         ::= {<True>} {<False>}
<True>            ::= {"TRUE"} {"True"} {"true"} {"1"} {"0x1"} {"0x01"}
<False>           ::= {"FALSE"} {"False"} {"false"} {"0"} {"0x0"} {"0x00"}
<NonNegativeInt>  ::= (0-9)+
<StringData>      ::= {<QString>} {<CArray>}
<QString>         ::= ["L"] <DblQuote> <String> <DblQuote>
<DblQuote>        ::= 0x22
<CArray>          ::= "{" <NList> "}"
<NList>           ::= <HexByte> ["," <HexByte>]*

Example

## @file
#
# THIS IS AUTO-GENERATED FILE BY BUILD TOOLS AND PLEASE DO NOT MAKE MODIFICATION.
#
# This file lists all VPD information for a platform collected by build.exe.
#
# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license 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.
#
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|*|4|800
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|*|4|600
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|*|4|25
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|*|4|80