Sync BaseTools Trunk (version r2518) to EDKII main trunk.
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 10 Apr 2012 07:18:20 +0000 (07:18 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 10 Apr 2012 07:18:20 +0000 (07:18 +0000)
Signed-off-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13178 6f19259b-4bc3-4df7-8a09-765794883524

109 files changed:
BaseTools/Bin/CYGWIN_NT-5.1-i686/fpd2dsc [deleted file]
BaseTools/Bin/CYGWIN_NT-5.1-i686/msa2inf [deleted file]
BaseTools/Bin/CYGWIN_NT-5.1-i686/spd2dec [deleted file]
BaseTools/Bin/Win32/BPDG.exe
BaseTools/Bin/Win32/BootSectImage.exe
BaseTools/Bin/Win32/EfiLdrImage.exe
BaseTools/Bin/Win32/EfiRom.exe
BaseTools/Bin/Win32/Fpd2Dsc.exe [deleted file]
BaseTools/Bin/Win32/GenBootSector.exe
BaseTools/Bin/Win32/GenCrc32.exe
BaseTools/Bin/Win32/GenDepex.exe
BaseTools/Bin/Win32/GenFds.exe
BaseTools/Bin/Win32/GenFfs.exe
BaseTools/Bin/Win32/GenFv.exe
BaseTools/Bin/Win32/GenFw.exe
BaseTools/Bin/Win32/GenPage.exe
BaseTools/Bin/Win32/GenPatchPcdTable.exe
BaseTools/Bin/Win32/GenSec.exe
BaseTools/Bin/Win32/GenVtf.exe
BaseTools/Bin/Win32/LzmaCompress.exe
BaseTools/Bin/Win32/LzmaF86Compress.bat [new file with mode: 0644]
BaseTools/Bin/Win32/MigrationMsa2Inf.exe [deleted file]
BaseTools/Bin/Win32/PatchPcdValue.exe
BaseTools/Bin/Win32/Spd2Dec.exe [deleted file]
BaseTools/Bin/Win32/Split.exe
BaseTools/Bin/Win32/TargetTool.exe
BaseTools/Bin/Win32/TianoCompress.exe
BaseTools/Bin/Win32/Trim.exe
BaseTools/Bin/Win32/UPT.exe
BaseTools/Bin/Win32/VfrCompile.exe
BaseTools/Bin/Win32/VolInfo.exe
BaseTools/Bin/Win32/build.exe
BaseTools/BinWrappers/PosixLike/fpd2dsc [deleted symlink]
BaseTools/BinWrappers/PosixLike/msa2inf [deleted symlink]
BaseTools/BinWrappers/PosixLike/spd2dec [deleted symlink]
BaseTools/BuildEnv
BaseTools/Conf/XMLSchema/FarManifest.xsd [deleted file]
BaseTools/Conf/XMLSchema/FrameworkDataAttributes.xsd [deleted file]
BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd [deleted file]
BaseTools/Conf/XMLSchema/FrameworkDataTypes.xsd [deleted file]
BaseTools/Conf/XMLSchema/FrameworkHeaders.xsd [deleted file]
BaseTools/Conf/XMLSchema/NamingConvention.xsd [deleted file]
BaseTools/Conf/XMLSchema/SurfaceArea.xsd [deleted file]
BaseTools/Conf/XMLSchema/SurfaceArea.xsdconfig [deleted file]
BaseTools/Conf/XMLSchema/WorkspaceContent.xsd [deleted file]
BaseTools/Conf/build_rule.template
BaseTools/Conf/tools_def.template
BaseTools/Source/C/GNUmakefile
BaseTools/Source/C/Include/Common/BuildVersion.h
BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h
BaseTools/Source/C/LzmaCompress/GNUmakefile
BaseTools/Source/C/LzmaCompress/LzmaCompress.c
BaseTools/Source/C/LzmaCompress/LzmaF86Compress.bat [new file with mode: 0644]
BaseTools/Source/C/LzmaCompress/Makefile
BaseTools/Source/C/LzmaCompress/Sdk/C/Bra.h [new file with mode: 0644]
BaseTools/Source/C/LzmaCompress/Sdk/C/Bra86.c [new file with mode: 0644]
BaseTools/Source/C/Makefile
BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp
BaseTools/Source/C/VfrCompile/VfrFormPkg.h
BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/AutoGen/BuildEngine.py
BaseTools/Source/Python/AutoGen/GenC.py
BaseTools/Source/Python/Common/BuildVersion.py
BaseTools/Source/Python/Common/DataType.py
BaseTools/Source/Python/Common/Expression.py
BaseTools/Source/Python/Common/GlobalData.py
BaseTools/Source/Python/Common/String.py
BaseTools/Source/Python/Ecc/Ecc.py
BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py
BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
BaseTools/Source/Python/Fdb/__init__.py [deleted file]
BaseTools/Source/Python/FixFlash/__init__.py [deleted file]
BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools/Source/Python/GenFds/Ffs.py
BaseTools/Source/Python/GenFds/GenFds.py
BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
BaseTools/Source/Python/Makefile
BaseTools/Source/Python/MigrationMsa2Inf/AutoGenExterns.py [deleted file]
BaseTools/Source/Python/MigrationMsa2Inf/MigrationMsa2Inf.py [deleted file]
BaseTools/Source/Python/MigrationMsa2Inf/__init__.py [deleted file]
BaseTools/Source/Python/MkBOM/__init__.py [deleted file]
BaseTools/Source/Python/UPT/BuildVersion.py
BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools/Source/Python/Workspace/MetaFileTable.py
BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
BaseTools/Source/Python/build/BuildReport.py
BaseTools/Source/Python/build/build.py
BaseTools/Source/Python/fpd2dsc/EdkIIWorkspaceGuidsInfo.py [deleted file]
BaseTools/Source/Python/fpd2dsc/LoadFpd.py [deleted file]
BaseTools/Source/Python/fpd2dsc/MigrationUtilities.py [deleted file]
BaseTools/Source/Python/fpd2dsc/StoreDsc.py [deleted file]
BaseTools/Source/Python/fpd2dsc/__init__.py [deleted file]
BaseTools/Source/Python/fpd2dsc/fpd2dsc.py [deleted file]
BaseTools/Source/Python/msa2inf/ConvertModule.py [deleted file]
BaseTools/Source/Python/msa2inf/EdkIIWorkspaceGuidsInfo.py [deleted file]
BaseTools/Source/Python/msa2inf/LoadMsa.py [deleted file]
BaseTools/Source/Python/msa2inf/Msa2Inf.py [deleted file]
BaseTools/Source/Python/msa2inf/StoreInf.py [deleted file]
BaseTools/Source/Python/msa2inf/__init__.py [deleted file]
BaseTools/Source/Python/spd2dec/ConvertPackage.py [deleted file]
BaseTools/Source/Python/spd2dec/LoadSpd.py [deleted file]
BaseTools/Source/Python/spd2dec/Spd2Dec.py [deleted file]
BaseTools/Source/Python/spd2dec/StoreDec.py [deleted file]
BaseTools/Source/Python/spd2dec/__init__.py [deleted file]
BaseTools/Tests/TestTools.py
BaseTools/UserManuals/LzmaCompress_Utility_Man_Page.rtf
BaseTools/toolsetup.bat

diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/fpd2dsc b/BaseTools/Bin/CYGWIN_NT-5.1-i686/fpd2dsc
deleted file mode 100755 (executable)
index 2cb8b86..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env bash
-#python `dirname $0`/RunToolFromSource.py `basename $0` $*
-PYTHONPATH="`dirname $0`/../../Source/Python" \
-    python "`dirname $0`/../../Source/Python"/`basename $0`/`basename $0`.py $*
-
diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/msa2inf b/BaseTools/Bin/CYGWIN_NT-5.1-i686/msa2inf
deleted file mode 100755 (executable)
index 2cb8b86..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env bash
-#python `dirname $0`/RunToolFromSource.py `basename $0` $*
-PYTHONPATH="`dirname $0`/../../Source/Python" \
-    python "`dirname $0`/../../Source/Python"/`basename $0`/`basename $0`.py $*
-
diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/spd2dec b/BaseTools/Bin/CYGWIN_NT-5.1-i686/spd2dec
deleted file mode 100755 (executable)
index 2cb8b86..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env bash
-#python `dirname $0`/RunToolFromSource.py `basename $0` $*
-PYTHONPATH="`dirname $0`/../../Source/Python" \
-    python "`dirname $0`/../../Source/Python"/`basename $0`/`basename $0`.py $*
-
index 8cb7362fa873b4754ca5764ec0d070c9fd44a659..0950a85a0676c560822ef146df2bb48eb5d48151 100644 (file)
Binary files a/BaseTools/Bin/Win32/BPDG.exe and b/BaseTools/Bin/Win32/BPDG.exe differ
index 368c269553a7332884c61ec99fdae596793eaa26..77c2ca6f0ce881312d3f406267155910aa2f662e 100755 (executable)
Binary files a/BaseTools/Bin/Win32/BootSectImage.exe and b/BaseTools/Bin/Win32/BootSectImage.exe differ
index 604f850f040e2983e5fb0a83722de347032882dc..0014483a35c398896340042fed0be172c42d083f 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiLdrImage.exe and b/BaseTools/Bin/Win32/EfiLdrImage.exe differ
index 5de62fd7836954c3ce455e862b79e596f75c45d2..34c01a729257b2322bdf2bf4b9dd73cf176fe771 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiRom.exe and b/BaseTools/Bin/Win32/EfiRom.exe differ
diff --git a/BaseTools/Bin/Win32/Fpd2Dsc.exe b/BaseTools/Bin/Win32/Fpd2Dsc.exe
deleted file mode 100755 (executable)
index d774971..0000000
Binary files a/BaseTools/Bin/Win32/Fpd2Dsc.exe and /dev/null differ
index cb57ba77eac6abac282b7696e4175d89b8a2841d..e8315a3fe7aeee8aef29fa2c8f38395da3566de2 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenBootSector.exe and b/BaseTools/Bin/Win32/GenBootSector.exe differ
index d545e7e8b854cc4ce75088c15a0e3a8f83da0839..7874a65e47cea967dbe361fe1dd2da466c697964 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenCrc32.exe and b/BaseTools/Bin/Win32/GenCrc32.exe differ
index b17f12ed7bbf3142cbf9d138b54d7ffd43652086..3e477a27888c6e3b264a13792726b2017e5b364d 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenDepex.exe and b/BaseTools/Bin/Win32/GenDepex.exe differ
index bd270d63fa8ae40b6a2b751f18a93b29341b90ee..be4fccacfbdad90d4d62d7d44517d9d85f3047f3 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFds.exe and b/BaseTools/Bin/Win32/GenFds.exe differ
index bf3ab699bdb3e2bbf5f530cd6155f89f4508fd3e..f237967923010e5012bbb3f4462e80d1ed547eed 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFfs.exe and b/BaseTools/Bin/Win32/GenFfs.exe differ
index 96f97312901be95614b5d14b337ba202ab311aba..46231ff9f3a40757a019179e5fb1c033eb156828 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFv.exe and b/BaseTools/Bin/Win32/GenFv.exe differ
index 33c08bcd44723a8fdacfecaee39db162c0d7d3ac..353a2f4447b626d51d4e0c4ee4d87b6bc47f873f 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFw.exe and b/BaseTools/Bin/Win32/GenFw.exe differ
index e7f673252f75238882d17d1bd26f98466795afd5..40c491062c8942346dfb7b6c6a1120229de17500 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPage.exe and b/BaseTools/Bin/Win32/GenPage.exe differ
index aa9bf405aa782bc71cc4acdae31d9179ff37bb92..1b84df80de52eebfc4d49f1b686dda06ca6c5239 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPatchPcdTable.exe and b/BaseTools/Bin/Win32/GenPatchPcdTable.exe differ
index 1274d352bcb2e054a63c6ac14ddff81a899d3d59..c4b92a47c710c567e315609088f3742fecd11e8a 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenSec.exe and b/BaseTools/Bin/Win32/GenSec.exe differ
index 4f1868ff87af6a26870e0afdcb4a96306c12faad..1bef934cfa4119cf12a5d158857bba3660b0ea7c 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenVtf.exe and b/BaseTools/Bin/Win32/GenVtf.exe differ
index 244237a2e1005247c8c71f5007166a5ef2de7b1e..82780efc77dce8f51566b4118dababda5cc41cae 100755 (executable)
Binary files a/BaseTools/Bin/Win32/LzmaCompress.exe and b/BaseTools/Bin/Win32/LzmaCompress.exe differ
diff --git a/BaseTools/Bin/Win32/LzmaF86Compress.bat b/BaseTools/Bin/Win32/LzmaF86Compress.bat
new file mode 100644 (file)
index 0000000..2154721
--- /dev/null
@@ -0,0 +1,29 @@
+@REM\r
+@REM Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>\r
+@REM This program and the accompanying materials\r
+@REM are licensed and made available under the terms and conditions of the BSD License\r
+@REM which accompanies this distribution.  The full text of the license may be found at\r
+@REM http://opensource.org/licenses/bsd-license.php\r
+@REM\r
+@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+@REM\r
+\r
+@echo off\r
+@setlocal\r
+\r
+:Begin\r
+if "%1"=="" goto End\r
+if "%1"=="-e" (\r
+  set FLAG=--f86\r
+)\r
+if "%1"=="-d" (\r
+  set FLAG=--f86\r
+)\r
+set ARGS=%ARGS% %1\r
+shift\r
+goto Begin\r
+\r
+:End\r
+LzmaCompress %ARGS% %FLAG%\r
+@echo on
\ No newline at end of file
diff --git a/BaseTools/Bin/Win32/MigrationMsa2Inf.exe b/BaseTools/Bin/Win32/MigrationMsa2Inf.exe
deleted file mode 100755 (executable)
index 219b181..0000000
Binary files a/BaseTools/Bin/Win32/MigrationMsa2Inf.exe and /dev/null differ
index c635d3ac11445947d1a8365d48d928a551d4c872..328651d7db8cecfe43ec2bfe6c4023c3111c6bc7 100755 (executable)
Binary files a/BaseTools/Bin/Win32/PatchPcdValue.exe and b/BaseTools/Bin/Win32/PatchPcdValue.exe differ
diff --git a/BaseTools/Bin/Win32/Spd2Dec.exe b/BaseTools/Bin/Win32/Spd2Dec.exe
deleted file mode 100755 (executable)
index 072f648..0000000
Binary files a/BaseTools/Bin/Win32/Spd2Dec.exe and /dev/null differ
index c5fead3786ba5d9a5e0606fcd75ab66397eec8eb..f5907b04cfc61e3366cd126dd200ec265808d9be 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Split.exe and b/BaseTools/Bin/Win32/Split.exe differ
index 19ff3a832224ef30ca9c5462a547a3c56f5f9ac2..0170468cfbaf47ea323390f99b85a0839ada7ec8 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TargetTool.exe and b/BaseTools/Bin/Win32/TargetTool.exe differ
index e47070c24d788af1e16fbd01185e1666487a7ee7..25706822617d2e4c4712f27df523e13bcff5ba38 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TianoCompress.exe and b/BaseTools/Bin/Win32/TianoCompress.exe differ
index 25f919877877b63e2618f99094033ebdab245816..8a3cfb7f9611d5d6ccca0dd2941da6b8dddb88e7 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Trim.exe and b/BaseTools/Bin/Win32/Trim.exe differ
index 8f08ca3ef392a15661fc2549b671ca1abb90b5be..7939ee97d29ec4db06b2715c2006cfb85751cb31 100644 (file)
Binary files a/BaseTools/Bin/Win32/UPT.exe and b/BaseTools/Bin/Win32/UPT.exe differ
index ccb69a263ec5f9f3e0ccbec3d49f986044247ccb..dd7431b741a1ae5ed4756c2e1b2478baf14c691f 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VfrCompile.exe and b/BaseTools/Bin/Win32/VfrCompile.exe differ
index 0befe01e73f68288edacaf63d762c4b73351e2da..fa7168f8ede0777245a6a3eba0305dfd390c9e0a 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VolInfo.exe and b/BaseTools/Bin/Win32/VolInfo.exe differ
index 1bb30e7a3e45ccf48ccbd24a78dfa4b6c8dfa185..01ee7a810d2b3160369943b6c4a5961400309d64 100755 (executable)
Binary files a/BaseTools/Bin/Win32/build.exe and b/BaseTools/Bin/Win32/build.exe differ
diff --git a/BaseTools/BinWrappers/PosixLike/fpd2dsc b/BaseTools/BinWrappers/PosixLike/fpd2dsc
deleted file mode 120000 (symlink)
index af6c748..0000000
+++ /dev/null
@@ -1 +0,0 @@
-RunToolFromSource
\ No newline at end of file
diff --git a/BaseTools/BinWrappers/PosixLike/msa2inf b/BaseTools/BinWrappers/PosixLike/msa2inf
deleted file mode 120000 (symlink)
index af6c748..0000000
+++ /dev/null
@@ -1 +0,0 @@
-RunToolFromSource
\ No newline at end of file
diff --git a/BaseTools/BinWrappers/PosixLike/spd2dec b/BaseTools/BinWrappers/PosixLike/spd2dec
deleted file mode 120000 (symlink)
index af6c748..0000000
+++ /dev/null
@@ -1 +0,0 @@
-RunToolFromSource
\ No newline at end of file
index ca8a5781f61c2e5d215a2249ed3502f32790fd55..79f916a9d54b437b63108be28a6ac44fabaad13a 100755 (executable)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2012, 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
@@ -160,6 +160,14 @@ GetEdkToolsPathBinDirectory() {
   echo $EDK_TOOLS_PATH_BIN
 }
 
+AddDirToStartOfPath() {
+  DIRNAME=$1
+  PATH=$DIRNAME:$DIRNAME:$DIRNAME:$PATH
+  PATH=${PATH//$DIRNAME:/}
+  PATH=$DIRNAME:$PATH
+  export PATH
+}
+
 AddEdkToolsToPath() {
 
   #
@@ -172,18 +180,8 @@ AddEdkToolsToPath() {
 
   EDK_TOOLS_PATH_BIN=`GetEdkToolsPathBinDirectory`
 
-  if [ ! -e $EDK_TOOLS_PATH_BIN ]
-  then
-    echo "Unable to find expected bin path under \$EDK_TOOLS_PATH!"
-    echo "> $EDK_TOOLS_PATH_BIN"
-    return 1
-  fi
-
-  if [ "${PATH/$EDK_TOOLS_PATH_BIN/}" == "$PATH" ]
-  then
-    export PATH=$EDK_TOOLS_PATH_BIN:$PATH
-    return 0
-  fi
+  AddDirToStartOfPath $EDK_TOOLS_PATH/BinWrappers/PosixLike
+  AddDirToStartOfPath $EDK_TOOLS_PATH_BIN
 
 }
 
@@ -208,7 +206,6 @@ CopySingleTemplateFile() {
 CopyTemplateFiles() {
 
   CopySingleTemplateFile build_rule
-  CopySingleTemplateFile FrameworkDatabase
   CopySingleTemplateFile tools_def
   CopySingleTemplateFile target
 
diff --git a/BaseTools/Conf/XMLSchema/FarManifest.xsd b/BaseTools/Conf/XMLSchema/FarManifest.xsd
deleted file mode 100644 (file)
index 6e8c34a..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--\r
-Filename: FarManifest.xsd\r
-\r
-Copyright (c) 2007, Intel Corporation. All rights reserved.\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which may be found at http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
--->\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2007/Edk2.1" xmlns="http://www.TianoCore.org/2007/Edk2.1">\r
-  <xs:include schemaLocation="FrameworkHeaders.xsd"/>  \r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en">\r
-      The Framework Archive File Format is defined as a Java Archive file, with a special xml file called FrameworkArchiveManifest.xml at the top of the archive. The FrameworkArchiveManifest.xml must be an instance of this schema.\r
-    </xs:documentation>\r
-  </xs:annotation>\r
-  <xs:element name="FrameworkArchiveManifest">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">\r
-        This schema defines the Framework Archive Manifest. \r
-      </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="FarHeader"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="FarPackageList">   \r
-          <xs:annotation>\r
-            <xs:documentation>\r
-              The list of packages in this FAR.\r
-            </xs:documentation>\r
-          </xs:annotation>\r
-        </xs:element>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Contents">   \r
-          <xs:annotation>\r
-            <xs:documentation>\r
-              Extra contents that are not part of any Package. These file paths are WORKSPACE relative.  If a file exists in the workspace at this location, then the user should be asked whether to overwrite.  When the user removes the far, these should be removed also, unless they have been modified (per md5sum).\r
-            </xs:documentation>\r
-          </xs:annotation>\r
-        </xs:element>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="FarPackageList">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" ref="FarPackage"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="FarPackage">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element ref="FarFilename">\r
-          <xs:annotation>\r
-            <xs:documentation>\r
-              This is the name of the .spd or file that describes the package. It must exist in the directory identified by DefaultPath.\r
-            </xs:documentation>\r
-          </xs:annotation>\r
-        </xs:element>\r
-        <xs:element ref="GuidValue"></xs:element>\r
-        <xs:element ref="Version"></xs:element>\r
-        <xs:element ref="DefaultPath">\r
-          <xs:annotation>\r
-            <xs:documentation>\r
-              This is the default installation location within the workspace. This also serves as the location within the far itself of the package root. The Contents of the pacakage will be found there. The user may choose some other location within the workspace to install the package, as long as it does not overlap a package that is already installed.\r
-            </xs:documentation>\r
-          </xs:annotation>\r
-        </xs:element>\r
-        <xs:element ref="Contents">\r
-          <xs:annotation>\r
-            <xs:documentation>\r
-              This is the list of files that belong to the package. They are specified by relative path from the root of the pacakge.                            \r
-            </xs:documentation>\r
-          </xs:annotation>\r
-        </xs:element>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"></xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="DefaultPath" type="PathAndFilename"/>\r
-  <xs:element name="FarFilename" type="DbPathAndFilename">\r
-    <xs:annotation>\r
-      <xs:documentation>\r
-        The FarFilename is used to build up the Contents list. It has an md5sum attribute for keeping track of whether the file is changed after it is installed. The Md5sum can also be used to check the integrity of a far before it is installed into the workspace.\r
-      </xs:documentation>\r
-    </xs:annotation>\r
-  </xs:element>\r
-  <xs:element name="GuidValue" type="GuidType">\r
-    <xs:annotation>\r
-      <xs:documentation>\r
-        The purpose of this element is to allow Guids to be assigned to or used by other elements in the schema.\r
-      </xs:documentation>\r
-    </xs:annotation>\r
-  </xs:element>\r
-  <xs:element name="Contents">\r
-    <xs:annotation>\r
-      <xs:documentation>\r
-        This tag allows us to specify a tree of files all having a common root. All the files specified are relative to that common root.\r
-      </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element maxOccurs="unbounded" ref="FarFilename"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en">\r
-      Definitions and rules for creating, installing, updating and removing fars within the workspace.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      1.  A module m is said to depend upon a package p, iff there exists a tuple (PackageGuid, PackageVerion) in the set m->PackageDependencies for which p->Guid==PackageGuid, and if PackageVersion is not empty, then p->Version== PackageVersion.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      2.  A far f is said to depend on a far g, iff there is a module in a package in f that depends on a package in g.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      3.  A far f is said to depend on a package p, iff there is a module m contained in f that depends on p.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      4.  A far f may be installed into the workspace w, iff for each module m in f, m's dependencies are met by the packages in w or f.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      a.  It is supported to "partially" install a far. A partial installation of a far means that 1 or more packages are installed into the workspace from the far. For each package p in f, p's dependencies must be satisfied by a package in the workspace.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      5.  A far f may be removed from the workspace w, iff for each module m in w, and for each package p in f, m does not depend on p.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      a.  It is supported to "partially" remove a far. In this case, one or more of the packages in the far can be removed, provided that for each package p in the workspace w, there does not exist a module m such that m depends on p.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      6.  When installing a far f into workspace w, for each package p in f, allow the user to install in p's default location, or choose a new location l (which must be unoccupied) within the workspace. Record this location l in the database. Each package p in f will be recorded in the database, associated with the GUID of f, as well as the actual install location l. (So we will know which far each package belongs to.)\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      7.  When installing a far f into workspace w, if there exists a package p in w, and p is in f, then the user must be prompted to choose a location that does not collide with the location of p in workspace w. We will end up with two instances of p in w at two distinct locations. Alternately, the user may elect to partially install the far, leaving out the redundant package.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      8.  A far f may replace a far g in the workspace w, iff for each module m contained in w, if m depends on a package p, and p is only contained in g, then there must exist a package q in f, such that m depends on q. The net effect is that g is removed and f is installed, in one operation. The normal rules for installing f still apply--the dependencies of the modules of f must be satisfied. After the replacement, it must be the case that all the modules dependencies in the workspace are satisfied. Note that it is possible to backrev a package in this way. \r
-    </xs:documentation>\r
-    <xs:documentation>\r
-          (If we find that the replace is not permitted, then the user may install f and keep g. Next, he could _port_ every module m in w that depends on g, to f and eventually remove g.)\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      9.  A special case of the above rule is that a far f may be reinstalled into the workspace. (This would allow the user to get a fresh copy, or change the location in the workspace where one or more of the packages of f are installed.)\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      10. When a far f is removed from the workspace w, for each package p in f, we will remove p from w.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      11. If a package p belongs to a far f, then it is legal to remove p from the workspace w iff, there does not exist a module m in w such that m depends on p.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      12. When a far f is removed from the workspace, the we will remove all the files in f from the workspace tree. If a file has been modified from the original as installed from the far (per md5sum) then the user should be asked if he is "sure" he wants to remove it.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      13. When a far is created, a GUID is generated and assigned to the far. If a far is created from the same components at a later time, it would have a different GUID.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      14. If a package p is marked with p->RePackage==false, then p may not be added to a far.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      15. A far f is identical to a far g, iff f->Guid == g->Guid.\r
-    </xs:documentation>\r
-    <xs:documentation>\r
-      17. A far f may be installed into the workspace w, iff there is no far g in w such that f->Guid==g->Guid. In that case, it is called "updating" the far in the workspace. The user may select some subset of packages to reinstall or update, to ensure that the files in the workspace are correct.\r
-    </xs:documentation>\r
-  </xs:annotation>\r
-</xs:schema>\r
diff --git a/BaseTools/Conf/XMLSchema/FrameworkDataAttributes.xsd b/BaseTools/Conf/XMLSchema/FrameworkDataAttributes.xsd
deleted file mode 100644 (file)
index eeb48d9..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2007/Edk2.1" targetNamespace="http://www.TianoCore.org/2007/Edk2.1">\r
-  <!--\r
-    Filename: FrameworkDataAttributes.xsd\r
-    \r
-    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
-    This program and the accompanying materials\r
-    are licensed and made available under the terms and conditions of the BSD License\r
-    which may be found at http://opensource.org/licenses/bsd-license.php\r
-    \r
-    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-    \r
-  -->\r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en">This schema defines EFI and Framework Attribute. Only attributeGroups are specified in this file. </xs:documentation>\r
-  </xs:annotation>\r
-  <xs:include schemaLocation="NamingConvention.xsd"/>\r
-  <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
-  <!-- Fix Name data type from xs:string -->\r
-  <xs:attributeGroup name="BinaryFileAttributes">\r
-    <xs:attribute name="FileType" type="BinFileType" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="Target" type="ToolsNameConvention" use="optional"/>\r
-    <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="BootModeAttributes">\r
-    <xs:attribute name="BootModeName" type="BootModeNames" use="required"/>\r
-    <xs:attribute name="Usage" type="BootModeUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="DataHubAttributes">\r
-    <xs:attribute name="Usage" type="DataHubUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="EventAttributes">\r
-    <xs:attribute name="Usage" type="EventUsage" use="required"/>\r
-    <xs:attribute name="EventGuidCName" type="C_NameType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="ExternAttributes">\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="FilenameAttributes">\r
-    <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
-    <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>\r
-    <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="GuidAttributes">\r
-    <xs:attribute name="Usage" type="GuidUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="GuidDeclarationAttributes">\r
-    <xs:attribute name="Name" type="UiNameType" use="required"/>\r
-    <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="HiiPackageAttributes">\r
-    <xs:attribute name="Usage" type="HiiPackageUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="HobAttributes">\r
-    <xs:attribute name="Usage" type="HobUsage" use="required"/>\r
-    <xs:attribute name="HobGuidCName" type="C_NameType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="IncludeHeaderAttributes">\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-    <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="IndustryStdHeaderAttributes">\r
-    <xs:attribute name="Name" type="KeywordType" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="LibraryClassAttributes">\r
-    <xs:attribute name="Usage" type="LibraryUsage" use="required"/>\r
-    <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>\r
-    <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-    <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="LibraryClassDeclarationAttributes">\r
-    <xs:attribute name="Name" type="KeywordType" use="required"/>\r
-    <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>\r
-    <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="OptionAttributes">\r
-    <xs:attribute name="BuildTargets" type="BuildTargetList" use="optional"/>\r
-    <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>\r
-    <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
-    <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="PackageHeaderAttributes">\r
-    <xs:attribute name="ModuleType" type="ModuleTypeDef" use="required"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="PackageAttributes">\r
-    <!-- Used with the MSA File, PackageDependencies.Package -->\r
-    <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
-    <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="PackageNameAttributes">\r
-    <!--Used with the FrameworkDatabase PackageList.Packagename  -->\r
-    <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
-    <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-   <xs:attributeGroup name="PcdCodedAttributes">\r
-    <!-- We need to modify ALL the MSA files that have PcdCoded sections to \r
-      set the PcdUsage.  Once we modify all the MSA files and we modify the \r
-      wizard and the build tools, we need to make this required. -->\r
-    <xs:attribute name="Usage" type="PcdUsage" use="optional"/>\r
-    <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="PcdDeclarationAttributes">\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="PpiDeclarationAttributes">\r
-    <xs:attribute name="Name" type="UiNameType" use="required"/>\r
-    <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="PpiAttributes">\r
-    <xs:attribute name="Usage" type="PpiUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="PpiNotifyAttributes">\r
-    <xs:attribute name="Usage" type="PpiNotifyUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="ProtocolAttributes">\r
-    <xs:attribute name="Usage" type="ProtocolUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="ProtocolDeclarationAttributes">\r
-    <xs:attribute name="Name" type="UiNameType" use="required"/>\r
-    <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="ProtocolNotifyAttributes">\r
-    <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="SystemTableAttributes">\r
-    <xs:attribute name="Usage" type="SystemTableUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-  <xs:attributeGroup name="VariableAttributes">\r
-    <xs:attribute name="Usage" type="VariableUsage" use="required"/>\r
-    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-    <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
-  </xs:attributeGroup>\r
-</xs:schema>\r
diff --git a/BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd b/BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd
deleted file mode 100644 (file)
index e094c1b..0000000
+++ /dev/null
@@ -1,728 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2007/Edk2.1" targetNamespace="http://www.TianoCore.org/2007/Edk2.1">\r
-  <!--\r
-    Filename: FrameworkDataElements.xsd\r
-    \r
-    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
-    This program and the accompanying materials\r
-    are licensed and made available under the terms and conditions of the BSD License\r
-    which may be found at http://opensource.org/licenses/bsd-license.php\r
-    \r
-    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-    \r
-  -->\r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en"> This schema defines EFI and Framework Data Elements </xs:documentation>\r
-  </xs:annotation>\r
-  <xs:include schemaLocation="NamingConvention.xsd"/>\r
-  <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
-    <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
-  <xs:element name="Abstract" type="Sentence">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>\r
-      <xs:documentation xml:lang="en">This section is required. This is a single sentence to describe the module and will be used in sample files as the abstract data in the header comment section.</xs:documentation>\r
-    </xs:annotation>\r
-  </xs:element>\r
-  <xs:element name="BootModes">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>\r
-      <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="BootMode">\r
-          <xs:complexType>\r
-            <xs:sequence minOccurs="0">\r
-              <xs:element name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="BootModeAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-   <xs:element name="Copyright" type="Paragraph"/>\r
-  <xs:element name="DataHubs">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="DataHubRecord">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="DataHubCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="DataHubAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="DefaultValue">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:simpleContent>\r
-        <xs:extension base="xs:normalizedString"/>\r
-      </xs:simpleContent>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Depex">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This section is used to describe the DXE or PEI Dependency code</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="Define" type="xs:normalizedString"/>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="Expression" type="xs:string"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Description" type="Paragraph">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This section is required for new modules and libraries and must contain more information than the Abstract.</xs:documentation>\r
-    </xs:annotation>\r
-  </xs:element>\r
-  <xs:element name="BinaryFiles">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
-          <xs:complexType>\r
-            <xs:simpleContent>\r
-              <xs:extension base="PathAndFilename"> \r
-                <xs:attributeGroup ref="BinaryFileAttributes"/>\r
-              </xs:extension>\r
-            </xs:simpleContent>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-   <xs:element name="Events">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">\r
-                <xs:complexType>\r
-                  <xs:sequence>\r
-                    <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>\r
-                    <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-                  </xs:sequence>\r
-                  <xs:attributeGroup ref="EventAttributes"/>\r
-                </xs:complexType>\r
-              </xs:element>\r
-            </xs:sequence>\r
-          </xs:complexType>\r
-        </xs:element>\r
-        <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">\r
-          <xs:annotation>\r
-            <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>\r
-          </xs:annotation>\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">\r
-                <xs:complexType>\r
-                  <xs:sequence>\r
-                    <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>\r
-                    <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-                  </xs:sequence>\r
-                  <xs:attributeGroup ref="EventAttributes"/>\r
-                </xs:complexType>\r
-              </xs:element>\r
-            </xs:sequence>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Externs">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence minOccurs="1">\r
-        <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" name="TianoR8FlashMap_h" type="xs:boolean" default="false"/>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">\r
-          <xs:complexType>\r
-            <xs:choice minOccurs="1" maxOccurs="1">\r
-              <xs:sequence minOccurs="0" maxOccurs="1">\r
-                <xs:annotation>\r
-                  <xs:documentation xml:lang="en">Driver Module</xs:documentation>\r
-                </xs:annotation>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="ModuleEntryPoint" type="C_NameType"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="ModuleUnloadImage" type="C_NameType"/>\r
-              </xs:sequence>\r
-              <xs:sequence minOccurs="0" maxOccurs="1">\r
-                <xs:annotation>\r
-                  <xs:documentation xml:lang="en">Library Module</xs:documentation>\r
-                </xs:annotation>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="Constructor" type="C_NameType"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="Destructor" type="C_NameType"/>\r
-              </xs:sequence>\r
-              <xs:sequence minOccurs="0" maxOccurs="1">\r
-                <xs:annotation>\r
-                  <xs:documentation xml:lang="en">Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.</xs:documentation>\r
-                  <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>\r
-                </xs:annotation>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="DriverBinding" type="C_NameType"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="ComponentName" type="C_NameType"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="DriverConfig" type="C_NameType"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="DriverDiag" type="C_NameType"/>\r
-              </xs:sequence>\r
-              <xs:sequence minOccurs="0" maxOccurs="1">\r
-                <xs:annotation>\r
-                  <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>\r
-                </xs:annotation>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="SetVirtualAddressMapCallBack" type="C_NameType"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="ExitBootServicesCallBack" type="C_NameType"/>\r
-              </xs:sequence>\r
-            </xs:choice>\r
-            <xs:attributeGroup ref="ExternAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Filename">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:simpleContent>\r
-        <xs:extension base="PathAndFilename">\r
-          <xs:attributeGroup ref="FilenameAttributes"/>\r
-        </xs:extension>\r
-      </xs:simpleContent>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Filenames">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence minOccurs="1">\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="GuidDeclarations">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="GuidDeclarationAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Guids">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCNames">\r
-          <xs:annotation>\r
-            <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
-          </xs:annotation>\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="GuidAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="HiiPackages">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="HiiPackage">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="HiiCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="HiiPackageAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Hobs">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="HobTypes">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="HobAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="IncludeHeader">\r
-    <xs:complexType>\r
-      <xs:simpleContent>\r
-        <xs:extension base="PathAndFilename">\r
-          <xs:attributeGroup ref="IncludeHeaderAttributes"/>\r
-        </xs:extension>\r
-      </xs:simpleContent>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="IndustryStdIncludes">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="IndustryStdHeader">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-      </xs:sequence>\r
-      <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="LibraryClass">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Used in MSA files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="KeywordType"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-      </xs:sequence>\r
-      <xs:attributeGroup ref="LibraryClassAttributes"/>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <!-- LAH This is SPD LibraryClassDeclarations FINAL version -->\r
-  <xs:element name="LibraryClassDeclarations">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="LibraryClassDeclarationAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="LibraryClassDefinitions">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClass"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="License">\r
-    <xs:complexType>\r
-      <xs:simpleContent>\r
-        <xs:extension base="Paragraph">\r
-          <xs:attribute name="URL" type="xs:anyURI" use="optional"/>\r
-        </xs:extension>\r
-      </xs:simpleContent>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="ModuleBuildOptions">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="ModuleDefinitions">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">\r
-                <xs:complexType>\r
-                  <xs:sequence>\r
-                    <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>\r
-                    <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>\r
-                    <xs:element minOccurs="1" maxOccurs="1" name="ModuleGuid" type="GuidType"/>\r
-                    <xs:element minOccurs="1" maxOccurs="1" name="ModuleVersion" type="VersionDataType"/>\r
-                  </xs:sequence>\r
-                  <!-- The Id is a number used to track heritage  the first entry will be 0 and increment from then on. -->\r
-                  <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>\r
-                  <!-- If the original module was installed from a FAR, track the FAR it came from. -->\r
-                  <xs:attribute name="FarGuid" type="GuidType" use="optional"/>\r
-                </xs:complexType>\r
-              </xs:element>\r
-            </xs:sequence>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="ModuleType" type="ModuleTypeDef">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>\r
-    </xs:annotation>\r
-  </xs:element>\r
-  <!-- Use in Final -->\r
-  <xs:element name="MsaFiles">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">MsaFiles is a child of Surface Area Package Description (SPD) files</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Options">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="NonProcessedFiles">\r
-    <xs:complexType>\r
-      <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-        <xs:element name="Filename" type="PathAndFilename"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Option">\r
-    <!-- This element is used to store flags from the Tools -->\r
-    <xs:complexType>\r
-      <xs:simpleContent>\r
-        <xs:extension base="xs:normalizedString">\r
-          <xs:attributeGroup ref="OptionAttributes"/>\r
-        </xs:extension>\r
-      </xs:simpleContent>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="PackageDefinitions">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">\r
-                <xs:complexType>\r
-                  <xs:sequence>\r
-                    <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>\r
-                    <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>\r
-                  </xs:sequence>\r
-                  <!-- The Id is a number used to track heritage  the first entry will be 0 and increment from then on. -->\r
-                  <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>\r
-                  <!-- If the original Package was installed from a FAR, track the FAR it came from. -->\r
-                  <xs:attribute name="FarGuid" type="GuidType" use="optional"/>\r
-                </xs:complexType>\r
-              </xs:element>\r
-            </xs:sequence>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="PackageDependencies">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This tag is used in the Module Surface Area Description File (MSA) to track package dependencies for a module.</xs:documentation>\r
-      <xs:documentation xml:lang="en">Attributes to PackageName include Required: Usage PackageGuid PackageVesion, Optional: FeatureFlag</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">\r
-          <xs:complexType>\r
-            <xs:attributeGroup ref="PackageAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="PackageHeaders">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">PackageHeaders is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="IncludePkgHeader">\r
-          <xs:complexType>\r
-            <xs:simpleContent>\r
-              <xs:extension base="PathAndFilename">\r
-                <xs:attributeGroup ref="PackageHeaderAttributes"/>\r
-              </xs:extension>\r
-            </xs:simpleContent>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="PackageList">\r
-    <!-- Valid for DB usage only! -->\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages (SPD files) installed in a workspace. (Database)</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
-          <xs:complexType>\r
-            <xs:simpleContent>\r
-              <xs:extension base="PathAndFilename"> \r
-                <xs:attributeGroup ref="PackageNameAttributes"/>\r
-              </xs:extension>\r
-            </xs:simpleContent>\r
-          </xs:complexType>\r
-          </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="PcdCoded">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <!-- MSA file declares a single usage, and must match one of the entries in what the SPD file declares as the set of possible Item Types. -->\r
-            <xs:attributeGroup ref="PcdCodedAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <!-- LAH This is PcdDeclarations FINAL version -->\r
-  <xs:element name="PcdDeclarations">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">PcdDeclaratins is a child of Package Surface Area Description (SPD)</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence minOccurs="1">\r
-        <xs:element maxOccurs="unbounded" name="PcdEntry">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="PcdDeclarationAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="FarList">\r
-    <!-- Valid for DB usage only! -->\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all DISTRIBUTION packages (FAR files) installed in a workspace. (Database)</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="PpiDeclarations">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">PpiDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="PpiDeclarationAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="PPIs">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence minOccurs="1">\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="PpiCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="PpiAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="PpiNotifyAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="ProtocolDeclarations">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">ProtocolDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Protocols">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">If either Protocol or ProtocolNotify sections are needed, one or more of them should be specified within this section</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="ProtocolAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="SourceFiles">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="SystemTables">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="SystemTableCNames">\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="SystemTableAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="UserExtensions">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>\r
-      </xs:sequence>\r
-      <xs:attribute name="UserID" type="xs:NCName" use="required"/>\r
-      <xs:attribute name="Identifier" type="xs:string" use="required"/>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Variables">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="unbounded" name="Variable">\r
-          <xs:annotation>\r
-            <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>\r
-          </xs:annotation>\r
-          <xs:complexType>\r
-            <xs:sequence>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>\r
-              <xs:element minOccurs="1" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
-              <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref="VariableAttributes"/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="Version" type="VersionDataType"/>\r
-</xs:schema>\r
diff --git a/BaseTools/Conf/XMLSchema/FrameworkDataTypes.xsd b/BaseTools/Conf/XMLSchema/FrameworkDataTypes.xsd
deleted file mode 100644 (file)
index 9a46a02..0000000
+++ /dev/null
@@ -1,581 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2007/Edk2.1" targetNamespace="http://www.TianoCore.org/2007/Edk2.1">\r
-  <!--\r
-    Filename: FrameworkDataTypes.xsd\r
-    \r
-    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
-    This program and the accompanying materials\r
-    are licensed and made available under the terms and conditions of the BSD License\r
-    which may be found at http://opensource.org/licenses/bsd-license.php\r
-    \r
-    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-    \r
-  -->\r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en">This schema defines EFI and Framework Data Types. Only simpleType are specified in this file. </xs:documentation>\r
-  </xs:annotation>\r
-  <xs:include schemaLocation="NamingConvention.xsd"/>\r
-  <xs:simpleType name="PrimaryArchListType">\r
-    <xs:list itemType="SupportedArchitectures"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ArchListType">\r
-    <xs:restriction base="PrimaryArchListType">\r
-      <xs:minLength value="1"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="BinFileType">\r
-    <xs:restriction base="xs:NCName">\r
-      <xs:enumeration value="LIB"/>\r
-      <xs:enumeration value="UNI_UI"/>\r
-      <xs:enumeration value="UNI_VER"/>\r
-      <xs:enumeration value="PE32"/>\r
-      <xs:enumeration value="FW"/>\r
-      <xs:enumeration value="GUID"/>\r
-      <xs:enumeration value="FREEFORM"/>\r
-      <xs:enumeration value="UEFI_APP"/>\r
-      <xs:enumeration value="PIC"/>\r
-      <xs:enumeration value="PEI_DEPEX"/>\r
-      <xs:enumeration value="DXE_DEPEX"/>\r
-      <xs:enumeration value="TE"/>\r
-      <xs:enumeration value="VER"/>\r
-      <xs:enumeration value="UI"/>\r
-      <xs:enumeration value="BIN"/>\r
-      <xs:enumeration value="FV"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="BlockNameType">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:pattern value="\s*BLOCK[A-F0-9]{2}\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="BootModeNames">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="FULL"/>\r
-      <xs:enumeration value="MINIMAL"/>\r
-      <xs:enumeration value="NO_CHANGE"/>\r
-      <xs:enumeration value="DIAGNOSTICS"/>\r
-      <xs:enumeration value="DEFAULT"/>\r
-      <xs:enumeration value="S2_RESUME"/>\r
-      <xs:enumeration value="S3_RESUME"/>\r
-      <xs:enumeration value="S4_RESUME"/>\r
-      <xs:enumeration value="S5_RESUME"/>\r
-      <xs:enumeration value="FLASH_UPDATE"/>\r
-      <xs:enumeration value="RECOVERY_FULL"/>\r
-      <xs:enumeration value="RECOVERY_MINIMAL"/>\r
-      <xs:enumeration value="RECOVERY_NO_CHANGE"/>\r
-      <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>\r
-      <xs:enumeration value="RECOVERY_DEFAULT"/>\r
-      <xs:enumeration value="RECOVERY_S2_RESUME"/>\r
-      <xs:enumeration value="RECOVERY_S3_RESUME"/>\r
-      <xs:enumeration value="RECOVERY_S4_RESUME"/>\r
-      <xs:enumeration value="RECOVERY_S5_RESUME"/>\r
-      <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="BootModeUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="BuildTargetList">\r
-    <xs:restriction base="BuildTargetUList">\r
-      <xs:minLength value="1"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="BuildTargetUList">\r
-    <xs:list itemType="BrUType"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="BrUType">\r
-    <xs:union memberTypes="BrType UCNameType"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="BrType">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="DEBUG"/>\r
-      <xs:enumeration value="RELEASE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ComponentExecutionPhase">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="MDE"/>\r
-      <xs:enumeration value="SEC"/>\r
-      <xs:enumeration value="PEI_CORE"/>\r
-      <xs:enumeration value="PEIM"/>\r
-      <xs:enumeration value="DXE_CORE"/>\r
-      <xs:enumeration value="DXE_DRIVER"/>\r
-      <xs:enumeration value="DXE_RUNTIME_DRIVER"/>\r
-      <xs:enumeration value="DXE_SAL_DRIVER"/>\r
-      <xs:enumeration value="DXE_SMM_DRIVER"/>\r
-      <xs:enumeration value="UEFI"/>\r
-      <xs:enumeration value="UEFI_APPLICATION"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="DataHubUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="DatumSizeLimitation">\r
-    <xs:restriction base="xs:nonNegativeInteger">\r
-      <xs:maxExclusive value="13777216"/>\r
-      <xs:pattern value="(\s)*[1-9][0-9]*(\s)*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="DefaultValueType">\r
-    <xs:union memberTypes="xs:normalizedString Hex64BitDataType UnicodeString HexByteArrayType"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="EfiSectionType">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="EFI_SECTION_FREEFORM_SUBTYPE_GUID"/>\r
-      <xs:enumeration value="EFI_SECTION_VERSION"/>\r
-      <xs:enumeration value="EFI_SECTION_USER_INTERFACE"/>\r
-      <xs:enumeration value="EFI_SECTION_DXE_DEPEX"/>\r
-      <xs:enumeration value="EFI_SECTION_PEI_DEPEX"/>\r
-      <xs:enumeration value="EFI_SECTION_PE32"/>\r
-      <xs:enumeration value="EFI_SECTION_PIC"/>\r
-      <xs:enumeration value="EFI_SECTION_TE"/>\r
-      <xs:enumeration value="EFI_SECTION_RAW"/>\r
-      <xs:enumeration value="EFI_SECTION_COMPRESSION"/>\r
-      <xs:enumeration value="EFI_SECTION_GUID_DEFINED"/>\r
-      <xs:enumeration value="EFI_SECTION_COMPATIBILITY16"/>\r
-      <xs:enumeration value="EFI_SECTION_FIRMWARE_VOLUME_IMAGE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="EventTypes">\r
-    <xs:restriction base="UCNameType">\r
-       <xs:enumeration value="EVENT_GROUP_GUID"/>\r
-      <xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER"/>\r
-      <xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="EventUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ExecutionType">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="REL" id="Relocatable"/>\r
-      <xs:enumeration value="NREL" id="Non-Relocatable"/>\r
-      <xs:enumeration value="XIP" id="Execute_In_Place"/>\r
-      <xs:enumeration value="PIC" id="Position_Independent_Code"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ExternType">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:minLength value="1"/>\r
-      <!--<xs:pattern value="((\w)+(\W)*(\s)*)+"/>-->\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ExternUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="FileNameUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="FeatureFlagExpressionType">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:minLength value="1"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="FrameworkComponentListType">\r
-    <xs:list itemType="FrameworkComponentTypes"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="FrameworkComponentTypes">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="APRIORI"/>\r
-      <xs:enumeration value="SEC"/>\r
-      <xs:enumeration value="LIBRARY"/>\r
-      <xs:enumeration value="FV_IMAGE_FILE"/>\r
-      <xs:enumeration value="BS_DRIVER"/>\r
-      <xs:enumeration value="RT_DRIVER"/>\r
-      <xs:enumeration value="SAL_RT_DRIVER"/>\r
-      <xs:enumeration value="PE32_PEIM"/>\r
-      <xs:enumeration value="PIC_PEIM"/>\r
-      <xs:enumeration value="COMBINED_PEIM_DRIVER"/>\r
-      <xs:enumeration value="PEI_CORE"/>\r
-      <xs:enumeration value="DXE_CORE"/>\r
-      <xs:enumeration value="BS_DRIVER_EFI"/>\r
-      <xs:enumeration value="SHELLAPP"/>\r
-      <xs:enumeration value="BINARY"/>\r
-      <xs:enumeration value="LOGO"/>\r
-      <xs:enumeration value="USER_DEFINED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="FrameworkModuleTypes">\r
-    <xs:restriction base="ModuleTypeDef">\r
-      <xs:enumeration value="BASE"/>\r
-      <xs:enumeration value="SEC"/>\r
-      <xs:enumeration value="PEI_CORE"/>\r
-      <xs:enumeration value="PEIM"/>\r
-      <xs:enumeration value="DXE_CORE"/>\r
-      <xs:enumeration value="DXE_DRIVER"/>\r
-      <xs:enumeration value="DXE_RUNTIME_DRIVER"/>\r
-      <xs:enumeration value="DXE_SAL_DRIVER"/>\r
-      <xs:enumeration value="DXE_SMM_DRIVER"/>\r
-      <xs:enumeration value="UEFI_DRIVER"/>\r
-      <xs:enumeration value="UEFI_APPLICATION"/>\r
-      <xs:enumeration value="USER_DEFINED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="FvRegionTypes">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="FV_MAIN"/>\r
-      <xs:enumeration value="FV_MAIN_COMPACT"/>\r
-      <xs:enumeration value="NV_STORAGE"/>\r
-      <xs:enumeration value="FV_RECOVERY"/>\r
-      <xs:enumeration value="FV_RECOVERY_FLOPPY"/>\r
-      <xs:enumeration value="FV_FILE"/>\r
-      <xs:enumeration value="CAPSULE_CARGO"/>\r
-      <xs:enumeration value="NULL"/>\r
-      <xs:enumeration value="USER_DEFINED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PrimaryGuidListType">\r
-    <xs:list itemType="GuidTypes"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="GuidListType">\r
-    <xs:restriction base="PrimaryGuidListType">\r
-      <xs:minLength value="1"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="GuidTypes">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="DATA_HUB_RECORD"/>\r
-      <xs:enumeration value="EFI_EVENT"/>\r
-      <xs:enumeration value="EFI_SYSTEM_CONFIGURATION_TABLE"/>\r
-      <xs:enumeration value="EFI_VARIABLE"/>\r
-      <xs:enumeration value="GUID"/>\r
-      <xs:enumeration value="HII_PACKAGE_LIST"/>\r
-      <xs:enumeration value="HOB"/>\r
-      <xs:enumeration value="TOKEN_SPACE_GUID"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="GuidUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexByteArrayListType">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:minLength value="4"/>\r
-      <xs:pattern value="\s*((( )?0x[a-fA-F0-9]{2})(,)?)+( )?"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexByteArrayType">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:minLength value="4"/>\r
-      <xs:pattern value="((\s)*0x([a-fA-F0-9]){2}(,)?(\s)*)+"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexWordArrayType">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:minLength value="6"/>\r
-      <xs:pattern value="((\s)*0x([a-fA-F0-9]){4}(,)?(\s)*)+"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HiiPackageUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HobTypes">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="PHIT"/>\r
-      <xs:enumeration value="MEMORY_ALLOCATION"/>\r
-      <xs:enumeration value="RESOURCE_DESCRIPTOR"/>\r
-      <xs:enumeration value="GUID_EXTENSION"/>\r
-      <xs:enumeration value="FIRMWARE_VOLUME"/>\r
-      <xs:enumeration value="CPU"/>\r
-      <xs:enumeration value="POOL"/>\r
-      <xs:enumeration value="CAPSULE_VOLUME"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HobUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="IntermediateOutputType">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="MODULE"/>\r
-      <xs:enumeration value="UNIFIED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="LibraryUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ModuleTypeDef">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="BASE"/>\r
-      <xs:enumeration value="SEC"/>\r
-      <xs:enumeration value="PEI_CORE"/>\r
-      <xs:enumeration value="PEIM"/>\r
-      <xs:enumeration value="DXE_CORE"/>\r
-      <xs:enumeration value="DXE_DRIVER"/>\r
-      <xs:enumeration value="DXE_RUNTIME_DRIVER"/>\r
-      <xs:enumeration value="DXE_SAL_DRIVER"/>\r
-      <xs:enumeration value="DXE_SMM_DRIVER"/>\r
-      <xs:enumeration value="TOOL"/>\r
-      <xs:enumeration value="UEFI_DRIVER"/>\r
-      <xs:enumeration value="UEFI_APPLICATION"/>\r
-      <xs:enumeration value="USER_DEFINED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="Md5sumType">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:pattern value="\s*[a-fA-F0-9]{32}\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PrimaryModuleListType">\r
-    <xs:list itemType="FrameworkModuleTypes"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ModuleListType">\r
-    <xs:restriction base="PrimaryModuleListType">\r
-      <xs:minLength value="1"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PackageType">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="SOURCE"/>\r
-      <xs:enumeration value="BINARY"/>\r
-      <xs:enumeration value="MIXED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PackageUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PcdListType">\r
-    <xs:restriction base="PrimaryPcdListType">\r
-      <xs:minLength value="1"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PrimaryPcdListType">\r
-    <xs:list itemType="PcdItemTypes"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PcdTypes">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="FIXED_AT_BUILD"/>\r
-      <xs:enumeration value="FEATURE_FLAG"/>\r
-      <xs:enumeration value="PATCHABLE_IN_MODULE"/>\r
-      <xs:enumeration value="DYNAMIC"/>\r
-      <xs:enumeration value="DYNAMIC_EX"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PcdDriverTypes">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="PEI_PCD_DRIVER"/>\r
-      <xs:enumeration value="DXE_PCD_DRIVER"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PcdDataTypes">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:enumeration value="UINT8"/>\r
-      <xs:enumeration value="UINT16"/>\r
-      <xs:enumeration value="UINT32"/>\r
-      <xs:enumeration value="UINT64"/>\r
-      <xs:enumeration value="VOID*"/>\r
-      <xs:enumeration value="BOOLEAN"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PcdFeatureFlagUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PcdItemTypes">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="FEATURE_FLAG"/>\r
-      <xs:enumeration value="FIXED_AT_BUILD"/>\r
-      <xs:enumeration value="PATCHABLE_IN_MODULE"/>\r
-      <xs:enumeration value="DYNAMIC"/>\r
-      <xs:enumeration value="DYNAMIC_EX"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PcdUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PpiNotifyUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PpiUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ProtocolNotifyUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ProtocolUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="TO_START"/>\r
-      <xs:enumeration value="BY_START"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="SkuListType">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:minLength value="1"/>\r
-      <xs:pattern value="\s*(\d)+((,)?(\s)*(\d)+)*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="SupportedArchitectures">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="EBC"/>\r
-      <xs:enumeration value="IA32"/>\r
-      <xs:enumeration value="X64"/>\r
-      <xs:enumeration value="IPF"/>\r
-      <xs:enumeration value="ARM"/>\r
-      <xs:enumeration value="PPC"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="SystemTableUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="TokenDataType">\r
-    <xs:union memberTypes="HexDoubleWordDataType  xs:nonNegativeInteger"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ToolChains">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:minLength value="2"/>\r
-      <xs:enumeration value="MSFT"/>\r
-      <xs:enumeration value="INTEL"/>\r
-      <xs:enumeration value="GCC"/>\r
-      <xs:enumeration value="CYGWIN"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="UiNameType">\r
-    <xs:restriction base="xs:string">\r
-      <xs:minLength value="1"/>\r
-      <xs:pattern value="[^ ].*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="UnicodeString">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:minLength value="3"/>\r
-      <xs:pattern value="(\s)*L(\:)?&quot;[^&quot;]*&quot;(\s)*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="UsageListType">\r
-    <xs:restriction base="PrimaryUsageList">\r
-      <xs:minLength value="1"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PrimaryUsageList">\r
-    <xs:list itemType="UsageTypes"/>\r
-  </xs:simpleType>\r
-  <!-- UsageTypes describes all of the Usage Attributes that are defined in the Module Surface Area Specification -->\r
-  <xs:simpleType name="UsageTypes">\r
-    <xs:restriction base="UCNameType">\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <xs:enumeration value="TO_START"/>\r
-      <xs:enumeration value="BY_START"/>\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="VariableOffsetValues">\r
-    <xs:restriction base="xs:string">\r
-      <xs:minLength value="1"/>\r
-      <xs:pattern value="\s*\d+(:)?\d*\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="VariableUsage">\r
-    <xs:restriction base="UsageTypes">\r
-      <!-- Module requires the variable entry to be set -->\r
-      <xs:enumeration value="ALWAYS_CONSUMED"/>\r
-      <!-- Module will use the variable entry if it's set -->\r
-      <xs:enumeration value="SOMETIMES_CONSUMED"/>\r
-      <!-- Module Always will write the variable -->\r
-      <xs:enumeration value="ALWAYS_PRODUCED"/>\r
-      <!-- Module sometimes writes the variable -->\r
-      <xs:enumeration value="SOMETIMES_PRODUCED"/>\r
-      <!-- Variable is produced and consumed only by this module -->\r
-      <xs:enumeration value="PRIVATE"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <!-- Complex Data Types -->\r
-  <xs:complexType name="DbPathAndFilename">\r
-    <xs:simpleContent>\r
-      <xs:extension base="PathAndFilename">\r
-        <xs:attribute name="FarGuid" type="GuidType" use="optional"/>\r
-        <xs:attribute name="Md5sum" type="Md5sumType"/>\r
-      </xs:extension>\r
-    </xs:simpleContent>\r
-  </xs:complexType>\r
-  <xs:complexType name="ArgsType">\r
-    <xs:sequence minOccurs="0" maxOccurs="unbounded">\r
-      <xs:element name="Arg" type="xs:string"/>\r
-    </xs:sequence>\r
-  </xs:complexType>\r
-  <xs:complexType name="ToolType">\r
-    <xs:sequence>\r
-      <xs:element name="ToolName" type="xs:string"/>\r
-      <xs:element name="ToolArgs" type="xs:string"/>\r
-    </xs:sequence>\r
-  </xs:complexType>\r
-</xs:schema>\r
diff --git a/BaseTools/Conf/XMLSchema/FrameworkHeaders.xsd b/BaseTools/Conf/XMLSchema/FrameworkHeaders.xsd
deleted file mode 100644 (file)
index e2745af..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2007/Edk2.1" xmlns="http://www.TianoCore.org/2007/Edk2.1">\r
-  <!--\r
-    Filename: FrameworkHeaders.xsd\r
-    \r
-    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
-\r
-    This program and the accompanying materials\r
-    are licensed and made available under the terms and conditions of the BSD License\r
-    which may be found at http://opensource.org/licenses/bsd-license.php\r
-    \r
-    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-    \r
-    APPROVED: 05-Jun-2007\r
-  -->\r
-  <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
-  <xs:element name="FdbHeader">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This is the header for the Framework Package Database (DB) file.</xs:documentation>\r
-      <xs:documentation xml:lang="en">The Guid MUST change if backward compatibility breaks caused by a new release of XML Schema.</xs:documentation>\r
-      <xs:documentation xml:lang="en">The Version will change if a minor change to XML Schema has been made, but backward compatiblity is maintained.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="DatabaseName" type="UiNameType" fixed="FrameworkDatabase"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType" default="DD6913E0-3E4E-4B83-8838-57EE7FB71DD1"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" default="FRAMEWORK_PACKAGING_SPECIFICATION   0x00090000"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="FarHeader">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This is the header for the Framework Archive Manifest file.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="FarName" type="UiNameType"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" default="FRAMEWORK_PACKAGING_SPECIFICATION   0x00090000"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="MsaHeader">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This header is for the Module Surface Area Description (MSA) files</xs:documentation>\r
-      <xs:documentation xml:lang="en">The Guid MUST change if the Module changes break backward compatibility.</xs:documentation>\r
-      <xs:documentation xml:lang="en">The Version MUST change if the Module changes, however, backward compatiblity is maintained.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="ModuleName" type="UiNameType"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" default="FRAMEWORK_PACKAGING_SPECIFICATION   0x00090000"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:element name="SpdHeader">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This head is for the Surface Area Package Description file (SPD)</xs:documentation>\r
-      <xs:documentation xml:lang="en">The Guid MUST change when the contents of the file undergo MAJOR FUNCTIONALITY changes.</xs:documentation>\r
-      <xs:documentation xml:lang="en">The Version MUST change when the contents of the file undergo MINOR FUNCTIONALITY changes.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="PackageName" type="UiNameType"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" default="FRAMEWORK_PACKAGING_SPECIFICATION   0x00090000"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-</xs:schema>\r
diff --git a/BaseTools/Conf/XMLSchema/NamingConvention.xsd b/BaseTools/Conf/XMLSchema/NamingConvention.xsd
deleted file mode 100644 (file)
index 8a76639..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2007/Edk2.1" xmlns="http://www.TianoCore.org/2007/Edk2.1">\r
-  <!--\r
-    Filename: NamingConvention.xsd\r
-    \r
-    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
-    This program and the accompanying materials\r
-    are licensed and made available under the terms and conditions of the BSD License\r
-    which may be found at http://opensource.org/licenses/bsd-license.php\r
-    \r
-    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-    \r
-  -->\r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en"> This schema defines various data types and naming conventions including: base name, filename and directory naming conventions. These are all simple data types.</xs:documentation>\r
-  </xs:annotation>\r
-  <xs:simpleType name="C_NameType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*(_)*[a-zA-Z]+((_)*[a-zA-Z0-9]*)*\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="FileNameConvention">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> This defines what a Filename is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a optional dot and more alphanumeric characters. </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*[a-zA-Z](\.?[\-_a-zA-Z0-9]+)*\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="GuidType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> The GUID data was a union of GuidType1 and GuidType2; standardizing on GuidType2. </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:union memberTypes="GuidType2"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="GuidType1">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> This defines the minimum specification for a GUID Array which is 8 Hex Digits - 4 Hex Digits - 4 Hex Digits - 8 Hex Bytes, the last 16 Hex Digits can be enclosed in sqiggle {} brackets.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},( )*0x[a-fA-F0-9]{1,4}(,( )*\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\})?\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="GuidType2">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> A GUID must contain five different Hexadecimal character sets that are separated by a dash (-) character. </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <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*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="Hex64BitDataType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Define a Hex 64 Bit Value to be 0x[a-f0-9]{16}</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*(0x)?[a-fA-F0-9]{1,16}\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexAddressType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Define a Hex Address, 0x[a-fA-F0-9]{1,16}</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*0x[a-fA-F0-9]{1,16}\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexByteDataType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Define a Hex Byte Value to be 0x[a-f0-9]{2}</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*(0x)?[a-fA-F0-9]{1,2}\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexDataType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Define a Hex Value to be 0x[a-f0-9]+</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*0x[a-fA-F0-9]+\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexDigitType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Define a Hex Diget to be 0x[a-f0-9]</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*[a-fA-F0-9]{1}\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexDoubleWordDataType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Define a Hex Double Word Value to be 0x[a-f0-9]{8}</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*0x[a-fA-F0-9]{1,8}\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="HexWordDataType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Define a Hex Word Value to be 0x[a-f0-9]{4}</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*0x[a-fA-F0-9]{1,4}\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="KeywordList">\r
-    <xs:restriction base="xs:string">\r
-      <xs:minLength value="1"/>\r
-      <xs:pattern value="\s*[a-zA-Z]+(\ *_*[a-zA-Z0-9]*)*\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="KeywordType">\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:pattern value="\s*[a-zA-Z]+(_*[a-zA-Z0-9]*)*\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="Paragraph">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This describes the normal text of a paragraph that can be used in a license or description tag.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="PathAndFilename">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> Naming convention for a path and file name</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:union memberTypes="xs:normalizedString xs:anyURI"/>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="Polarity">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Limit Polarity vaild values to 0 and 1</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:int">\r
-      <xs:pattern value="\s*0|1\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="Sentence">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> This data type requires two or more words </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:normalizedString">\r
-      <xs:pattern value="\s*(\w+\W*)+( )+(\W*\w*\W*\s*)*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="ToolsNameConvention">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">This data type is used for ToolCommand, ToolChainFamily and TagName.</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:NCName">\r
-      <xs:pattern value="\s*[a-zA-Z][a-zA-Z0-9]*\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="UCNameType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> Definition of a UpperCase Name, which can be any combination of upper case characters followed by zero or more underscore and/or uppercase alphanumeric characters </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*[A-Z]+(_*[A-Z0-9]*)*\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="VersionDataType">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en"> Definition of a Version Number, which is one or more strings of decimal digits separated by dots. </xs:documentation>\r
-      <xs:documentation>\r
-        The algorithm to compare two versions A and B is as follows. if A==B, then A is the same version as B. Otherwise, say A is a1.a2.a3...an and B is b1.b2.b3...bn. For the first pair (ai, bi), for i less than n and i less than m, where ai is not equal to bi, if ai is less than bi, then A is less than B. If ai is greater than bi, then A is greater than B.   \r
-      </xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:string">\r
-      <xs:pattern value="\s*\d+(\.\d+)*\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-  <xs:simpleType name="Zero">\r
-    <xs:annotation>\r
-      <xs:documentation xml:lang="en">Define Zero as a vaild value</xs:documentation>\r
-    </xs:annotation>\r
-    <xs:restriction base="xs:int">\r
-      <xs:pattern value="\s*0\s*"/>\r
-    </xs:restriction>\r
-  </xs:simpleType>\r
-</xs:schema>\r
diff --git a/BaseTools/Conf/XMLSchema/SurfaceArea.xsd b/BaseTools/Conf/XMLSchema/SurfaceArea.xsd
deleted file mode 100644 (file)
index c941be8..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2007/Edk2.1" xmlns="http://www.TianoCore.org/2007/Edk2.1">\r
-  <!--\r
-    Filename: SurfaceArea.xsd\r
-    \r
-    Copyright (c) 2007, Intel Corporation. All rights reserved.\r
-    This program and the accompanying materials\r
-    are licensed and made available under the terms and conditions of the BSD License\r
-    which may be found at http://opensource.org/licenses/bsd-license.php\r
-    \r
-    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-    \r
-    APPROVED: 05-Jun-2007\r
-  -->\r
-  <xs:include schemaLocation="FrameworkHeaders.xsd"/>\r
-  <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en">This describes the valid content of a FrameworkDatabase (DB) File.</xs:documentation>\r
-  </xs:annotation>\r
-  <xs:element name="FrameworkDatabase">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="FarList"/>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en">This describes the valid content for a Module Surface Area Description (MSA) file.</xs:documentation>\r
-  </xs:annotation>\r
-  <xs:element name="ModuleSurfaceArea">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="ModuleDefinitions"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="BinaryFiles"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="NonProcessedFiles"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="HiiPackages"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="Depex"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="ModuleBuildOptions"/>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-  <xs:annotation>\r
-    <xs:documentation xml:lang="en">This describes the valid content for a Package Surface Area Description (SPD) file.</xs:documentation>\r
-  </xs:annotation>\r
-  <xs:element name="PackageSurfaceArea">\r
-    <xs:complexType>\r
-      <xs:sequence>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>\r
-        <xs:element minOccurs="1" maxOccurs="1" ref="PackageDefinitions"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>\r
-        <xs:element minOccurs="0" maxOccurs="1" ref="PcdDeclarations"/>\r
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>\r
-      </xs:sequence>\r
-    </xs:complexType>\r
-  </xs:element>\r
-</xs:schema>\r
diff --git a/BaseTools/Conf/XMLSchema/SurfaceArea.xsdconfig b/BaseTools/Conf/XMLSchema/SurfaceArea.xsdconfig
deleted file mode 100644 (file)
index 5d86b98..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--\r
-Copyright (c) 2007, Intel Corporation. All rights reserved.\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which may be found at http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
--->\r
-<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">\r
-  <xb:namespace uri="http://www.TianoCore.org/2007/Edk2.1">\r
-    <xb:package>org.tianocore</xb:package>\r
-  </xb:namespace>\r
-</xb:config>\r
-\r
diff --git a/BaseTools/Conf/XMLSchema/WorkspaceContent.xsd b/BaseTools/Conf/XMLSchema/WorkspaceContent.xsd
deleted file mode 100644 (file)
index 1c9491a..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--\r
-    Filename: WorkspaceContent.xsd\r
-    \r
-    Copyright (c) 2008, Intel Corporation. All rights reserved.\r
-    \r
-    This program and the accompanying materials are licensed and made available \r
-    under the terms and conditions of the BSD License which may be found at \r
-    http://opensource.org/licenses/bsd-license.php\r
-    \r
-    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-    \r
--->\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
-       elementFormDefault="qualified"\r
-       targetNamespace="http://edk2.TianoCore.org/2008/1.0"\r
-       xmlns="http://edk2.TianoCore.org/2008/1.0">\r
-       <xs:annotation>\r
-               <xs:documentation xml:lang="en-us">This document covers the\r
-                       WorkspaceContent.xml file that tracks what has been installed into an EDK\r
-                       II development WORKSPACE.</xs:documentation>\r
-       </xs:annotation>\r
-       <xs:element name="WorkspaceContent">\r
-               <xs:annotation>\r
-                       <xs:documentation xml:lang="en-us"> This file describes the distributions,\r
-                               packages, stand-alone (non-package) modules and miscellaneous files that\r
-                               have been installed in THIS WORKSPACE. Additionally, any tools that are\r
-                               installed as part of a distribution are tracked (tools are not required\r
-                               to be installed within a WORKSPACE.) </xs:documentation>\r
-               </xs:annotation>\r
-               <xs:complexType>\r
-                       <xs:sequence>\r
-                               <xs:element ref="Header" minOccurs="1" maxOccurs="1">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This section tracks required\r
-                                                       information about this WORKSPACE. </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                               <xs:element ref="DistributionPackage" minOccurs="1"\r
-                                       maxOccurs="unbounded">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> The list of UEFI/PI distribution\r
-                                                       packages that have been installed in this WORKSPACE.\r
-                                               </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                       </xs:sequence>\r
-               </xs:complexType>\r
-       </xs:element>\r
-\r
-       <xs:element name="Header">\r
-               <xs:complexType>\r
-                       <xs:sequence>\r
-                               <xs:element minOccurs="0" maxOccurs="1" name="Name"\r
-                                       type="xs:normalizedString">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This User Interface Name can be\r
-                                                       entered during initialization of a WORKSPACE to permit a developer\r
-                                                       to uniquely identify a WORKSPACE. </xs:documentation>\r
-                                               <xs:documentation xml:lang="en-us"> This value can be used by report\r
-                                                       generators. </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                               <xs:element minOccurs="1" maxOccurs="1" name="AbsolutePath"\r
-                                       type="xs:anyURI">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> When the WORKSPACE is first\r
-                                                       initialized, this is the absolute path to the WORKSPACE. If the\r
-                                                       user moves or re-names the directory, the RmPkg tool will need to\r
-                                                       verify the content of this WORKSPACE before removing any content.\r
-                                               </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                               <xs:element minOccurs="1" maxOccurs="1" name="LastModifiedDate"\r
-                                       type="xs:dateTime">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> The date and time of the last\r
-                                                       Package Installation or Removal. The format is:\r
-                                                       YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T\r
-                                                       character separator between the calendar date and the time.\r
-                                               </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                               <xs:element minOccurs="1" maxOccurs="1"\r
-                                       name="WorkspaceContentSpecification" default="1.0" type="xs:decimal"\r
-                                />\r
-                       </xs:sequence>\r
-               </xs:complexType>\r
-       </xs:element>\r
-\r
-\r
-\r
-       <xs:element name="ModuleList">\r
-               <xs:complexType>\r
-                       <xs:sequence>\r
-                               <xs:element minOccurs="1" maxOccurs="unbounded" name="Module">\r
-                                       <xs:complexType>\r
-                                               <xs:sequence>\r
-                                                       <xs:element name="Name" minOccurs="1" maxOccurs="1">\r
-                                                               <xs:annotation>\r
-                                                                       <xs:documentation xml:lang="en-us"> The User Interface Name of\r
-                                                                               the module. </xs:documentation>\r
-                                                               </xs:annotation>\r
-                                                               <xs:complexType>\r
-                                                                       <xs:simpleContent>\r
-                                                                               <xs:extension base="xs:normalizedString">\r
-                                                                                       <xs:attribute name="BaseName" type="xs:NCName"\r
-                                                                                               use="required">\r
-                                                                                               <xs:annotation>\r
-                                                                                                       <xs:documentation xml:lang="en-us"> The BaseName is\r
-                                                                                                               used to create files and folders during a build, and\r
-                                                                                                               is used by packaging tools as a keyword to create\r
-                                                                                                               the INF file. </xs:documentation>\r
-                                                                                               </xs:annotation>\r
-                                                                                       </xs:attribute>\r
-                                                                               </xs:extension>\r
-                                                                       </xs:simpleContent>\r
-                                                               </xs:complexType>\r
-                                                       </xs:element>\r
-                                                       <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r
-                                                               <xs:annotation>\r
-                                                                       <xs:documentation xml:lang="en-us"> This is the GUID of the\r
-                                                                               module. Backward compatible versions of a module can use the\r
-                                                                               same GUID, however the version attribute must be changed\r
-                                                                               (incrementally.) Non-backward compatible versions of a\r
-                                                                               module must also provide a new GUID, while resetting the\r
-                                                                               version attribute is optional. </xs:documentation>\r
-                                                               </xs:annotation>\r
-                                                       </xs:element>\r
-                                                       <xs:element name="InstalledFolder" minOccurs="1" maxOccurs="1"\r
-                                                               type="xs:anyURI">\r
-                                                               <xs:annotation>\r
-                                                                       <xs:documentation xml:lang="en-us"> This is the WORKSPACE\r
-                                                                               relative path that the Module was installed in.\r
-                                                                       </xs:documentation>\r
-                                                               </xs:annotation>\r
-                                                       </xs:element>\r
-                                                       <xs:element name="InfFilename" minOccurs="1" maxOccurs="1"\r
-                                                               type="xs:anyURI">\r
-                                                               <xs:annotation>\r
-                                                                       <xs:documentation xml:lang="en-us"> This is filename of the\r
-                                                                               INF file created in the InstalledFolder (listed above)\r
-                                                                               during installation. </xs:documentation>\r
-                                                               </xs:annotation>\r
-                                                       </xs:element>\r
-                                               </xs:sequence>\r
-                                       </xs:complexType>\r
-                               </xs:element>\r
-                       </xs:sequence>\r
-               </xs:complexType>\r
-       </xs:element>\r
-\r
-       <xs:element name="DistributionPackage">\r
-               <xs:complexType>\r
-                       <xs:sequence>\r
-                               <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> The User Interface Name of the\r
-                                                       distribution. </xs:documentation>\r
-                                       </xs:annotation>\r
-                                       <xs:complexType>\r
-                                               <xs:simpleContent>\r
-                                                       <xs:extension base="xs:normalizedString">\r
-                                                               <xs:attribute name="BaseName" type="xs:NCName" use="required">\r
-                                                                       <xs:annotation>\r
-                                                                               <xs:documentation xml:lang="en-us"> This is the actual\r
-                                                                                       BaseName used during the installation. Since users may\r
-                                                                                       change the Distribution Package's default BaseName (used\r
-                                                                                       to create the PKG and MANIFEST files) this is the real\r
-                                                                                       name used to create the files. </xs:documentation>\r
-                                                                       </xs:annotation>\r
-                                                               </xs:attribute>\r
-                                                       </xs:extension>\r
-                                               </xs:simpleContent>\r
-                                       </xs:complexType>\r
-                               </xs:element>\r
-                               <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This is the GUID of the\r
-                                                       distribution, backward compatible versions of a distribution can\r
-                                                       use the same GUID, however the version attribute must be changed\r
-                                                       (incrementally.) Non-backward compatible versions of a\r
-                                                       distribution must also provide a new GUID, while resetting the\r
-                                                       version attribute is optional. </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                               <xs:element minOccurs="1" maxOccurs="1" name="PkgFilename"\r
-                                       type="xs:anyURI">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This is the filename of the XML\r
-                                                       distribution package surface area (PKG) file that was stored in\r
-                                                       the Conf/Pkgs folder of the WORKSPACE for this distribution\r
-                                                       package. </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                               <xs:element minOccurs="1" maxOccurs="1" name="ManifestFilename"\r
-                                       type="xs:anyURI">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This is the filename of the\r
-                                                       distribution package manifest (.manifest) file that was created\r
-                                                       and stored in the Conf/Pkgs folder of the WORKSPACE for this\r
-                                                       distribution package. The InstallPkg tool must create this file\r
-                                                       using the extracted locations of the content zip file (or,\r
-                                                       alternatively, the user can create the file by redirecting the\r
-                                                       output of the zip -Tv Contents.zip.) </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                               <xs:element minOccurs="1" maxOccurs="1" name="InstalledDate"\r
-                                       type="xs:dateTime" />\r
-                               <xs:element name="DistributionProperties" minOccurs="0" maxOccurs="1"\r
-                                       nillable="true">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This section tracks information\r
-                                                       and content that is not associated with either packages or\r
-                                                       modules, or is not required for building packages or modules.\r
-                                               </xs:documentation>\r
-                                       </xs:annotation>\r
-                                       <xs:complexType>\r
-                                               <xs:attribute name="ReadOnly" type="xs:boolean" default="false"\r
-                                                       use="optional">\r
-                                                       <xs:annotation>\r
-                                                               <xs:documentation xml:lang="en-us">If set to true, all content\r
-                                                                       within this distribution package should NOT be\r
-                                                               modified.</xs:documentation>\r
-                                                       </xs:annotation>\r
-                                               </xs:attribute>\r
-                                               <xs:attribute name="RePackage" type="xs:boolean" default="false"\r
-                                                       use="optional">\r
-                                                       <xs:annotation>\r
-                                                               <xs:documentation xml:lang="en-us">If set to true, then the\r
-                                                                       content can be repackaged into another distribution\r
-                                                               package.</xs:documentation>\r
-                                                       </xs:annotation>\r
-                                               </xs:attribute>\r
-                                               <xs:attribute name="ModifiedToolsDef" type="xs:boolean"\r
-                                                       default="false" use="optional">\r
-                                                       <xs:annotation>\r
-                                                               <xs:documentation xml:lang="en-us">If set to true, then either\r
-                                                                       the distribution or one of its packages has a user extensions\r
-                                                                       section that modified the tools_def.txt file.\r
-                                                               </xs:documentation>\r
-                                                       </xs:annotation>\r
-                                               </xs:attribute>\r
-                                               <xs:attribute name="ProvidesTools" type="xs:boolean" default="false"\r
-                                                       use="optional">\r
-                                                       <xs:annotation>\r
-                                                               <xs:documentation xml:lang="en-us"> This is used to identify a\r
-                                                                       distribution that provides tools that may or may not be\r
-                                                                       installed in a WORKSPACE. </xs:documentation>\r
-                                                       </xs:annotation>\r
-                                               </xs:attribute>\r
-                                               <xs:attribute name="ProvidesMiscellaneousFiles" type="xs:boolean"\r
-                                                       default="false" use="optional">\r
-                                                       <xs:annotation>\r
-                                                               <xs:documentation xml:lang="en-us"> This is used to identify a\r
-                                                                       distribution that provides miscellaneous files that must be\r
-                                                                       installed in a WORKSPACE. </xs:documentation>\r
-                                                       </xs:annotation>\r
-                                               </xs:attribute>\r
-                                               <xs:attribute name="UnknownUserExtensions" type="xs:boolean"\r
-                                                       default="false" use="optional">\r
-                                                       <xs:annotation>\r
-                                                               <xs:documentation xml:lang="en-us"> This is used to identify a\r
-                                                                       distribution that has a UserExtensions section at the\r
-                                                                       Distribution, Package or Module level that uses an Identifier\r
-                                                                       other than BuildOptions, ToolsDef or DistributionPackage.\r
-                                                               </xs:documentation>\r
-                                                       </xs:annotation>\r
-                                               </xs:attribute>\r
-                                       </xs:complexType>\r
-                               </xs:element>\r
-                               <xs:element name="PackageList" minOccurs="0" maxOccurs="1">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This section tracks individual\r
-                                                       packages (collections of related items.) Each package listed in\r
-                                                       this section must have a DEC file associated with it.\r
-                                               </xs:documentation>\r
-                                       </xs:annotation>\r
-                                       <xs:complexType>\r
-                                               <xs:sequence>\r
-                                                       <xs:element name="Package" minOccurs="1" maxOccurs="unbounded">\r
-                                                               <xs:complexType>\r
-                                                                       <xs:sequence>\r
-                                                                               <xs:element name="Name" minOccurs="1" maxOccurs="1">\r
-                                                                                       <xs:annotation>\r
-                                                                                               <xs:documentation xml:lang="en-us"> The User Interface\r
-                                                                                                       Name of the package. </xs:documentation>\r
-                                                                                       </xs:annotation>\r
-                                                                                       <xs:complexType>\r
-                                                                                               <xs:simpleContent>\r
-                                                                                                       <xs:extension base="xs:normalizedString">\r
-                                                                                                               <xs:attribute name="BaseName" type="xs:NCName"\r
-                                                                                                                       use="required">\r
-                                                                                                                       <xs:annotation>\r
-                                                                                                                               <xs:documentation xml:lang="en-us"> The BaseName\r
-                                                                                                                                       is used to create files and folders during a\r
-                                                                                                                                       build, and is used by packaging tools as a\r
-                                                                                                                                       keyword to create the DEC file.\r
-                                                                                                                               </xs:documentation>\r
-                                                                                                                       </xs:annotation>\r
-                                                                                                               </xs:attribute>\r
-                                                                                                       </xs:extension>\r
-                                                                                               </xs:simpleContent>\r
-                                                                                       </xs:complexType>\r
-                                                                               </xs:element>\r
-                                                                               <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r
-                                                                                       <xs:annotation>\r
-                                                                                               <xs:documentation xml:lang="en-us"> This is the GUID of\r
-                                                                                                       the package, backward compatible versions of a package\r
-                                                                                                       can use the same GUID, however the version attribute\r
-                                                                                                       must be changed (incrementally.) Non-backward\r
-                                                                                                       compatible versions of a package must also provide a\r
-                                                                                                       new GUID, while resetting the version attribute is\r
-                                                                                                       optional. </xs:documentation>\r
-                                                                                       </xs:annotation>\r
-                                                                               </xs:element>\r
-                                                                               <xs:element name="InstalledFolder" type="xs:anyURI"\r
-                                                                                       minOccurs="1" maxOccurs="1">\r
-                                                                                       <xs:annotation>\r
-                                                                                               <xs:documentation xml:lang="en-us"> This is used to\r
-                                                                                                       track the actual installation location, relative to\r
-                                                                                                       the WORKSPACE. During an installation, the user may be\r
-                                                                                                       presented with an option to relocate package content\r
-                                                                                                       from the ZIP portion of the archive into a different\r
-                                                                                                       location. </xs:documentation>\r
-                                                                                               <xs:documentation> Any installation tools must modify\r
-                                                                                                       this value if the location is different from the\r
-                                                                                                       default location. </xs:documentation>\r
-                                                                                               <xs:documentation> Any removal tools must check this\r
-                                                                                                       value to locate correctly, the items that will be\r
-                                                                                                       removed. </xs:documentation>\r
-                                                                                       </xs:annotation>\r
-                                                                               </xs:element>\r
-                                                                               <xs:element name="DecFilename" minOccurs="1" maxOccurs="1"\r
-                                                                                       type="xs:anyURI">\r
-                                                                                       <xs:annotation>\r
-                                                                                               <xs:documentation xml:lang="en-us"> This is the filename\r
-                                                                                                       of the package declaration (DEC) filename created\r
-                                                                                                       during installation in the InstalledFolder listed\r
-                                                                                                       above. </xs:documentation>\r
-                                                                                       </xs:annotation>\r
-                                                                               </xs:element>\r
-                                                                               <xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">\r
-                                                                                       <xs:annotation>\r
-                                                                                               <xs:documentation xml:lang="en-us"> This section is used\r
-                                                                                                       to track the actual installation location, relative to\r
-                                                                                                       the WORKSPACE. Every module that is part of this\r
-                                                                                                       package must be listed here. During an installation,\r
-                                                                                                       the user may be presented with an option to relocate\r
-                                                                                                       module content from the ZIP portion of the archive\r
-                                                                                                       into a different location, the installation tools must\r
-                                                                                                       modify this value if the location is different from\r
-                                                                                                       the default location. Any removal tools must check\r
-                                                                                                       this value to locate correctly, the items that will be\r
-                                                                                                       removed. </xs:documentation>\r
-                                                                                               <xs:documentation xml:lang="en-us"> The name of any INF\r
-                                                                                                       files that were created during the installation of a\r
-                                                                                                       distribution must also be listed in this section.\r
-                                                                                               </xs:documentation>\r
-                                                                                       </xs:annotation>\r
-                                                                               </xs:element>\r
-                                                                       </xs:sequence>\r
-                                                               </xs:complexType>\r
-                                                       </xs:element>\r
-                                               </xs:sequence>\r
-                                       </xs:complexType>\r
-                               </xs:element>\r
-                               <xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This section is used to record\r
-                                                       distribution packages that contain modules that are not part of a\r
-                                                       package. Modules that are part of packages are listed under the\r
-                                                       Package element of the PackageList section. </xs:documentation>\r
-                                               <xs:documentation xml:lang="en-us"> Module only distribution will\r
-                                                       typically be for binary only modules, like the enhanced FAT\r
-                                                       driver. </xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                       </xs:sequence>\r
-               </xs:complexType>\r
-       </xs:element>\r
-\r
-       <xs:element name="GUID">\r
-               <xs:complexType>\r
-                       <xs:simpleContent>\r
-                               <xs:extension base="RegistryFormatGuid">\r
-                                       <xs:attribute name="Version" type="xs:decimal" use="required" />\r
-                               </xs:extension>\r
-                       </xs:simpleContent>\r
-               </xs:complexType>\r
-       </xs:element>\r
-\r
-       <!-- Simple Types that further restrict allowed content. -->\r
-\r
-       <xs:simpleType name="RegistryFormatGuid">\r
-               <xs:annotation>\r
-                       <xs:documentation xml:lang="en-us"> A Registry format GUID must contain\r
-                               five different Hexadecimal character sets that are separated by a dash\r
-                               (-) character. </xs:documentation>\r
-               </xs:annotation>\r
-               <xs:restriction base="xs:normalizedString">\r
-                       <xs:pattern\r
-                               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*"\r
-                        />\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-\r
-</xs:schema>\r
index 257f732cd0cfecf40016344570e30093fed6e5fd..107e783d2e193e2032f2c07b925965a5de390bde 100644 (file)
 #   Unicode-Text-File\r
 #\r
 \r
+## Build Rule Version Number\r
+#  build_rule_version=0.1\r
+#\r
+\r
 [C-Code-File]\r
     <InputFile>\r
         ?.c\r
index 68caf86fe6404d3e9e10d62b0c16ca5cad491168..738cd650523889aebe7f1c8b2a7e94f3924a2405 100644 (file)
@@ -1,5 +1,5 @@
 #\r
-#  Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
 #  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
@@ -37,6 +37,16 @@ DEFINE VS2008x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 9.0\Com
 DEFINE VS2008x86_BINX64 = DEF(VS2008x86_BIN)\x86_amd64\r
 DEFINE VS2008x86_BIN64  = DEF(VS2008x86_BIN)\x86_ia64\r
 \r
+DEFINE VS2010_BIN      = C:\Program Files\Microsoft Visual Studio 10.0\Vc\bin\r
+DEFINE VS2010_DLL      = C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;DEF(VS2010_BIN)\r
+DEFINE VS2010_BINX64   = DEF(VS2010_BIN)\x86_amd64\r
+DEFINE VS2010_BIN64    = DEF(VS2010_BIN)\x86_ia64\r
+\r
+DEFINE VS2010x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\r
+DEFINE VS2010x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;DEF(VS2010x86_BIN)\r
+DEFINE VS2010x86_BINX64 = DEF(VS2010x86_BIN)\x86_amd64\r
+DEFINE VS2010x86_BIN64  = DEF(VS2010x86_BIN)\x86_ia64\r
+\r
 DEFINE WINSDK_VERSION   = v6.0A\r
 DEFINE WINSDK_BIN       = c:\Program Files\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin\r
 DEFINE WINSDKx86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin\r
@@ -225,6 +235,15 @@ DEFINE CLANG_BIN = /usr/bin/
 #                             Required to build platforms or ACPI tables:\r
 #                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from\r
 #                               http://www.acpica.org/downloads/previous_releases.php\r
+#   VS2010      -win32-  Requires:\r
+#                             Microsoft Visual Studio 2010 Premium Edition\r
+#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830\r
+#                        Optional:\r
+#                             Required to build EBC drivers:\r
+#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)\r
+#                             Required to build platforms or ACPI tables:\r
+#                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from\r
+#                               http://www.acpica.org/downloads/previous_releases.php\r
 #   DDK3790     -win32-  Requires:\r
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830\r
 #                        Optional:\r
@@ -333,6 +352,15 @@ DEFINE CLANG_BIN = /usr/bin/
 #                             Required to build platforms or ACPI tables:\r
 #                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from\r
 #                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi\r
+#   VS2010xASL  -win32-  Requires:\r
+#                             Microsoft Visual Studio 2010 Premium Edition\r
+#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830\r
+#                        Optional:\r
+#                             Required to build EBC drivers:\r
+#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)\r
+#                             Required to build platforms or ACPI tables:\r
+#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from\r
+#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi\r
 #   DDK3790xASL -win32-  Requires:\r
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830\r
 #                        Optional:\r
@@ -390,6 +418,13 @@ DEFINE CLANG_BIN = /usr/bin/
 #                             Required to build platforms or ACPI tables:\r
 #                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from\r
 #                               http://www.acpica.org/downloads/previous_releases.php \r
+#   VS2010x86   -win64-  Requires:\r
+#                             Microsoft Visual Studio 2010 (x86) Premium Edition\r
+#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830\r
+#                        Optional:\r
+#                             Required to build platforms or ACPI tables:\r
+#                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from\r
+#                               http://www.acpica.org/downloads/previous_releases.php \r
 #   ICCx86      -win64-  Requires:\r
 #                             Intel C Compiler V9.1(x86)\r
 #                        Dependencies:\r
@@ -430,6 +465,13 @@ DEFINE CLANG_BIN = /usr/bin/
 #                             Required to build platforms or ACPI tables:\r
 #                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from\r
 #                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi\r
+#  VS2010x86xASL -win64- Requires:\r
+#                             Microsoft Visual Studio 2010 (x86) Premium Edition\r
+#                             Microsoft Windows Server 2003 Driver Development Kit(Microsoft WINDDK) version 3790.1830 \r
+#                        Optional:\r
+#                             Required to build platforms or ACPI tables:\r
+#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from\r
+#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi\r
 #   ICCx86xASL  -win64-  Requires:\r
 #                             Intel C Compiler V9.1 (x86)\r
 #                        Dependencies:\r
@@ -727,9 +769,9 @@ NOOPT_VS2005_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE
 RELEASE_VS2005_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd\r
 NOOPT_VS2005_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 \r
-  DEBUG_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
-NOOPT_VS2005_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+  DEBUG_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2005_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
 \r
 ##################\r
 # X64 definitions\r
@@ -1726,6 +1768,513 @@ RELEASE_VS2008x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 NOOPT_VS2008x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
 \r
 \r
+####################################################################################\r
+#\r
+# Microsoft Visual Studio 2010\r
+#\r
+#   VS2010  - Microsoft Visual Studio 2010 Premium Edition\r
+#   ASL     - Intel ACPI Source Language Compiler\r
+####################################################################################\r
+#   VS2010           - Microsoft Visual Studio 2010 Premium Edition\r
+*_VS2010_*_*_FAMILY               = MSFT\r
+\r
+*_VS2010_*_MAKE_PATH              = DEF(VS2010_BIN)\nmake.exe\r
+*_VS2010_*_MAKE_FLAGS             = /nologo\r
+*_VS2010_*_RC_PATH                = DEF(WINSDK_BIN)\rc.exe\r
+\r
+*_VS2010_*_SLINK_FLAGS            = /NOLOGO /LTCG\r
+*_VS2010_*_APP_FLAGS              = /nologo /E /TC\r
+*_VS2010_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h\r
+*_VS2010_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+\r
+*_VS2010_*_ASM16_PATH             = DEF(VS2010_BIN)\ml.exe\r
+\r
+##################\r
+# ASL definitions\r
+##################\r
+*_VS2010_*_ASL_PATH               = DEF(DEFAULT_WIN_ASL_BIN)\r
+*_VS2010_*_ASL_FLAGS              = DEF(DEFAULT_WIN_ASL_FLAGS)\r
+*_VS2010_*_ASL_OUTFLAGS           = DEF(DEFAULT_WIN_ASL_OUTFLAGS)\r
+*_VS2010_*_ASLCC_FLAGS            = DEF(MSFT_ASLCC_FLAGS)\r
+*_VS2010_*_ASLPP_FLAGS            = DEF(MSFT_ASLPP_FLAGS)\r
+*_VS2010_*_ASLDLINK_FLAGS         = DEF(MSFT_ASLDLINK_FLAGS)\r
+\r
+##################\r
+# IA32 definitions\r
+##################\r
+*_VS2010_IA32_*_DLL               = DEF(VS2010_DLL)\r
+\r
+*_VS2010_IA32_MAKE_PATH           = DEF(VS2010_BIN)\nmake.exe\r
+*_VS2010_IA32_CC_PATH             = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010_IA32_VFRPP_PATH          = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010_IA32_SLINK_PATH          = DEF(VS2010_BIN)\lib.exe\r
+*_VS2010_IA32_DLINK_PATH          = DEF(VS2010_BIN)\link.exe\r
+*_VS2010_IA32_APP_PATH            = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010_IA32_PP_PATH             = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010_IA32_ASM_PATH            = DEF(VS2010_BIN)\ml.exe\r
+*_VS2010_IA32_ASLCC_PATH          = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010_IA32_ASLPP_PATH          = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010_IA32_ASLDLINK_PATH       = DEF(VS2010_BIN)\link.exe\r
+\r
+      *_VS2010_IA32_MAKE_FLAGS    = /nologo\r
+  DEBUG_VS2010_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2010_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+NOOPT_VS2010_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
+\r
+  DEBUG_VS2010_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+RELEASE_VS2010_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd\r
+NOOPT_VS2010_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+\r
+  DEBUG_VS2010_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2010_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2010_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+##################\r
+# X64 definitions\r
+##################\r
+*_VS2010_X64_*_DLL         = DEF(VS2010_DLL)\r
+\r
+*_VS2010_X64_CC_PATH       = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010_X64_PP_PATH       = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010_X64_APP_PATH      = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010_X64_VFRPP_PATH    = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010_X64_ASM_PATH      = DEF(VS2010_BINX64)\ml64.exe\r
+*_VS2010_X64_SLINK_PATH    = DEF(VS2010_BINX64)\lib.exe\r
+*_VS2010_X64_DLINK_PATH    = DEF(VS2010_BINX64)\link.exe\r
+*_VS2010_X64_ASLCC_PATH    = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010_X64_ASLPP_PATH    = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe\r
+\r
+\r
+  DEBUG_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+NOOPT_VS2010_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
+\r
+  DEBUG_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+RELEASE_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
+NOOPT_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+\r
+  DEBUG_VS2010_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2010_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2010_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+##################\r
+# IPF definitions\r
+##################\r
+*_VS2010_IPF_*_DLL         = DEF(VS2010_DLL)\r
+\r
+*_VS2010_IPF_PP_PATH       = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010_IPF_APP_PATH      = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010_IPF_VFRPP_PATH    = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010_IPF_CC_PATH       = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010_IPF_ASM_PATH      = DEF(VS2010_BIN64)\ias.exe\r
+*_VS2010_IPF_SLINK_PATH    = DEF(VS2010_BIN64)\lib.exe\r
+*_VS2010_IPF_DLINK_PATH    = DEF(VS2010_BIN64)\link.exe\r
+*_VS2010_IPF_ASLCC_PATH    = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010_IPF_ASLPP_PATH    = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010_IPF_ASLDLINK_PATH = DEF(VS2010_BIN64)\link.exe\r
+\r
+  DEBUG_VS2010_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi\r
+RELEASE_VS2010_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
+NOOPT_VS2010_IPF_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /FIAutoGen.h /QIPF_fr32 /Zi /Od\r
+\r
+  DEBUG_VS2010_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+RELEASE_VS2010_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
+NOOPT_VS2010_IPF_ASM_FLAGS      = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+\r
+  DEBUG_VS2010_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2010_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+NOOPT_VS2010_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+\r
+##################\r
+# EBC definitions\r
+##################\r
+*_VS2010_EBC_*_FAMILY            = INTEL\r
+\r
+*_VS2010_EBC_MAKE_PATH           = DEF(VS2010_BIN)\nmake.exe\r
+*_VS2010_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe\r
+*_VS2010_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe\r
+*_VS2010_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe\r
+*_VS2010_EBC_SLINK_PATH          = DEF(EBC_BIN)\link.exe\r
+*_VS2010_EBC_DLINK_PATH          = DEF(EBC_BIN)\link.exe\r
+\r
+*_VS2010_EBC_MAKE_FLAGS          = /nologo\r
+*_VS2010_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h\r
+*_VS2010_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
+*_VS2010_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2010_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
+*_VS2010_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
+\r
+####################################################################################\r
+#\r
+# Microsoft Visual Studio 2010\r
+#\r
+#   VS2010  - Microsoft Visual Studio 2010 Premium Edition\r
+#   ASL     - Microsoft ACPI Source Language Compiler (asl.exe)\r
+####################################################################################\r
+#   VS2010xASL           - Microsoft Visual Studio 2010 Premium Edition\r
+*_VS2010xASL_*_*_FAMILY        = MSFT\r
+\r
+*_VS2010xASL_*_MAKE_PATH       = DEF(VS2010_BIN)\nmake.exe\r
+*_VS2010xASL_*_MAKE_FLAG       = /nologo\r
+*_VS2010xASL_*_RC_PATH         = DEF(WINSDK_BIN)\rc.exe\r
+\r
+*_VS2010xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG\r
+*_VS2010xASL_*_APP_FLAGS       = /nologo /E /TC\r
+*_VS2010xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
+*_VS2010xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+\r
+*_VS2010xASL_*_ASM16_PATH      = DEF(VS2010_BIN)\ml.exe\r
+\r
+##################\r
+# ASL definitions\r
+##################\r
+*_VS2010xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)\r
+*_VS2010xASL_*_ASL_FLAGS       =\r
+*_VS2010xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)\r
+*_VS2010xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
+*_VS2010xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
+*_VS2010xASL_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)\r
+\r
+##################\r
+# IA32 definitions\r
+##################\r
+*_VS2010xASL_IA32_*_DLL        = DEF(VS2010_DLL)\r
+\r
+*_VS2010xASL_IA32_MAKE_PATH    = DEF(VS2010_BIN)\nmake.exe\r
+*_VS2010xASL_IA32_CC_PATH      = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010xASL_IA32_VFRPP_PATH   = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010xASL_IA32_SLINK_PATH   = DEF(VS2010_BIN)\lib.exe\r
+*_VS2010xASL_IA32_DLINK_PATH   = DEF(VS2010_BIN)\link.exe\r
+*_VS2010xASL_IA32_APP_PATH     = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010xASL_IA32_PP_PATH      = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010xASL_IA32_ASM_PATH     = DEF(VS2010_BIN)\ml.exe\r
+*_VS2010xASL_IA32_ASLCC_PATH    = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010xASL_IA32_ASLPP_PATH    = DEF(VS2010_BIN)\cl.exe\r
+*_VS2010xASL_IA32_ASLDLINK_PATH = DEF(VS2010_BIN)\link.exe\r
+\r
+      *_VS2010xASL_IA32_MAKE_FLAGS  = /nologo\r
+  DEBUG_VS2010xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2010xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+NOOPT_VS2010xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
+\r
+  DEBUG_VS2010xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+RELEASE_VS2010xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
+NOOPT_VS2010xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+\r
+  DEBUG_VS2010xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2010xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2010xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+##################\r
+# X64 definitions\r
+##################\r
+*_VS2010xASL_X64_*_DLL         = DEF(VS2010_DLL)\r
+\r
+*_VS2010xASL_X64_CC_PATH       = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010xASL_X64_PP_PATH       = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010xASL_X64_APP_PATH      = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010xASL_X64_VFRPP_PATH    = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010xASL_X64_ASM_PATH      = DEF(VS2010_BINX64)\ml64.exe\r
+*_VS2010xASL_X64_SLINK_PATH    = DEF(VS2010_BINX64)\lib.exe\r
+*_VS2010xASL_X64_DLINK_PATH    = DEF(VS2010_BINX64)\link.exe\r
+*_VS2010xASL_X64_ASLCC_PATH    = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010xASL_X64_ASLPP_PATH    = DEF(VS2010_BINX64)\cl.exe\r
+*_VS2010xASL_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe\r
+\r
+\r
+  DEBUG_VS2010xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2010xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+NOOPT_VS2010xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
+\r
+  DEBUG_VS2010xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+RELEASE_VS2010xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
+NOOPT_VS2010xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+\r
+  DEBUG_VS2010xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2010xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2010xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+##################\r
+# IPF definitions\r
+##################\r
+*_VS2010xASL_IPF_*_DLL         = DEF(VS2010_DLL)\r
+\r
+*_VS2010xASL_IPF_PP_PATH       = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010xASL_IPF_APP_PATH      = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010xASL_IPF_VFRPP_PATH    = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010xASL_IPF_CC_PATH       = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010xASL_IPF_ASM_PATH      = DEF(VS2010_BIN64)\ias.exe\r
+*_VS2010xASL_IPF_SLINK_PATH    = DEF(VS2010_BIN64)\lib.exe\r
+*_VS2010xASL_IPF_DLINK_PATH    = DEF(VS2010_BIN64)\link.exe\r
+*_VS2010xASL_IPF_ASLCC_PATH    = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010xASL_IPF_ASLPP_PATH    = DEF(VS2010_BIN64)\cl.exe\r
+*_VS2010xASL_IPF_ASLDLINK_PATH = DEF(VS2010_BIN64)\link.exe\r
+\r
+  DEBUG_VS2010xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi\r
+RELEASE_VS2010xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
+NOOPT_VS2010xASL_IPF_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /FIAutoGen.h /QIPF_fr32 /Zi /Od\r
+\r
+  DEBUG_VS2010xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+RELEASE_VS2010xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
+NOOPT_VS2010xASL_IPF_ASM_FLAGS      = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+\r
+  DEBUG_VS2010xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2010xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+NOOPT_VS2010xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+\r
+##################\r
+# EBC definitions\r
+##################\r
+*_VS2010xASL_EBC_*_FAMILY            = INTEL\r
+\r
+*_VS2010xASL_EBC_MAKE_PATH           = DEF(VS2010_BIN)\nmake.exe\r
+*_VS2010xASL_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe\r
+*_VS2010xASL_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe\r
+*_VS2010xASL_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe\r
+*_VS2010xASL_EBC_SLINK_PATH          = DEF(EBC_BIN)\link.exe\r
+*_VS2010xASL_EBC_DLINK_PATH          = DEF(EBC_BIN)\link.exe\r
+\r
+*_VS2010xASL_EBC_MAKE_FLAGS          = /nologo\r
+*_VS2010xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h\r
+*_VS2010xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
+*_VS2010xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2010xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
+*_VS2010xASL_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
+\r
+\r
+####################################################################################\r
+#   VS2010x86       - Microsoft Visual Studio 2010 (x86) with Intel ASL\r
+#   ASL  - Intel ACPI Source Language Compiler (iasl.exe)\r
+####################################################################################\r
+#   VS2010x86           - Microsoft Visual Studio 2010 (x86) ALL Edition with Intel ASL\r
+*_VS2010x86_*_*_FAMILY        = MSFT\r
+\r
+*_VS2010x86_*_MAKE_PATH       = DEF(VS2010x86_BIN)\nmake.exe\r
+*_VS2010x86_*_MAKE_FLAG       = /nologo\r
+*_VS2010x86_*_RC_PATH         = DEF(WINSDK_BIN)\rc.exe\r
+\r
+*_VS2010x86_*_MAKE_FLAGS      = /nologo\r
+*_VS2010x86_*_SLINK_FLAGS     = /NOLOGO /LTCG\r
+*_VS2010x86_*_APP_FLAGS       = /nologo /E /TC\r
+*_VS2010x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
+*_VS2010x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+\r
+*_VS2010x86_*_ASM16_PATH      = DEF(VS2010x86_BIN)\ml.exe\r
+\r
+##################\r
+# ASL definitions\r
+##################\r
+*_VS2010x86_*_ASL_PATH        = DEF(WIN_IASL_BIN)\r
+*_VS2010x86_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)\r
+*_VS2010x86_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)\r
+*_VS2010x86_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
+*_VS2010x86_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
+*_VS2010x86_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)\r
+\r
+##################\r
+# IA32 definitions\r
+##################\r
+*_VS2010x86_IA32_*_DLL        = DEF(VS2010x86_DLL)\r
+\r
+*_VS2010x86_IA32_MAKE_PATH    = DEF(VS2010x86_BIN)\nmake.exe\r
+*_VS2010x86_IA32_CC_PATH      = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86_IA32_VFRPP_PATH   = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86_IA32_ASLCC_PATH   = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86_IA32_ASLPP_PATH   = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86_IA32_SLINK_PATH   = DEF(VS2010x86_BIN)\lib.exe\r
+*_VS2010x86_IA32_DLINK_PATH   = DEF(VS2010x86_BIN)\link.exe\r
+*_VS2010x86_IA32_ASLDLINK_PATH= DEF(VS2010x86_BIN)\link.exe\r
+*_VS2010x86_IA32_APP_PATH     = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86_IA32_PP_PATH      = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86_IA32_ASM_PATH     = DEF(VS2010x86_BIN)\ml.exe\r
+\r
+      *_VS2010x86_IA32_MAKE_FLAGS  = /nologo\r
+  DEBUG_VS2010x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2010x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+NOOPT_VS2010x86_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
+\r
+  DEBUG_VS2010x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+RELEASE_VS2010x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
+NOOPT_VS2010x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+\r
+  DEBUG_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2010x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+##################\r
+# X64 definitions\r
+##################\r
+*_VS2010x86_X64_*_DLL         = DEF(VS2010x86_DLL)\r
+\r
+*_VS2010x86_X64_CC_PATH       = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86_X64_PP_PATH       = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86_X64_APP_PATH      = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86_X64_VFRPP_PATH    = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86_X64_ASLCC_PATH    = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86_X64_ASLPP_PATH    = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86_X64_ASM_PATH      = DEF(VS2010x86_BINX64)\ml64.exe\r
+*_VS2010x86_X64_SLINK_PATH    = DEF(VS2010x86_BINX64)\lib.exe\r
+*_VS2010x86_X64_DLINK_PATH    = DEF(VS2010x86_BINX64)\link.exe\r
+*_VS2010x86_X64_ASLDLINK_PATH = DEF(VS2010x86_BINX64)\link.exe\r
+\r
+  DEBUG_VS2010x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2010x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+NOOPT_VS2010x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
+\r
+  DEBUG_VS2010x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+RELEASE_VS2010x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
+NOOPT_VS2010x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi\r
\r
+  DEBUG_VS2010x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2010x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2010x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+\r
+##################\r
+# IPF definitions\r
+##################\r
+*_VS2010x86_IPF_*_DLL         = DEF(VS2010x86_DLL)\r
+\r
+*_VS2010x86_IPF_PP_PATH       = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86_IPF_APP_PATH      = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86_IPF_VFRPP_PATH    = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86_IPF_ASLCC_PATH    = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86_IPF_ASLPP_PATH    = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86_IPF_CC_PATH       = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86_IPF_ASM_PATH      = DEF(VS2010x86_BIN64)\ias.exe\r
+*_VS2010x86_IPF_SLINK_PATH    = DEF(VS2010x86_BIN64)\lib.exe\r
+*_VS2010x86_IPF_DLINK_PATH    = DEF(VS2010x86_BIN64)\link.exe\r
+*_VS2010x86_IPF_ASLDLINK_PATH = DEF(VS2010x86_BIN64)\link.exe\r
+\r
+  DEBUG_VS2010x86_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi\r
+RELEASE_VS2010x86_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
+NOOPT_VS2010x86_IPF_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /FIAutoGen.h /QIPF_fr32 /Zi /Od\r
+\r
+  DEBUG_VS2010x86_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+RELEASE_VS2010x86_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
+NOOPT_VS2010x86_IPF_ASM_FLAGS      = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+\r
+  DEBUG_VS2010x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2010x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+NOOPT_VS2010x86_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+\r
+\r
+####################################################################################\r
+#   VS2010x86xASL     - Microsoft Visual Studio 2010 with Microsoft ASL\r
+#   ASL  - Microsoft ACPI Source Language Compiler (asl.exe)\r
+####################################################################################\r
+*_VS2010x86xASL_*_*_FAMILY        = MSFT\r
+\r
+*_VS2010x86xASL_*_MAKE_PATH       = DEF(VS2010x86_BIN)\nmake.exe\r
+*_VS2010x86xASL_*_MAKE_FLAG       = /nologo\r
+*_VS2010x86xASL_*_RC_PATH         = DEF(WINSDK_BIN)\rc.exe\r
+\r
+*_VS2010x86xASL_*_MAKE_FLAGS      = /nologo\r
+*_VS2010x86xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG\r
+*_VS2010x86xASL_*_APP_FLAGS       = /nologo /E /TC\r
+*_VS2010x86xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
+*_VS2010x86xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+\r
+*_VS2010x86xASL_*_ASM16_PATH      = DEF(VS2010x86_BIN)\ml.exe\r
+\r
+##################\r
+# ASL definitions\r
+##################\r
+*_VS2010x86xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)\r
+*_VS2010x86xASL_*_ASL_FLAGS       = DEF(MS_ASL_FLAGS)\r
+*_VS2010x86xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)\r
+*_VS2010x86xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
+*_VS2010x86xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
+*_VS2010x86xASL_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)\r
+\r
+##################\r
+# IA32 definitions\r
+##################\r
+*_VS2010x86xASL_IA32_*_DLL        = DEF(VS2010x86_DLL)\r
+\r
+*_VS2010x86xASL_IA32_MAKE_PATH    = DEF(VS2010x86_BIN)\nmake.exe\r
+*_VS2010x86xASL_IA32_CC_PATH      = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86xASL_IA32_VFRPP_PATH   = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86xASL_IA32_ASLCC_PATH   = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86xASL_IA32_ASLPP_PATH   = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86xASL_IA32_SLINK_PATH   = DEF(VS2010x86_BIN)\lib.exe\r
+*_VS2010x86xASL_IA32_DLINK_PATH   = DEF(VS2010x86_BIN)\link.exe\r
+*_VS2010x86xASL_IA32_ASLDLINK_PATH= DEF(VS2010x86_BIN)\link.exe\r
+*_VS2010x86xASL_IA32_APP_PATH     = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86xASL_IA32_PP_PATH      = DEF(VS2010x86_BIN)\cl.exe\r
+*_VS2010x86xASL_IA32_ASM_PATH     = DEF(VS2010x86_BIN)\ml.exe\r
+\r
+      *_VS2010x86xASL_IA32_MAKE_FLAGS  = /nologo\r
+  DEBUG_VS2010x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2010x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+NOOPT_VS2010x86xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
+\r
+  DEBUG_VS2010x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+RELEASE_VS2010x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
+NOOPT_VS2010x86xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+\r
+  DEBUG_VS2010x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2010x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2010x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+##################\r
+# X64 definitions\r
+##################\r
+*_VS2010x86xASL_X64_*_DLL         = DEF(VS2010x86_DLL)\r
+\r
+*_VS2010x86xASL_X64_CC_PATH       = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86xASL_X64_PP_PATH       = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86xASL_X64_APP_PATH      = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86xASL_X64_VFRPP_PATH    = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86xASL_X64_ASLCC_PATH    = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86xASL_X64_ASLPP_PATH    = DEF(VS2010x86_BINX64)\cl.exe\r
+*_VS2010x86xASL_X64_ASM_PATH      = DEF(VS2010x86_BINX64)\ml64.exe\r
+*_VS2010x86xASL_X64_SLINK_PATH    = DEF(VS2010x86_BINX64)\lib.exe\r
+*_VS2010x86xASL_X64_DLINK_PATH    = DEF(VS2010x86_BINX64)\link.exe\r
+*_VS2010x86xASL_X64_ASLDLINK_PATH = DEF(VS2010x86_BINX64)\link.exe\r
+\r
+  DEBUG_VS2010x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2010x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+NOOPT_VS2010x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
+\r
+  DEBUG_VS2010x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+RELEASE_VS2010x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
+NOOPT_VS2010x86xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+\r
+  DEBUG_VS2010x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2010x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+NOOPT_VS2010x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+##################\r
+# IPF definitions\r
+##################\r
+*_VS2010x86xASL_IPF_*_DLL         = DEF(VS2010x86_DLL)\r
+\r
+*_VS2010x86xASL_IPF_PP_PATH       = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86xASL_IPF_APP_PATH      = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86xASL_IPF_VFRPP_PATH    = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86xASL_IPF_ASLCC_PATH    = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86xASL_IPF_ASLPP_PATH    = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86xASL_IPF_CC_PATH       = DEF(VS2010x86_BIN64)\cl.exe\r
+*_VS2010x86xASL_IPF_ASM_PATH      = DEF(VS2010x86_BIN64)\ias.exe\r
+*_VS2010x86xASL_IPF_SLINK_PATH    = DEF(VS2010x86_BIN64)\lib.exe\r
+*_VS2010x86xASL_IPF_DLINK_PATH    = DEF(VS2010x86_BIN64)\link.exe\r
+*_VS2010x86xASL_IPF_ASLDLINK_PATH = DEF(VS2010x86_BIN64)\link.exe\r
+\r
+  DEBUG_VS2010x86xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi\r
+RELEASE_VS2010x86xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
+NOOPT_VS2010x86xASL_IPF_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /FIAutoGen.h /QIPF_fr32 /Zi /Od\r
+\r
+  DEBUG_VS2010x86xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+RELEASE_VS2010x86xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
+NOOPT_VS2010x86xASL_IPF_ASM_FLAGS      = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
+\r
+  DEBUG_VS2010x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2010x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+NOOPT_VS2010x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+\r
+\r
 ####################################################################################\r
 #\r
 # Microsoft Device Driver Kit 3790.1830 (IA-32, X64, Itanium, with Link Time Code Generation)\r
@@ -4369,6 +4918,14 @@ RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM
 *_*_*_LZMA_PATH          = LzmaCompress\r
 *_*_*_LZMA_GUID          = EE4E5898-3914-4259-9D6E-DC7BD79403CF\r
 \r
+##################\r
+# LzmaF86Compress tool definitions with converter for x86 code.\r
+# It can improve the compression ratio if the input file is IA32 or X64 PE image.\r
+# Notes: If X64 PE image is built based on GCC44, it may not get the better compression.\r
+##################\r
+*_*_*_LZMAF86_PATH         = LzmaF86Compress\r
+*_*_*_LZMAF86_GUID         = D42AE6BD-1352-4bfb-909A-CA72A6EAE889\r
+\r
 ##################\r
 # TianoCompress tool definitions\r
 ##################\r
index ad034be5389e1fbee93412cacc04cac8ce9bf06e..e0dde3e08507c1109ce0e8a1f8e5db6a24c8c1de 100644 (file)
@@ -1,7 +1,7 @@
 ## @file
 #  GNU Make makefile for C tools build.
 #
-#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2007 - 2012, 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
@@ -22,10 +22,7 @@ ifndef ARCH
   ifeq ($(uname_m),x86_64)
     ARCH=X64
   endif
-  ifeq ($(uname_m),i386)
-    ARCH=IA32
-  endif
-  ifeq ($(uname_m),i686)
+  ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32)
     ARCH=IA32
   endif
   ifndef ARCH
index 22327e7ec7854692677e0883564b7577124eb3c1..f9144e5f018f2a38cca8492d28abfe2bc4fe485c 100644 (file)
@@ -14,4 +14,4 @@
 \r
 **/\r
 \r
-#define __BUILD_VERSION "Build 2474"\r
+#define __BUILD_VERSION "Build 2518"\r
index 1cabc959d8bc58a92a747bdaf7af641f7e3bd34c..82d391ce3ad0328ac09dc9db1164546b8426dbec 100644 (file)
@@ -3,7 +3,7 @@
   IFR is primarily consumed by the EFI presentation engine, and produced by EFI\r
   internal application and drivers as well as all add-in card option-ROM drivers\r
 \r
-  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
@@ -613,7 +613,7 @@ typedef union {
 #define EFI_IFR_INCONSISTENT_IF_OP     0x11\r
 #define EFI_IFR_EQ_ID_VAL_OP           0x12\r
 #define EFI_IFR_EQ_ID_ID_OP            0x13\r
-#define EFI_IFR_EQ_ID_LIST_OP          0x14\r
+#define EFI_IFR_EQ_ID_VAL_LIST_OP      0x14\r
 #define EFI_IFR_AND_OP                 0x15\r
 #define EFI_IFR_OR_OP                  0x16\r
 #define EFI_IFR_NOT_OP                 0x17\r
index 99e9cbbeb0914f88170ec91baa4e078f311b413f..07f0a90b60b3bd03870b48d28685bc3b5ecc1d62 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # Windows makefile for 'LzmaCompress' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
@@ -24,7 +24,8 @@ OBJECTS = \
   $(SDK_C)/LzmaDec.o \\r
   $(SDK_C)/LzmaEnc.o \\r
   $(SDK_C)/7zFile.o \\r
-  $(SDK_C)/7zStream.o\r
+  $(SDK_C)/7zStream.o \\r
+  $(SDK_C)/Bra86.o\r
 \r
 include $(MAKEROOT)/Makefiles/app.makefile\r
 \r
index 7d254ed49ad3a77d8d0e9742e708dcb7b4daa192..b569b4e4d9804a808bcf6b0034e42c00ec9d654a 100644 (file)
@@ -5,7 +5,7 @@
     LzmaUtil.c -- Test application for LZMA compression\r
     2008-11-23 : Igor Pavlov : Public domain\r
 \r
-  Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 #include "Sdk/C/7zVersion.h"\r
 #include "Sdk/C/LzmaDec.h"\r
 #include "Sdk/C/LzmaEnc.h"\r
+#include "Sdk/C/Bra.h"\r
 #include "CommonLib.h"\r
 \r
+#define LZMA_HEADER_SIZE (LZMA_PROPS_SIZE + 8)\r
+\r
+typedef enum {\r
+  NoConverter, \r
+  X86Converter,\r
+  MaxConverter\r
+} CONVERTER_TYPE;\r
+\r
 const char *kCantReadMessage = "Can not read input file";\r
 const char *kCantWriteMessage = "Can not write output file";\r
 const char *kCantAllocateMessage = "Can not allocate memory";\r
@@ -39,12 +48,13 @@ static void SzFree(void *p, void *address) { p = p; MyFree(address); }
 static ISzAlloc g_Alloc = { SzAlloc, SzFree };\r
 \r
 static Bool mQuietMode = False;\r
+static CONVERTER_TYPE mConType = NoConverter;\r
 \r
 #define UTILITY_NAME "LzmaCompress"\r
 #define UTILITY_MAJOR_VERSION 0\r
-#define UTILITY_MINOR_VERSION 1\r
+#define UTILITY_MINOR_VERSION 2\r
 #define INTEL_COPYRIGHT \\r
-  "Copyright (c) 2009, Intel Corporation. All rights reserved."\r
+  "Copyright (c) 2009-2012, Intel Corporation. All rights reserved."\r
 void PrintHelp(char *buffer)\r
 {\r
   strcat(buffer,\r
@@ -54,6 +64,7 @@ void PrintHelp(char *buffer)
              "  -e: encode file\n"\r
              "  -d: decode file\n"\r
              "  -o FileName, --output FileName: specify the output filename\n"\r
+             "  --f86: enable converter for x86 code\n"\r
              "  -v, --verbose: increase output messages\n"\r
              "  -q, --quiet: reduce output messages\n"\r
              "  --debug [0-9]: set debug level\n"\r
@@ -86,121 +97,151 @@ void PrintVersion(char *buffer)
   sprintf (buffer, "%s Version %d.%d %s ", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);\r
 }\r
 \r
-#define IN_BUF_SIZE (1 << 16)\r
-#define OUT_BUF_SIZE (1 << 16)\r
-\r
-static SRes Decode2(CLzmaDec *state, ISeqOutStream *outStream, ISeqInStream *inStream,\r
-    UInt64 unpackSize)\r
+static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 fileSize)\r
 {\r
-  int thereIsSize = (unpackSize != (UInt64)(Int64)-1);\r
-  Byte inBuf[IN_BUF_SIZE];\r
-  Byte outBuf[OUT_BUF_SIZE];\r
-  size_t inPos = 0, inSize = 0, outPos = 0;\r
-  LzmaDec_Init(state);\r
-  for (;;)\r
-  {\r
-    if (inPos == inSize)\r
-    {\r
-      inSize = IN_BUF_SIZE;\r
-      RINOK(inStream->Read(inStream, inBuf, &inSize));\r
-      inPos = 0;\r
-    }\r
-    {\r
-      SRes res;\r
-      SizeT inProcessed = inSize - inPos;\r
-      SizeT outProcessed = OUT_BUF_SIZE - outPos;\r
-      ELzmaFinishMode finishMode = LZMA_FINISH_ANY;\r
-      ELzmaStatus status;\r
-      if (thereIsSize && outProcessed > unpackSize)\r
-      {\r
-        outProcessed = (SizeT)unpackSize;\r
-        finishMode = LZMA_FINISH_END;\r
-      }\r
-\r
-      res = LzmaDec_DecodeToBuf(state, outBuf + outPos, &outProcessed,\r
-        inBuf + inPos, &inProcessed, finishMode, &status);\r
-      inPos += inProcessed;\r
-      outPos += outProcessed;\r
-      unpackSize -= outProcessed;\r
-\r
-      if (outStream)\r
-        if (outStream->Write(outStream, outBuf, outPos) != outPos)\r
-          return SZ_ERROR_WRITE;\r
+  SRes res;\r
+  size_t inSize = (size_t)fileSize;\r
+  Byte *inBuffer = 0;\r
+  Byte *outBuffer = 0;\r
+  Byte *filteredStream = 0;\r
+  size_t outSize;\r
+  CLzmaEncProps props;\r
 \r
-      outPos = 0;\r
+  LzmaEncProps_Init(&props);\r
+  LzmaEncProps_Normalize(&props);\r
+\r
+  if (inSize != 0) {\r
+    inBuffer = (Byte *)MyAlloc(inSize);\r
+    if (inBuffer == 0)\r
+      return SZ_ERROR_MEM;\r
+  } else {\r
+    return SZ_ERROR_INPUT_EOF;\r
+  }\r
+  \r
+  if (SeqInStream_Read(inStream, inBuffer, inSize) != SZ_OK) {\r
+    res = SZ_ERROR_READ;\r
+    goto Done;\r
+  }\r
 \r
-      if (res != SZ_OK || (thereIsSize && unpackSize == 0))\r
-        return res;\r
+  // we allocate 105% of original size + 64KB for output buffer\r
+  outSize = (size_t)fileSize / 20 * 21 + (1 << 16);\r
+  outBuffer = (Byte *)MyAlloc(outSize);\r
+  if (outBuffer == 0) {\r
+    res = SZ_ERROR_MEM;\r
+    goto Done;\r
+  }\r
+  \r
+  {\r
+    int i;\r
+    for (i = 0; i < 8; i++)\r
+      outBuffer[i + LZMA_PROPS_SIZE] = (Byte)(fileSize >> (8 * i));\r
+  }\r
 \r
-      if (inProcessed == 0 && outProcessed == 0)\r
+  if (mConType != NoConverter)\r
+  {\r
+    filteredStream = (Byte *)MyAlloc(inSize);\r
+    if (filteredStream == 0) {\r
+      res = SZ_ERROR_MEM;\r
+      goto Done;\r
+    }\r
+    memcpy(filteredStream, inBuffer, inSize);\r
+    \r
+    if (mConType == X86Converter) {\r
       {\r
-        if (thereIsSize || status != LZMA_STATUS_FINISHED_WITH_MARK)\r
-          return SZ_ERROR_DATA;\r
-        return res;\r
+        UInt32 x86State;\r
+        x86_Convert_Init(x86State);\r
+        x86_Convert(filteredStream, (SizeT) inSize, 0, &x86State, 1);\r
       }\r
     }\r
   }\r
-}\r
-\r
-static SRes Decode(ISeqOutStream *outStream, ISeqInStream *inStream)\r
-{\r
-  UInt64 unpackSize;\r
-  int i;\r
-  SRes res = 0;\r
 \r
-  CLzmaDec state;\r
-\r
-  /* header: 5 bytes of LZMA properties and 8 bytes of uncompressed size */\r
-  unsigned char header[LZMA_PROPS_SIZE + 8];\r
-\r
-  /* Read and parse header */\r
+  {\r
+    size_t outSizeProcessed = outSize - LZMA_HEADER_SIZE;\r
+    size_t outPropsSize = LZMA_PROPS_SIZE;\r
+    \r
+    res = LzmaEncode(outBuffer + LZMA_HEADER_SIZE, &outSizeProcessed,\r
+        mConType != NoConverter ? filteredStream : inBuffer, inSize,\r
+        &props, outBuffer, &outPropsSize, 0,\r
+        NULL, &g_Alloc, &g_Alloc);\r
+    \r
+    if (res != SZ_OK)\r
+      goto Done;\r
+\r
+    outSize = LZMA_HEADER_SIZE + outSizeProcessed;\r
+  }\r
 \r
-  RINOK(SeqInStream_Read(inStream, header, sizeof(header)));\r
+  if (outStream->Write(outStream, outBuffer, outSize) != outSize)\r
+    res = SZ_ERROR_WRITE;\r
 \r
-  unpackSize = 0;\r
-  for (i = 0; i < 8; i++)\r
-    unpackSize += (UInt64)header[LZMA_PROPS_SIZE + i] << (i * 8);\r
+Done:\r
+  MyFree(outBuffer);\r
+  MyFree(inBuffer);\r
+  MyFree(filteredStream);\r
 \r
-  LzmaDec_Construct(&state);\r
-  RINOK(LzmaDec_Allocate(&state, header, LZMA_PROPS_SIZE, &g_Alloc));\r
-  res = Decode2(&state, outStream, inStream, unpackSize);\r
-  LzmaDec_Free(&state, &g_Alloc);\r
   return res;\r
 }\r
 \r
-static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 fileSize, char *rs)\r
+static SRes Decode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 fileSize)\r
 {\r
-  CLzmaEncHandle enc;\r
   SRes res;\r
-  CLzmaEncProps props;\r
+  size_t inSize = (size_t)fileSize;\r
+  Byte *inBuffer = 0;\r
+  Byte *outBuffer = 0;\r
+  size_t outSize = 0;\r
+  size_t inSizePure;\r
+  ELzmaStatus status;\r
+  UInt64 outSize64 = 0;\r
 \r
-  rs = rs;\r
+  int i;\r
+\r
+  if (inSize < LZMA_HEADER_SIZE) \r
+    return SZ_ERROR_INPUT_EOF;\r
 \r
-  enc = LzmaEnc_Create(&g_Alloc);\r
-  if (enc == 0)\r
+  inBuffer = (Byte *)MyAlloc(inSize);\r
+  if (inBuffer == 0)\r
     return SZ_ERROR_MEM;\r
+  \r
+  if (SeqInStream_Read(inStream, inBuffer, inSize) != SZ_OK) {\r
+    res = SZ_ERROR_READ;\r
+    goto Done;\r
+  }\r
 \r
-  LzmaEncProps_Init(&props);\r
-  res = LzmaEnc_SetProps(enc, &props);\r
+  for (i = 0; i < 8; i++)\r
+    outSize64 += ((UInt64)inBuffer[LZMA_PROPS_SIZE + i]) << (i * 8);\r
+\r
+  outSize = (size_t)outSize64;\r
+  if (outSize != 0) {\r
+    outBuffer = (Byte *)MyAlloc(outSize);\r
+    if (outBuffer == 0) {\r
+      res = SZ_ERROR_MEM;\r
+      goto Done;\r
+    }\r
+  } else {\r
+    res = SZ_OK;\r
+    goto Done;\r
+  }\r
 \r
-  if (res == SZ_OK)\r
-  {\r
-    Byte header[LZMA_PROPS_SIZE + 8];\r
-    size_t headerSize = LZMA_PROPS_SIZE;\r
-    int i;\r
+  inSizePure = inSize - LZMA_HEADER_SIZE;\r
+  res = LzmaDecode(outBuffer, &outSize, inBuffer + LZMA_HEADER_SIZE, &inSizePure,\r
+      inBuffer, LZMA_PROPS_SIZE, LZMA_FINISH_END, &status, &g_Alloc);\r
 \r
-    res = LzmaEnc_WriteProperties(enc, header, &headerSize);\r
-    for (i = 0; i < 8; i++)\r
-      header[headerSize++] = (Byte)(fileSize >> (8 * i));\r
-    if (outStream->Write(outStream, header, headerSize) != headerSize)\r
-      res = SZ_ERROR_WRITE;\r
-    else\r
-    {\r
-      if (res == SZ_OK)\r
-        res = LzmaEnc_Encode(enc, outStream, inStream, NULL, &g_Alloc, &g_Alloc);\r
-    }\r
+  if (res != SZ_OK)\r
+    goto Done;\r
+\r
+  if (mConType == X86Converter)\r
+  {\r
+    UInt32 x86State;\r
+    x86_Convert_Init(x86State);\r
+    x86_Convert(outBuffer, (SizeT) outSize, 0, &x86State, 0);\r
   }\r
-  LzmaEnc_Destroy(enc, &g_Alloc, &g_Alloc);\r
+\r
+  if (outStream->Write(outStream, outBuffer, outSize) != outSize)\r
+    res = SZ_ERROR_WRITE;\r
+\r
+Done:\r
+  MyFree(outBuffer);\r
+  MyFree(inBuffer);\r
+\r
   return res;\r
 }\r
 \r
@@ -214,6 +255,7 @@ int main2(int numArgs, const char *args[], char *rs)
   const char *inputFile = NULL;\r
   const char *outputFile = "file.tmp";\r
   int param;\r
+  UInt64 fileSize;\r
 \r
   FileSeqInStream_CreateVTable(&inStream);\r
   File_Construct(&inStream.file);\r
@@ -231,6 +273,8 @@ int main2(int numArgs, const char *args[], char *rs)
     if (strcmp(args[param], "-e") == 0 || strcmp(args[param], "-d") == 0) {\r
       encodeMode = (args[param][1] == 'e');\r
       modeWasSet = True;\r
+    } else if (strcmp(args[param], "--f86") == 0) {\r
+      mConType = X86Converter;\r
     } else if (strcmp(args[param], "-o") == 0 ||\r
                strcmp(args[param], "--output") == 0) {\r
       if (numArgs < (param + 2)) {\r
@@ -292,21 +336,21 @@ int main2(int numArgs, const char *args[], char *rs)
   if (OutFile_Open(&outStream.file, outputFile) != 0)\r
     return PrintError(rs, "Can not open output file");\r
 \r
+  File_GetLength(&inStream.file, &fileSize);\r
+\r
   if (encodeMode)\r
   {\r
-    UInt64 fileSize;\r
-    File_GetLength(&inStream.file, &fileSize);\r
     if (!mQuietMode) {\r
       printf("Encoding\n");\r
     }\r
-    res = Encode(&outStream.s, &inStream.s, fileSize, rs);\r
+    res = Encode(&outStream.s, &inStream.s, fileSize);\r
   }\r
   else\r
   {\r
     if (!mQuietMode) {\r
       printf("Decoding\n");\r
     }\r
-    res = Decode(&outStream.s, &inStream.s);\r
+    res = Decode(&outStream.s, &inStream.s, fileSize);\r
   }\r
 \r
   File_Close(&outStream.file);\r
diff --git a/BaseTools/Source/C/LzmaCompress/LzmaF86Compress.bat b/BaseTools/Source/C/LzmaCompress/LzmaF86Compress.bat
new file mode 100644 (file)
index 0000000..77749df
--- /dev/null
@@ -0,0 +1,31 @@
+@REM\r
+@REM This script will exec LzmaCompress tool with --f86 option that enables converter for x86 code.\r
+@REM\r
+@REM Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>\r
+@REM This program and the accompanying materials\r
+@REM are licensed and made available under the terms and conditions of the BSD License\r
+@REM which accompanies this distribution.  The full text of the license may be found at\r
+@REM http://opensource.org/licenses/bsd-license.php\r
+@REM\r
+@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+@REM\r
+\r
+@echo off\r
+@setlocal\r
+\r
+:Begin\r
+if "%1"=="" goto End\r
+if "%1"=="-e" (\r
+  set FLAG=--f86\r
+)\r
+if "%1"=="-d" (\r
+  set FLAG=--f86\r
+)\r
+set ARGS=%ARGS% %1\r
+shift\r
+goto Begin\r
+\r
+:End\r
+LzmaCompress %ARGS% %FLAG%\r
+@echo on\r
index 1c1ba2bc38cc1a7b8359fd4a1dbd1a1312aad475..872e8995128122b5f167187b1e219af090c647fb 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # Windows makefile for 'LzmaCompress' module build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
@@ -25,7 +25,17 @@ OBJECTS = \
   $(SDK_C)\LzmaDec.obj \\r
   $(SDK_C)\LzmaEnc.obj \\r
   $(SDK_C)\7zFile.obj \\r
-  $(SDK_C)\7zStream.obj\r
+  $(SDK_C)\7zStream.obj \\r
+  $(SDK_C)\Bra86.obj\r
 \r
 !INCLUDE ..\Makefiles\ms.app\r
 \r
+all: $(BIN_PATH)\LzmaF86Compress.bat\r
+\r
+$(BIN_PATH)\LzmaF86Compress.bat: LzmaF86Compress.bat\r
+  copy LzmaF86Compress.bat $(BIN_PATH)\LzmaF86Compress.bat /Y\r
+\r
+cleanall: localCleanall\r
+\r
+localCleanall:\r
+  del /f /q $(BIN_PATH)\LzmaF86Compress.bat > nul\r
diff --git a/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra.h b/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra.h
new file mode 100644 (file)
index 0000000..b9018eb
--- /dev/null
@@ -0,0 +1,60 @@
+/* Bra.h -- Branch converters for executables\r
+2008-10-04 : Igor Pavlov : Public domain */\r
+\r
+#ifndef __BRA_H\r
+#define __BRA_H\r
+\r
+#include "Types.h"\r
+\r
+/*\r
+These functions convert relative addresses to absolute addresses\r
+in CALL instructions to increase the compression ratio.\r
+  \r
+  In:\r
+    data     - data buffer\r
+    size     - size of data\r
+    ip       - current virtual Instruction Pinter (IP) value\r
+    state    - state variable for x86 converter\r
+    encoding - 0 (for decoding), 1 (for encoding)\r
+  \r
+  Out:\r
+    state    - state variable for x86 converter\r
+\r
+  Returns:\r
+    The number of processed bytes. If you call these functions with multiple calls,\r
+    you must start next call with first byte after block of processed bytes.\r
+  \r
+  Type   Endian  Alignment  LookAhead\r
+  \r
+  x86    little      1          4\r
+  ARMT   little      2          2\r
+  ARM    little      4          0\r
+  PPC     big        4          0\r
+  SPARC   big        4          0\r
+  IA64   little     16          0\r
+\r
+  size must be >= Alignment + LookAhead, if it's not last block.\r
+  If (size < Alignment + LookAhead), converter returns 0.\r
+\r
+  Example:\r
+\r
+    UInt32 ip = 0;\r
+    for ()\r
+    {\r
+      ; size must be >= Alignment + LookAhead, if it's not last block\r
+      SizeT processed = Convert(data, size, ip, 1);\r
+      data += processed;\r
+      size -= processed;\r
+      ip += processed;\r
+    }\r
+*/\r
+\r
+#define x86_Convert_Init(state) { state = 0; }\r
+SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding);\r
+SizeT ARM_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);\r
+SizeT ARMT_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);\r
+SizeT PPC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);\r
+SizeT SPARC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);\r
+SizeT IA64_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);\r
+\r
+#endif\r
diff --git a/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra86.c b/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra86.c
new file mode 100644 (file)
index 0000000..93566cb
--- /dev/null
@@ -0,0 +1,85 @@
+/* Bra86.c -- Converter for x86 code (BCJ)\r
+2008-10-04 : Igor Pavlov : Public domain */\r
+\r
+#include "Bra.h"\r
+\r
+#define Test86MSByte(b) ((b) == 0 || (b) == 0xFF)\r
+\r
+const Byte kMaskToAllowedStatus[8] = {1, 1, 1, 0, 1, 0, 0, 0};\r
+const Byte kMaskToBitNumber[8] = {0, 1, 2, 2, 3, 3, 3, 3};\r
+\r
+SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding)\r
+{\r
+  SizeT bufferPos = 0, prevPosT;\r
+  UInt32 prevMask = *state & 0x7;\r
+  if (size < 5)\r
+    return 0;\r
+  ip += 5;\r
+  prevPosT = (SizeT)0 - 1;\r
+\r
+  for (;;)\r
+  {\r
+    Byte *p = data + bufferPos;\r
+    Byte *limit = data + size - 4;\r
+    for (; p < limit; p++)\r
+      if ((*p & 0xFE) == 0xE8)\r
+        break;\r
+    bufferPos = (SizeT)(p - data);\r
+    if (p >= limit)\r
+      break;\r
+    prevPosT = bufferPos - prevPosT;\r
+    if (prevPosT > 3)\r
+      prevMask = 0;\r
+    else\r
+    {\r
+      prevMask = (prevMask << ((int)prevPosT - 1)) & 0x7;\r
+      if (prevMask != 0)\r
+      {\r
+        Byte b = p[4 - kMaskToBitNumber[prevMask]];\r
+        if (!kMaskToAllowedStatus[prevMask] || Test86MSByte(b))\r
+        {\r
+          prevPosT = bufferPos;\r
+          prevMask = ((prevMask << 1) & 0x7) | 1;\r
+          bufferPos++;\r
+          continue;\r
+        }\r
+      }\r
+    }\r
+    prevPosT = bufferPos;\r
+\r
+    if (Test86MSByte(p[4]))\r
+    {\r
+      UInt32 src = ((UInt32)p[4] << 24) | ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) | ((UInt32)p[1]);\r
+      UInt32 dest;\r
+      for (;;)\r
+      {\r
+        Byte b;\r
+        int index;\r
+        if (encoding)\r
+          dest = (ip + (UInt32)bufferPos) + src;\r
+        else\r
+          dest = src - (ip + (UInt32)bufferPos);\r
+        if (prevMask == 0)\r
+          break;\r
+        index = kMaskToBitNumber[prevMask] * 8;\r
+        b = (Byte)(dest >> (24 - index));\r
+        if (!Test86MSByte(b))\r
+          break;\r
+        src = dest ^ ((1 << (32 - index)) - 1);\r
+      }\r
+      p[4] = (Byte)(~(((dest >> 24) & 1) - 1));\r
+      p[3] = (Byte)(dest >> 16);\r
+      p[2] = (Byte)(dest >> 8);\r
+      p[1] = (Byte)dest;\r
+      bufferPos += 5;\r
+    }\r
+    else\r
+    {\r
+      prevMask = ((prevMask << 1) & 0x7) | 1;\r
+      bufferPos++;\r
+    }\r
+  }\r
+  prevPosT = bufferPos - prevPosT;\r
+  *state = ((prevPosT > 3) ? 0 : ((prevMask << ((int)prevPosT - 1)) & 0x7));\r
+  return bufferPos;\r
+}\r
index 367a5dbeadd44d264913eae5df097b57441639b7..789e06f18dfe4c8a038ce0e67bc184dc59a5c708 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # Windows makefile for C tools build.\r
 #\r
-# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
@@ -59,6 +59,7 @@ install: $(LIB_PATH) $(BIN_PATH)
        @echo ######################\r
        @-xcopy $(LIB_PATH)\*.lib $(SYS_LIB_PATH) /I /D /E /F /Y > NUL 2>&1\r
        @-xcopy $(BIN_PATH)\*.exe $(SYS_BIN_PATH) /I /D /E /F /Y > NUL 2>&1\r
+  @-xcopy $(BIN_PATH)\*.bat $(SYS_BIN_PATH) /I /D /E /F /Y > NUL 2>&1\r
 \r
 .PHONY: clean\r
 clean:\r
index b4f9d8fd7f3361aba458bdfb3ade3d963ce0b0b8..2e859b8dfa626826c668d2697bc6de921af26bd2 100644 (file)
@@ -2,7 +2,7 @@
   \r
   The definition of CFormPkg's member function\r
 \r
-Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
@@ -963,7 +963,7 @@ CIfrRecordInfoDB::CheckIdOpCode (
   switch (OpCode) {\r
   case EFI_IFR_EQ_ID_VAL_OP:\r
   case EFI_IFR_EQ_ID_ID_OP:\r
-  case EFI_IFR_EQ_ID_LIST_OP:\r
+  case EFI_IFR_EQ_ID_VAL_LIST_OP:\r
   case EFI_IFR_QUESTION_REF1_OP:\r
     return TRUE;\r
   default:\r
index 92e47d97a3c70aafa357b4c80a415e1de7a385b1..5f4d87aa0ab7e09dd174d3cb21a802732db5dddb 100644 (file)
@@ -2,7 +2,7 @@
   \r
   The definition of CFormPkg's member function\r
 \r
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
@@ -1885,8 +1885,8 @@ private:
 public:\r
   CIfrEqIdList (\r
   IN UINT32 LineNo\r
-  ) : CIfrObj (EFI_IFR_EQ_ID_LIST_OP, (CHAR8 **)&mEqIdVList, sizeof (EFI_IFR_EQ_ID_VAL_LIST), TRUE),\r
-                   CIfrOpHeader (EFI_IFR_EQ_ID_LIST_OP, &mEqIdVList->Header) {\r
+  ) : CIfrObj (EFI_IFR_EQ_ID_VAL_LIST_OP, (CHAR8 **)&mEqIdVList, sizeof (EFI_IFR_EQ_ID_VAL_LIST), TRUE),\r
+                   CIfrOpHeader (EFI_IFR_EQ_ID_VAL_LIST_OP, &mEqIdVList->Header) {\r
     SetLineNo (LineNo);\r
     mEqIdVList->QuestionId   = EFI_QUESTION_ID_INVALID;\r
     mEqIdVList->ListLength   = 0;\r
index c3a729eabfb8d3a9c13b6f901d3fc9319318f2c2..0444677e861e496b175b42d3c68f23da08443a38 100644 (file)
@@ -2,7 +2,7 @@
   \r
   Vfr common library functions.\r
 \r
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
@@ -3067,6 +3067,83 @@ CVfrStringDB::SetStringFileName(IN CHAR8 *StringFileName)
   mStringFileName[FileLen - 1] = '\0';\r
 }\r
 \r
+\r
+/**\r
+  Returns TRUE or FALSE whether SupportedLanguages contains the best matching language \r
+  from a set of supported languages.\r
+\r
+  @param[in]  SupportedLanguages  A pointer to a Null-terminated ASCII string that\r
+                                  contains a set of language codes.\r
+  @param[in]  Language            A variable that contains pointers to Null-terminated\r
+                                  ASCII strings that contain one language codes.\r
+\r
+  @retval FALSE   The best matching language could not be found in SupportedLanguages.\r
+  @retval TRUE    The best matching language could be found in SupportedLanguages.\r
+\r
+**/\r
+BOOLEAN\r
+CVfrStringDB::GetBestLanguage (\r
+  IN CONST CHAR8  *SupportedLanguages,\r
+  IN CHAR8        *Language\r
+  )\r
+{\r
+  UINTN        CompareLength;\r
+  UINTN        LanguageLength;\r
+  CONST CHAR8  *Supported;\r
+\r
+  if (SupportedLanguages == NULL || Language == NULL){\r
+    return FALSE;\r
+  }\r
+\r
+  //\r
+  // Determine the length of the first RFC 4646 language code in Language\r
+  //\r
+  for (LanguageLength = 0; Language[LanguageLength] != 0 && Language[LanguageLength] != ';'; LanguageLength++);\r
+\r
+  //\r
+  // Trim back the length of Language used until it is empty\r
+  //\r
+  while (LanguageLength > 0) {\r
+    //\r
+    // Loop through all language codes in SupportedLanguages\r
+    //\r
+    for (Supported = SupportedLanguages; *Supported != '\0'; Supported += CompareLength) {\r
+      //\r
+      // Skip ';' characters in Supported\r
+      //\r
+      for (; *Supported != '\0' && *Supported == ';'; Supported++);\r
+      //\r
+      // Determine the length of the next language code in Supported\r
+      //\r
+      for (CompareLength = 0; Supported[CompareLength] != 0 && Supported[CompareLength] != ';'; CompareLength++);\r
+      //\r
+      // If Language is longer than the Supported, then skip to the next language\r
+      //\r
+      if (LanguageLength > CompareLength) {\r
+        continue;\r
+      }\r
+\r
+      //\r
+      // See if the first LanguageLength characters in Supported match Language\r
+      //\r
+      if (strncmp (Supported, Language, LanguageLength) == 0) {\r
+        return TRUE;\r
+      }\r
+    }\r
+\r
+    //\r
+    // Trim Language from the right to the next '-' character \r
+    //\r
+    for (LanguageLength--; LanguageLength > 0 && Language[LanguageLength] != '-'; LanguageLength--);\r
+  }\r
+\r
+  //\r
+  // No matches were found \r
+  //\r
+  return FALSE;\r
+}\r
+\r
+\r
 CHAR8 *\r
 CVfrStringDB::GetVarStoreNameFormStringId (\r
   IN EFI_STRING_ID StringId\r
@@ -3122,17 +3199,18 @@ CVfrStringDB::GetVarStoreNameFormStringId (
   }\r
 \r
   //\r
-  // Search the language, only search the "en-US".\r
+  // Search the language, get best language base on RFC 4647 matching algorithm.\r
   //\r
   Current = StringPtr;\r
-  while (strcmp (PkgHeader->Language, "en-US") != 0) {\r
+  while (!GetBestLanguage ("en", PkgHeader->Language)) {\r
     Current += PkgHeader->Header.Length;\r
     PkgHeader = (EFI_HII_STRING_PACKAGE_HDR *) Current;\r
     //\r
-    // If can't find "en-US" string package, just return the first string package.\r
+    // If can't find string package base on language, just return the first string package.\r
     //\r
     if (Current - StringPtr >= Length) {\r
       Current = StringPtr;\r
+      PkgHeader = (EFI_HII_STRING_PACKAGE_HDR *) StringPtr;\r
       break;\r
     }\r
   }\r
index 9facce81499a91c7d9c761ab465d95578c051089..2c0ed7bd54d7fb799b7f54965414b35ecbe52032 100644 (file)
@@ -2,7 +2,7 @@
   \r
   Vfr common library functions.\r
 \r
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
@@ -438,6 +438,11 @@ private:
   UINT32 GetUnicodeStringTextSize (\r
     IN  UINT8            *StringSrc\r
     );\r
+    \r
+  BOOLEAN GetBestLanguage (\r
+    IN CONST CHAR8  *SupportedLanguages,\r
+    IN CHAR8        *Language\r
+    );\r
 \r
 public:\r
   CVfrStringDB ();\r
index 894ec8dcd8e3bc23ed348cb6b8a12811170f6e6e..2f38c6afd5537c61e328cda689d5001927775565 100644 (file)
@@ -46,6 +46,9 @@ gMakeTypeMap = {"MSFT":"nmake", "GCC":"gmake"}
 ## Build rule configuration file\r
 gBuildRuleFile = 'Conf/build_rule.txt'\r
 \r
+## Build rule default version\r
+AutoGenReqBuildRuleVerNum = "0.1"\r
+\r
 ## default file name for AutoGen\r
 gAutoGenCodeFileName = "AutoGen.c"\r
 gAutoGenHeaderFileName = "AutoGen.h"\r
@@ -288,8 +291,25 @@ class WorkspaceAutoGen(AutoGen):
         # apply SKU and inject PCDs from Flash Definition file\r
         for Arch in self.ArchList:\r
             Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]\r
+\r
+            DecPcds = set()\r
+            PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)\r
+            Pkgs = PGen.PackageList\r
+            for Pkg in Pkgs:\r
+                for Pcd in Pkg.Pcds.keys():\r
+                    DecPcds.add((Pcd[0], Pcd[1]))\r
+            Platform.IsPlatformPcdDeclared(DecPcds)\r
+\r
             Platform.SkuName = self.SkuId\r
             for Name, Guid in PcdSet:\r
+                if (Name, Guid) not in DecPcds:\r
+                    EdkLogger.error(\r
+                        'build',\r
+                        PARSER_ERROR,\r
+                        "PCD (%s.%s) used in FDF is not declared in DEC files." % (Guid, Name),\r
+                        File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],\r
+                        Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]\r
+                    )\r
                 Platform.AddPcd(Name, Guid, PcdSet[Name, Guid])\r
 \r
             Pa = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)\r
@@ -334,11 +354,14 @@ class WorkspaceAutoGen(AutoGen):
                     #\r
                     InfFoundFlag = False                   \r
                     for Pa in self.AutoGenObjectList:\r
+                        if InfFoundFlag:\r
+                            break\r
                         for Module in Pa.ModuleAutoGenList:\r
                             if path.normpath(Module.MetaFile.File) == path.normpath(FfsFile.InfFileName):\r
                                 InfFoundFlag = True\r
                                 if not Module.Guid.upper() in _GuidDict.keys():\r
                                     _GuidDict[Module.Guid.upper()] = FfsFile\r
+                                    break\r
                                 else:\r
                                     EdkLogger.error("build", \r
                                                     FORMAT_INVALID,\r
@@ -1230,6 +1253,15 @@ class PlatformAutoGen(AutoGen):
             if BuildRuleFile in [None, '']:\r
                 BuildRuleFile = gBuildRuleFile\r
             self._BuildRule = BuildRule(BuildRuleFile)\r
+            if self._BuildRule._FileVersion == "":\r
+                self._BuildRule._FileVersion = AutoGenReqBuildRuleVerNum\r
+            else:\r
+                if self._BuildRule._FileVersion < AutoGenReqBuildRuleVerNum :\r
+                    # If Build Rule's version is less than the version number required by the tools, halting the build.\r
+                    EdkLogger.error("build", AUTOGEN_ERROR, \r
+                                    ExtraData="The version number [%s] of build_rule.txt is less than the version number required by the AutoGen.(the minimum required version number is [%s])"\\r
+                                     % (self._BuildRule._FileVersion, AutoGenReqBuildRuleVerNum))\r
+              \r
         return self._BuildRule\r
 \r
     ## Summarize the packages used by modules in this platform\r
index 45a560448e30c4dac203d2b9c7b04c17e7a5ed9e..5a7527ef4b534412900f0a415a8e3cbdc883e169 100644 (file)
@@ -354,6 +354,7 @@ class BuildRule:
         self._FamilyList = []
         self._TotalToolChainFamilySet = set()
         self._RuleObjectList = [] # FileBuildRule object list
+        self._FileVersion = ""
 
         self.Parse()
 
@@ -368,7 +369,11 @@ class BuildRule:
             # Clean up the line and replace path separator with native one
             Line = self.RuleContent[Index].strip().replace(self._PATH_SEP, os.path.sep)
             self.RuleContent[Index] = Line
-
+            
+            # find the build_rule_version
+            if Line and Line[0] == "#" and Line.find(TAB_BUILD_RULE_VERSION) <> -1:
+                if Line.find("=") <> -1 and Line.find("=") < (len(Line)-1) and (Line[(Line.find("=") + 1):]).split():
+                    self._FileVersion = (Line[(Line.find("=") + 1):]).split()[0]
             # skip empty or comment line
             if Line == "" or Line[0] == "#":
                 continue
index 63131cee2460ed4dc4be1dab5908f43feb9a9c44..fafcd70b86cb82f94eaa3a9fa7c65375b2fc0162 100644 (file)
@@ -1,7 +1,7 @@
 ## @file
 # Routines for generating AutoGen.h and AutoGen.c
 #
-# Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2012, 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
@@ -103,17 +103,17 @@ typedef struct {
 } SKU_HEAD;
 
 typedef struct {
+  UINT32  StringIndex;        // Offset in String Table in units of UINT32.
+  UINT32  DefaultValueOffset; // Offset of the Default Value
   UINT16  GuidTableIndex;     // Offset in Guid Table in units of GUID.
-  UINT16  StringIndex;        // Offset in String Table in units of UINT16.
   UINT16  Offset;             // Offset in Variable
-  UINT16  DefaultValueOffset; // Offset of the Default Value
 } VARIABLE_HEAD;
 
 typedef  struct {
   UINT32  Offset;
 } VPD_HEAD;
 
-typedef UINT16 STRING_HEAD;
+typedef UINT32 STRING_HEAD;
 
 typedef UINT16 SIZE_INFO;
 
@@ -1346,13 +1346,13 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
                 VariableHeadGuidIndex = GuidList.index(VariableGuid)
 
                 if "PCD_TYPE_STRING" in Pcd.TokenTypeList:
-                    VariableHeadValueList.append('%dU, %dU, %sU, offsetof(%s_PCD_DATABASE, Init.%s_%s)' %
-                                                 (VariableHeadGuidIndex, VariableHeadStringIndex, Sku.VariableOffset,
-                                                  Phase, CName, TokenSpaceGuid))
+                    VariableHeadValueList.append('%dU, offsetof(%s_PCD_DATABASE, Init.%s_%s), %dU, %sU' %
+                                                 (VariableHeadStringIndex, Phase, CName, TokenSpaceGuid, 
+                                                                                                VariableHeadGuidIndex, Sku.VariableOffset))
                 else:
-                    VariableHeadValueList.append('%dU, %dU, %sU, offsetof(%s_PCD_DATABASE, Init.%s_%s_VariableDefault_%s)' %
-                                                 (VariableHeadGuidIndex, VariableHeadStringIndex, Sku.VariableOffset,
-                                                  Phase, CName, TokenSpaceGuid, SkuIdIndex))
+                    VariableHeadValueList.append('%dU, offsetof(%s_PCD_DATABASE, Init.%s_%s_VariableDefault_%s), %dU, %sU' %
+                                                 (VariableHeadStringIndex, Phase, CName, TokenSpaceGuid, SkuIdIndex, 
+                                                                                                VariableHeadGuidIndex, Sku.VariableOffset))
                 Dict['VARDEF_CNAME_'+Pcd.DatumType].append(CName)
                 Dict['VARDEF_GUID_'+Pcd.DatumType].append(TokenSpaceGuid)
                 Dict['VARDEF_SKUID_'+Pcd.DatumType].append(SkuIdIndex)
index b6b02cf8aee08ae7b9febbf7cce198497cc8112f..c5dae6daa460af4a767d79b46f439b57702ee3f4 100644 (file)
@@ -13,4 +13,4 @@
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
-gBUILD_VERSION = "Build 2474"\r
+gBUILD_VERSION = "Build 2518"\r
index fc0a7ad0260aa43520af5e6de55cfcd957dcb5bd..e5e7eaeede4191543ea4b960d1bfe4404fd70c67 100644 (file)
@@ -29,6 +29,7 @@ TAB_OPTION_START = '<'
 TAB_OPTION_END  = '>'\r
 TAB_SLASH = '\\'\r
 TAB_BACK_SLASH = '/'\r
+TAB_LINE_BREAK = '\n'\r
 \r
 TAB_EDK_SOURCE = '$(EDK_SOURCE)'\r
 TAB_EFI_SOURCE = '$(EFI_SOURCE)'\r
@@ -421,3 +422,11 @@ TAB_DEPENDENCY_EXPRESSION_FILE = "DEPENDENCY-EXPRESSION-FILE"
 TAB_UNKNOWN_FILE = "UNKNOWN-TYPE-FILE"\r
 TAB_DEFAULT_BINARY_FILE = "_BINARY_FILE_"\r
 \r
+# used by BRG\r
+TAB_BRG_PCD = 'PCD'\r
+TAB_BRG_LIBRARY = 'Library'\r
+\r
+#\r
+# Build Rule File Version Definition\r
+#\r
+TAB_BUILD_RULE_VERSION = "build_rule_version"\r
index 8b112d50b39b0627b6e09b271902de2c0ed5a007..a4853b78a4f5f62dc3be6863610b5ed575ad9985 100644 (file)
@@ -36,6 +36,7 @@ ERR_STRING_CMP          = 'Unicode string and general string cannot be compared:
 ERR_ARRAY_TOKEN         = 'Bad C array or C format GUID token: [%s].'\r
 ERR_ARRAY_ELE           = 'This must be HEX value for NList or Array: [%s].'\r
 ERR_EMPTY_EXPR          = 'Empty expression is not allowed.'\r
+ERR_IN_OPERAND          = 'Macro after IN operator can only be: $(FAMILY), $(ARCH), $(TOOL_CHAIN_TAG) and $(TARGET).'\r
 \r
 ## SplitString\r
 #  Split string to list according double quote\r
@@ -88,22 +89,29 @@ def ReplaceExprMacro(String, Macros, ExceptionList = None):
                 # If an undefined macro name appears in the constant-expression of\r
                 # !if or !elif, it is replaced by the integer constant 0.\r
                 RetStr += '0'\r
-            elif not InQuote and ExceptionList and Macro in ExceptionList:\r
+            elif not InQuote:\r
+                Tklst = RetStr.split()\r
+                if Tklst and Tklst[-1] in ['IN', 'in'] and ExceptionList and Macro not in ExceptionList:\r
+                    raise BadExpression(ERR_IN_OPERAND)\r
                 # Make sure the macro in exception list is encapsulated by double quote\r
                 # For example: DEFINE ARCH = IA32 X64\r
                 # $(ARCH) is replaced with "IA32 X64"\r
-                RetStr += '"' + Macros[Macro] + '"'\r
-            else:\r
-                if Macros[Macro].strip() != "":\r
+                if ExceptionList and Macro in ExceptionList:\r
+                    RetStr += '"' + Macros[Macro] + '"'\r
+                elif Macros[Macro].strip():\r
                     RetStr += Macros[Macro]\r
                 else:\r
                     RetStr += '""'\r
+            else:\r
+                RetStr += Macros[Macro]\r
             RetStr += String[MacroEndPos+1:]\r
             String = RetStr\r
             MacroStartPos = String.find('$(')\r
         StrList[i] = RetStr\r
     return ''.join(StrList)\r
 \r
+SupportedInMacroList = ['TARGET', 'TOOL_CHAIN_TAG', 'ARCH', 'FAMILY']\r
+\r
 class ValueExpression(object):\r
     # Logical operator mapping\r
     LogicalOperators = {\r
@@ -213,7 +221,7 @@ class ValueExpression(object):
 \r
         self._Expr = ReplaceExprMacro(Expression.strip(),\r
                                   SymbolTable,\r
-                                  ['TARGET', 'TOOL_CHAIN_TAG', 'ARCH'])\r
+                                  SupportedInMacroList)\r
 \r
         if not self._Expr.strip():\r
             raise BadExpression(ERR_EMPTY_EXPR)\r
@@ -457,7 +465,9 @@ class ValueExpression(object):
         # PCD token\r
         if self.PcdPattern.match(self._Token):\r
             if self._Token not in self._Symb:\r
-                raise BadExpression(ERR_PCD_RESOLVE % self._Token)\r
+                Ex = BadExpression(ERR_PCD_RESOLVE % self._Token)\r
+                Ex.Pcd = self._Token\r
+                raise Ex\r
             self._Token = ValueExpression(self._Symb[self._Token], self._Symb)(True)\r
             if type(self._Token) != type(''):\r
                 self._LiteralToken = hex(self._Token)\r
index 492aa3996282bcadf17f8b173b9c0fd97086507a..d566a5784412f0bdfd77a99992a298f23b8b5000 100644 (file)
@@ -26,6 +26,10 @@ gAllFiles = None
 
 gGlobalDefines = {}
 gPlatformDefines = {}
+# PCD name and value pair for fixed at build and feature flag
+gPlatformPcds = {}
+# PCDs with type that are not fixed at build and feature flag
+gPlatformOtherPcds = {}
 gActivePlatform = None
 gCommandLineDefines = {}
 gEdkGlobal = {}
index 0f2a61b1b9793802e1679c2d2c6ab808eeed2810..068a63d1c124cda1e67dbc8270244c3b0cb60bac 100644 (file)
@@ -319,7 +319,7 @@ def NormPath(Path, Defines={}):
 #\r
 # @retval Path Formatted path\r
 #\r
-def CleanString(Line, CommentCharacter=DataType.TAB_COMMENT_SPLIT, AllowCppStyleComment=False):\r
+def CleanString(Line, CommentCharacter=DataType.TAB_COMMENT_SPLIT, AllowCppStyleComment=False, BuildOption=False):\r
     #\r
     # remove whitespace\r
     #\r
@@ -343,7 +343,7 @@ def CleanString(Line, CommentCharacter=DataType.TAB_COMMENT_SPLIT, AllowCppStyle
             Line = Line[0: Index]\r
             break\r
 \r
-    if CommentInString:\r
+    if CommentInString and BuildOption:\r
         Line = Line.replace('"', '')\r
         ChIndex = Line.find('#')\r
         while ChIndex >= 0:\r
index e2e92ef6723ceeb3f2fe680c40da98dbfcf0a811..b1a0ab82723bfa945f4d45c7e10326db45fa44b4 100644 (file)
@@ -28,6 +28,7 @@ from Common.String import NormPath
 from Common.BuildVersion import gBUILD_VERSION\r
 from Common import BuildToolError\r
 from Common.Misc import PathClass\r
+from Common.Misc import DirCache\r
 from MetaFileWorkspace.MetaFileParser import DscParser\r
 from MetaFileWorkspace.MetaFileParser import DecParser\r
 from MetaFileWorkspace.MetaFileParser import InfParser\r
@@ -106,6 +107,11 @@ class Ecc(object):
         EccGlobalData.gDb = Database.Database(Database.DATABASE_PATH)\r
         EccGlobalData.gDb.InitDatabase(self.IsInit)\r
 \r
+        #\r
+        # Get files real name in workspace dir\r
+        #\r
+        GlobalData.gAllFiles = DirCache(GlobalData.gWorkspace)\r
+         \r
         # Build ECC database\r
         self.BuildDatabase()\r
 \r
@@ -137,13 +143,13 @@ class Ecc(object):
         EccGlobalData.gDb.TblReport.Create()\r
 \r
         # Build database\r
-        if self.IsInit:\r
-            if self.ScanSourceCode:\r
-                EdkLogger.quiet("Building database for source code ...")\r
-                c.CollectSourceCodeDataIntoDB(EccGlobalData.gTarget)\r
+        if self.IsInit:            \r
             if self.ScanMetaData:\r
-                EdkLogger.quiet("Building database for source code done!")\r
+                EdkLogger.quiet("Building database for Meta Data File ...")\r
                 self.BuildMetaDataFileDatabase()\r
+            if self.ScanSourceCode:\r
+                EdkLogger.quiet("Building database for Meta Data File Done!")\r
+                c.CollectSourceCodeDataIntoDB(EccGlobalData.gTarget)\r
 \r
         EccGlobalData.gIdentifierTableList = GetTableList((MODEL_FILE_C, MODEL_FILE_H), 'Identifier', EccGlobalData.gDb)\r
         EccGlobalData.gCFileList = GetFileList(MODEL_FILE_C, EccGlobalData.gDb)\r
index 30606982881f728209f8d5046b21ef2f1467ee58..643c228665e6a62d834b8e271086311cf595422a 100644 (file)
@@ -96,7 +96,10 @@ class Table(object):
     #\r
     def Drop(self):\r
         SqlCommand = """drop table IF EXISTS %s""" % self.Table\r
-        self.Cur.execute(SqlCommand)\r
+        try:\r
+            self.Cur.execute(SqlCommand)\r
+        except sqlite3.Error, e:\r
+            print "An error occurred when Drop a table:", e.args[0]\r
 \r
     ## Get count\r
     #\r
index 9ca00f043bc9199b6f923a6393bc2c1af0d5ceeb..d10265e973c4f2f35f34206ef3e78c31138e6762 100644 (file)
@@ -1162,8 +1162,9 @@ class DscParser(MetaFileParser):
             self._IdMapping[Id] = self._LastItem
 
         RecordList = self._Table.GetAll()
-        self._Table.Drop()
+        
         self._RawTable.Drop()
+        self._Table.Drop()
         for Record in RecordList:
             EccGlobalData.gDb.TblDsc.Insert(Record[1],Record[2],Record[3],Record[4],Record[5],Record[6],Record[7],Record[8],Record[9],Record[10],Record[11],Record[12],Record[13],Record[14])
         GlobalData.gPlatformDefines.update(self._FileLocalMacros)
diff --git a/BaseTools/Source/Python/Fdb/__init__.py b/BaseTools/Source/Python/Fdb/__init__.py
deleted file mode 100644 (file)
index c9dbe8e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-## @file\r
-# Python 'Fdb' package initialization file.\r
-#\r
-# This file is required to make Python interpreter treat the directory\r
-# as containing package.\r
-#\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution.  The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
diff --git a/BaseTools/Source/Python/FixFlash/__init__.py b/BaseTools/Source/Python/FixFlash/__init__.py
deleted file mode 100644 (file)
index b648fca..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-## @file\r
-# Python 'FixFlash' package initialization file.\r
-#\r
-# This file is required to make Python interpreter treat the directory\r
-# as containing package.\r
-#\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution.  The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
index 7a569e88dd79803b5fd49c358d36fd97f56a91ab..dc5c4fa034c5d95bdcb6fa1ea838a7e47014f10c 100644 (file)
@@ -77,6 +77,7 @@ SEPERATOR_TUPLE = ('=', '|', ',', '{', '}')
 \r
 RegionSizePattern = re.compile("\s*(?P<base>(?:0x|0X)?[a-fA-F0-9]+)\s*\|\s*(?P<size>(?:0x|0X)?[a-fA-F0-9]+)\s*")\r
 RegionSizeGuidPattern = re.compile("\s*(?P<base>\w+\.\w+)\s*\|\s*(?P<size>\w+\.\w+)\s*")\r
+ShortcutPcdPattern = re.compile("\s*\w+\s*=\s*(?P<value>(?:0x|0X)?[a-fA-F0-9]+)\s*\|\s*(?P<name>\w+\.\w+)\s*")\r
 \r
 IncludeFileList = []\r
 \r
@@ -679,7 +680,7 @@ class FdfParser:
                     PreIndex = 0\r
                     StartPos = CurLine.find('$(', PreIndex)\r
                     EndPos = CurLine.find(')', StartPos+2)\r
-                    while StartPos != -1 and EndPos != -1 and not (self.__Token == '!ifdef' or self.__Token == '!ifndef'):\r
+                    while StartPos != -1 and EndPos != -1 and self.__Token not in ['!ifdef', '!ifndef', '!if', '!elseif']:\r
                         MacroName = CurLine[StartPos+2 : EndPos]\r
                         MacorValue = self.__GetMacroValue(MacroName)\r
                         if MacorValue != None:\r
@@ -711,6 +712,8 @@ class FdfParser:
                     self.__SetMacroValue(Macro, Value)\r
                     self.__WipeOffArea.append(((DefineLine, DefineOffset), (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - 1)))\r
             elif self.__Token == 'SET':\r
+                SetLine = self.CurrentLineNumber - 1\r
+                SetOffset = self.CurrentOffsetWithinLine - len('SET')\r
                 PcdPair = self.__GetNextPcdName()\r
                 PcdName = "%s.%s" % (PcdPair[1], PcdPair[0])\r
                 if not self.__IsToken( "="):\r
@@ -720,6 +723,12 @@ class FdfParser:
                 Value = self.__EvaluateConditional(Value, self.CurrentLineNumber, 'eval', True)\r
 \r
                 self.__PcdDict[PcdName] = Value\r
+\r
+                self.Profile.PcdDict[PcdPair] = Value\r
+                FileLineTuple = GetRealFileLine(self.FileName, self.CurrentLineNumber)\r
+                self.Profile.PcdFileLineDict[PcdPair] = FileLineTuple\r
+\r
+                self.__WipeOffArea.append(((SetLine, SetOffset), (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - 1)))\r
             elif self.__Token in ('!ifdef', '!ifndef', '!if'):\r
                 IfStartPos = (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - len(self.__Token))\r
                 IfList.append([IfStartPos, None, None])\r
@@ -773,6 +782,11 @@ class FdfParser:
                 if self.CurrentLineNumber <= RegionLayoutLine:\r
                     # Don't try the same line twice\r
                     continue\r
+                SetPcd = ShortcutPcdPattern.match(self.Profile.FileLinesList[self.CurrentLineNumber - 1])\r
+                if SetPcd:\r
+                    self.__PcdDict[SetPcd.group('name')] = SetPcd.group('value')\r
+                    RegionLayoutLine = self.CurrentLineNumber\r
+                    continue\r
                 RegionSize = RegionSizePattern.match(self.Profile.FileLinesList[self.CurrentLineNumber - 1])\r
                 if not RegionSize:\r
                     RegionLayoutLine = self.CurrentLineNumber\r
@@ -793,6 +807,7 @@ class FdfParser:
         MacroDict = {}\r
 \r
         # PCD macro\r
+        MacroDict.update(GlobalData.gPlatformPcds)\r
         MacroDict.update(self.__PcdDict)\r
 \r
         # Lowest priority\r
@@ -838,7 +853,19 @@ class FdfParser:
                                 Line=Line)\r
                 return Excpt.result\r
             except Exception, Excpt:\r
-                raise Warning("Invalid expression", *FileLineTuple)\r
+                if hasattr(Excpt, 'Pcd'):\r
+                    if Excpt.Pcd in GlobalData.gPlatformOtherPcds:\r
+                        Info = GlobalData.gPlatformOtherPcds[Excpt.Pcd]\r
+                        raise Warning("Cannot use this PCD (%s) in an expression as"\r
+                                      " it must be defined in a [PcdsFixedAtBuild] or [PcdsFeatureFlag] section"\r
+                                      " of the DSC file (%s), and it is currently defined in this section:"\r
+                                      " %s, line #: %d." % (Excpt.Pcd, GlobalData.gPlatformOtherPcds['DSCFILE'], Info[0], Info[1]),\r
+                                      *FileLineTuple)\r
+                    else:\r
+                        raise Warning("PCD (%s) is not defined in DSC file (%s)" % (Excpt.Pcd, GlobalData.gPlatformOtherPcds['DSCFILE']),\r
+                                      *FileLineTuple)\r
+                else:\r
+                    raise Warning(str(Excpt), *FileLineTuple)\r
         else:\r
             if Expression.startswith('$(') and Expression[-1] == ')':\r
                 Expression = Expression[2:-1]            \r
@@ -2287,6 +2314,10 @@ class FdfParser:
         if not self.__GetNextToken():\r
             raise Warning("expected INF file path", self.FileName, self.CurrentLineNumber)\r
         ffsInf.InfFileName = self.__Token\r
+\r
+        ffsInf.CurrentLineNum = self.CurrentLineNumber\r
+        ffsInf.CurrentLineContent = self.__CurrentLine()\r
+\r
         if ffsInf.InfFileName.replace('$(WORKSPACE)', '').find('$') == -1:\r
             #do case sensitive check for file path\r
             ErrorCode, ErrorInfo = PathClass(NormPath(ffsInf.InfFileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()\r
@@ -2306,9 +2337,6 @@ class FdfParser:
             else:\r
                 raise Warning("Unknown reloc strip flag '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
         \r
-        ffsInf.CurrentLineNum = self.CurrentLineNumber\r
-        ffsInf.CurrentLineContent = self.__CurrentLine()\r
-        \r
         if ForCapsule:\r
             capsuleFfs = CapsuleData.CapsuleFfs()\r
             capsuleFfs.Ffs = ffsInf\r
@@ -2419,9 +2447,6 @@ class FdfParser:
                 \r
         FfsFileObj.NameGuid = self.__Token\r
         \r
-        FfsFileObj.CurrentLineNum = self.CurrentLineNumber\r
-        FfsFileObj.CurrentLineContent = self.__CurrentLine()\r
-        \r
         self.__GetFilePart( FfsFileObj, MacroDict.copy())\r
 \r
         if ForCapsule:\r
@@ -2511,6 +2536,8 @@ class FdfParser:
             self.__UndoToken()\r
             self.__GetSectionData( FfsFileObj, MacroDict)\r
         else:\r
+            FfsFileObj.CurrentLineNum = self.CurrentLineNumber\r
+            FfsFileObj.CurrentLineContent = self.__CurrentLine()\r
             FfsFileObj.FileName = self.__Token\r
             if FfsFileObj.FileName.replace('$(WORKSPACE)', '').find('$') == -1:\r
                 #\r
index d9f1cdaff0e42d32d294847f72d7d3078ba6280f..c8c5a6e8611f6da1bb2714306c2a9a55e48bb3b1 100644 (file)
@@ -64,6 +64,7 @@ class Ffs(FDClassObject):
         'COMPAT16'             : '.com16',\r
         'RAW'                  : '.raw',\r
         'FREEFORM_SUBTYPE_GUID': '.guid',\r
+        'SUBTYPE_GUID'         : '.guid',        \r
         'FV_IMAGE'             : 'fv.sec',\r
         'COMPRESS'             : '.com',\r
         'GUIDED'               : '.guided',\r
index 8a742d95bef327697eaa4f4dddb200df035dac7a..fb86a152b6118c8488fe9a73d030c91fa3a93457 100644 (file)
@@ -314,7 +314,7 @@ def myOptionParser():
     Parser.add_option("-r", "--rom_image", dest="uiFdName", help="Build the image using the [FD] section named by FdUiName.")
     Parser.add_option("-i", "--FvImage", dest="uiFvName", help="Build the FV image using the [FV] section named by UiFvName")
     Parser.add_option("-C", "--CapsuleImage", dest="uiCapName", help="Build the Capsule image using the [Capsule] section named by UiCapName")
-    Parser.add_option("-b", "--buildtarget", type="choice", choices=['DEBUG','RELEASE', 'NOOPT'], dest="BuildTarget", help="Build TARGET is one of list: DEBUG, RELEASE, NOOPT.",
+    Parser.add_option("-b", "--buildtarget", type="string", dest="BuildTarget", help="Set the build TARGET, overrides target.txt TARGET setting.",
                       action="callback", callback=SingleCheckCallback)
     Parser.add_option("-t", "--tagname", type="string", dest="ToolChain", help="Using the tools: TOOL_CHAIN_TAG name to build the platform.",
                       action="callback", callback=SingleCheckCallback)
@@ -516,10 +516,13 @@ class GenFds :
             for ModuleFile in PlatformDataBase.Modules:
                 Module = BuildDb.BuildObject[ModuleFile, Arch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag]
                 GuidXRefFile.write("%s %s\n" % (Module.Guid, Module.BaseName))
-        SaveFileOnChange(GuidXRefFileName, GuidXRefFile.getvalue(), False)
+        if GuidXRefFile.getvalue():
+            SaveFileOnChange(GuidXRefFileName, GuidXRefFile.getvalue(), False)
+            GenFdsGlobalVariable.InfLogger("\nGUID cross reference file can be found at %s" % GuidXRefFileName)
+        elif os.path.exists(GuidXRefFileName):
+            os.remove(GuidXRefFileName)
         GuidXRefFile.close()
-        GenFdsGlobalVariable.InfLogger("\nGUID cross reference file can be found at %s" % GuidXRefFileName)
-        
+
     ##Define GenFd as static function
     GenFd = staticmethod(GenFd)
     GetFvBlockSize = staticmethod(GetFvBlockSize)
index ea6b191bc1254178afe92cd048b7aa25f87dff82..b457937628f2e3fa3d66f4e389b443dff1092c04 100644 (file)
@@ -1,7 +1,7 @@
 ## @file
 # Global variables for GenFds
 #
-#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2007 - 2012, 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
@@ -581,7 +581,7 @@ class GenFdsGlobalVariable:
                 sys.stdout.write('\n')
 
         try:
-            PopenObject = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr= subprocess.PIPE)
+            PopenObject = subprocess.Popen(' '.join(cmd), stdout=subprocess.PIPE, stderr= subprocess.PIPE, shell=True)
         except Exception, X:
             EdkLogger.error("GenFds", COMMAND_FAILURE, ExtraData="%s: %s" % (str(X), cmd[0]))
         (out, error) = PopenObject.communicate()
index a1a0a5e6391b1d1439ade80a7f0c0c028986c544..fec8b43646dfe9dab35fda22cd11724698449c3c 100644 (file)
@@ -21,7 +21,7 @@ MODULES=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8,encodings
 \r
 BIN_DIR=$(EDK_TOOLS_PATH)\Bin\Win32\r
 \r
-APPLICATIONS=$(BIN_DIR)\build.exe $(BIN_DIR)\GenFds.exe $(BIN_DIR)\Trim.exe $(BIN_DIR)\MigrationMsa2Inf.exe $(BIN_DIR)\Fpd2Dsc.exe $(BIN_DIR)\TargetTool.exe $(BIN_DIR)\spd2dec.exe $(BIN_DIR)\GenDepex.exe $(BIN_DIR)\GenPatchPcdTable.exe $(BIN_DIR)\PatchPcdValue.exe $(BIN_DIR)\BPDG.exe $(BIN_DIR)\UPT.exe\r
+APPLICATIONS=$(BIN_DIR)\build.exe $(BIN_DIR)\GenFds.exe $(BIN_DIR)\Trim.exe $(BIN_DIR)\TargetTool.exe $(BIN_DIR)\GenDepex.exe $(BIN_DIR)\GenPatchPcdTable.exe $(BIN_DIR)\PatchPcdValue.exe $(BIN_DIR)\BPDG.exe $(BIN_DIR)\UPT.exe\r
 \r
 COMMON_PYTHON=$(BASE_TOOLS_PATH)\Source\Python\Common\BuildToolError.py \\r
               $(BASE_TOOLS_PATH)\Source\Python\Common\Database.py \\r
@@ -77,15 +77,6 @@ $(BIN_DIR)\GenFds.exe: $(BASE_TOOLS_PATH)\Source\Python\GenFds\GenFds.py $(COMMO
 $(BIN_DIR)\Trim.exe: $(BASE_TOOLS_PATH)\Source\Python\Trim\Trim.py $(COMMON_PYTHON)\r
   @pushd . & @cd Trim & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Trim.py & @popd\r
 \r
-$(BIN_DIR)\MigrationMsa2Inf.exe: $(BASE_TOOLS_PATH)\Source\Python\MigrationMsa2Inf\MigrationMsa2Inf.py $(COMMON_PYTHON)\r
-  @pushd . & @cd MigrationMsa2Inf & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) MigrationMsa2Inf.py & @popd \r
-\r
-$(BIN_DIR)\Fpd2Dsc.exe: $(BASE_TOOLS_PATH)\Source\Python\Fpd2Dsc\Fpd2Dsc.py $(COMMON_PYTHON)\r
-  @pushd . & @cd Fpd2Dsc & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Fpd2Dsc.py & @popd\r
-\r
-$(BIN_DIR)\spd2dec.exe: $(BASE_TOOLS_PATH)\Source\Python\spd2dec\Spd2Dec.py $(COMMON_PYTHON)\r
-  @pushd . & @cd Spd2Dec & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) Spd2Dec.py & @popd\r
-\r
 $(BIN_DIR)\GenDepex.exe: $(BASE_TOOLS_PATH)\Source\Python\AutoGen\GenDepex.py $(COMMON_PYTHON)\r
   @pushd . & @cd AutoGen & @$(FREEZE) --include-modules=$(MODULES) --install-dir=$(BIN_DIR) GenDepex.py & @popd\r
 \r
diff --git a/BaseTools/Source/Python/MigrationMsa2Inf/AutoGenExterns.py b/BaseTools/Source/Python/MigrationMsa2Inf/AutoGenExterns.py
deleted file mode 100644 (file)
index 37fff88..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-#!/usr/bin/env python\r
-#\r
-#\r
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution.  The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-# \r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-\r
-#\r
-# Import Modules\r
-#\r
-import re, os, glob\r
-from Common.XmlRoutines import  *\r
-\r
-#"ModuleType"=>(PackageGuid, headerFileName) List\r
-HeaderFiles = {}\r
-GuidList = []\r
-GuidMap = {}\r
-HeaderFileContents = {}\r
-gTest = {}\r
-GuidMacro2CName = {}\r
-GuidAliasList = []\r
-\r
-def collectIncludeFolder(pkgDirName, guidType, pkgName):\r
-    includeFolder = os.path.join(pkgDirName, "Include", guidType)\r
-    if os.path.exists(includeFolder) and os.path.isdir(includeFolder):\r
-        for headerFileName in os.listdir(includeFolder):\r
-            if headerFileName[-2:] == ".h":\r
-                headerFile = open(os.path.join(includeFolder, headerFileName))\r
-                HeaderFileContents[(guidType, headerFileName, pkgName)] = headerFile.read()\r
-                headerFile.close()\r
-\r
-GuidMacroReg = re.compile(r"\b(?!EFI_GUID\b)[A-Z0-9_]+_GUID\b")\r
-GuidCNameReg = re.compile(r"\bg\w+Guid\b")\r
-GuidAliasReg = re.compile(r"#define\s+([A-Z0-9_]+_GUID)\s+([A-Z0-9_]+_GUID)\b")\r
-\r
-def collectPackageInfo(spdFileName):\r
-    pkgDirName = os.path.dirname(spdFileName)\r
-\r
-    spd = XmlParseFile(spdFileName)\r
-\r
-    pkgName = XmlElement(spd, "/PackageSurfaceArea/SpdHeader/PackageName")\r
-    pkgGuid = XmlElement(spd, "/PackageSurfaceArea/SpdHeader/GuidValue")\r
-\r
-    \r
-    for IncludePkgHeader in XmlList(spd, "/PackageSurfaceArea/PackageHeaders/IncludePkgHeader"):\r
-        moduleType = XmlAttribute(IncludePkgHeader, "ModuleType")\r
-        headerFilePath = XmlElementData(IncludePkgHeader)\r
-        headerFilePath = re.sub("Include/", "", headerFilePath, 1)\r
-\r
-        headerTuple = HeaderFiles.get(moduleType, [])\r
-        headerTuple.append((pkgGuid, headerFilePath))\r
-        HeaderFiles[moduleType] = headerTuple\r
-        \r
-    guidTypes = ["Guid", "Protocol", "Ppi"]\r
-\r
-    for guidType in guidTypes:\r
-        for guidEntry in XmlList(spd, "/PackageSurfaceArea/" + guidType + "Declarations/Entry"):\r
-            guidCName = XmlElement(guidEntry, "Entry/C_Name")\r
-            GuidList.append(guidCName)\r
-                      \r
-        collectIncludeFolder(pkgDirName, guidType, pkgName)   \r
-\r
-    for DecFile in glob.glob(os.path.join(pkgDirName, "*.dec")):\r
-        fileContents = open(DecFile).read()\r
-        for GuidCNameMatch in GuidCNameReg.finditer(fileContents):\r
-            GuidCName = GuidCNameMatch.group(0)\r
-            if GuidCName not in GuidList:\r
-                GuidList.append(GuidCName)\r
-\r
-def AddGuidMacro2GuidCName(GuidMacros, GuidCNames):\r
-   for GuidMacro in GuidMacros:\r
-       GuessGuidCName = "g" + GuidMacro.lower().title().replace("_", "")\r
-       if GuessGuidCName in GuidCNames:\r
-           GuidMacro2CName[GuidMacro] = GuessGuidCName\r
-       elif len(GuidCNames) == 1:\r
-           GuidMacro2CName[GuidMacro] = GuidCNames[0]\r
-       else:\r
-           for GuidCName in GuidCNames:\r
-               if GuidCName.lower() == GuessGuidCName.lower():\r
-                   GuidMacro2CName[GuidMacro] = GuidCName\r
-                   break\r
-           else:\r
-               pass\r
-               #print "No matching GuidMacro %s" % GuidMacro\r
-               \r
-\r
-def TranslateGuid(GuidMacroMatch):\r
-    GuidMacro = GuidMacroMatch.group(0)\r
-    return GuidMacro2CName.get(GuidMacro, GuidMacro)\r
-\r
-DepexReg = re.compile(r"DEPENDENCY_START(.*?)DEPENDENCY_END", re.DOTALL)\r
-\r
-def TranslateDpxSection(fileContents):\r
-    DepexMatch = DepexReg.search(fileContents)\r
-    if not DepexMatch:\r
-        return "", []\r
-    \r
-    fileContents = DepexMatch.group(1)\r
-    fileContents = re.sub(r"\s+", " ", fileContents).strip()\r
-    fileContents = GuidMacroReg.sub(TranslateGuid, fileContents)\r
-    return fileContents, GuidMacroReg.findall(fileContents)\r
-\r
-def InitializeAutoGen(workspace, db):\r
-    \r
-    \r
-    for spdFile in XmlList(db, "/FrameworkDatabase/PackageList/Filename"):\r
-        spdFileName = XmlElementData(spdFile)\r
-        collectPackageInfo(os.path.join(workspace, spdFileName))\r
-\r
-\r
-    BlockCommentReg = re.compile(r"/\*.*?\*/", re.DOTALL)\r
-    LineCommentReg = re.compile(r"//.*")\r
-    GuidReg = re.compile(r"\b(" + '|'.join(GuidList) + r")\b")\r
-\r
-    for headerFile in HeaderFileContents:\r
-        Contents = HeaderFileContents[headerFile]\r
-        Contents = BlockCommentReg.sub("", Contents)\r
-        Contents = LineCommentReg.sub("", Contents)\r
-        \r
-        FoundGuids = GuidReg.findall(Contents)\r
-        for FoundGuid in FoundGuids:\r
-            GuidMap[FoundGuid] = "%s/%s" % (headerFile[0], headerFile[1])\r
-            #print "%-40s %s/%s" % (FoundGuid, headerFile[0], headerFile[1])\r
-\r
-        GuidMacros = GuidMacroReg.findall(Contents)\r
-        GuidCNames = GuidCNameReg.findall(Contents)\r
-        \r
-        for GuidAliasMatch in  GuidAliasReg.finditer(Contents):\r
-            Name1, Name2 = GuidAliasMatch.group(1), GuidAliasMatch.group(2)\r
-            GuidAliasList.append((Name1, Name2))\r
-\r
-        AddGuidMacro2GuidCName(GuidMacros, GuidCNames)\r
-\r
-def AddSystemIncludeStatement(moduleType, PackageList):\r
-    IncludeStatement = "\n"\r
-