]> git.proxmox.com Git - mirror_edk2.git/commitdiff
License header updated to match correct format.
authorYingke Liu <yingke.d.liu@intel.com>
Thu, 28 Aug 2014 13:53:34 +0000 (13:53 +0000)
committeryingke <yingke@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 28 Aug 2014 13:53:34 +0000 (13:53 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15971 6f19259b-4bc3-4df7-8a09-765794883524

135 files changed:
BaseTools/BuildEnv
BaseTools/Conf/build_rule.template
BaseTools/Source/C/Common/BinderFuncs.c
BaseTools/Source/C/Common/BinderFuncs.h
BaseTools/Source/C/Common/CommonLib.c
BaseTools/Source/C/Common/CommonLib.h
BaseTools/Source/C/Common/Compress.h
BaseTools/Source/C/Common/Crc32.c
BaseTools/Source/C/Common/Crc32.h
BaseTools/Source/C/Common/Decompress.c
BaseTools/Source/C/Common/Decompress.h
BaseTools/Source/C/Common/EfiCompress.c
BaseTools/Source/C/Common/EfiUtilityMsgs.c
BaseTools/Source/C/Common/EfiUtilityMsgs.h
BaseTools/Source/C/Common/FirmwareVolumeBuffer.c
BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h
BaseTools/Source/C/Common/FvLib.c
BaseTools/Source/C/Common/FvLib.h
BaseTools/Source/C/Common/MemoryFile.c
BaseTools/Source/C/Common/MemoryFile.h
BaseTools/Source/C/Common/MyAlloc.c
BaseTools/Source/C/Common/MyAlloc.h
BaseTools/Source/C/Common/OsPath.c
BaseTools/Source/C/Common/OsPath.h
BaseTools/Source/C/Common/ParseGuidedSectionTools.c
BaseTools/Source/C/Common/ParseGuidedSectionTools.h
BaseTools/Source/C/Common/ParseInf.c
BaseTools/Source/C/Common/ParseInf.h
BaseTools/Source/C/Common/PeCoffLib.h
BaseTools/Source/C/Common/PeCoffLoaderEx.c
BaseTools/Source/C/Common/SimpleFileParsing.c
BaseTools/Source/C/Common/SimpleFileParsing.h
BaseTools/Source/C/Common/StringFuncs.c
BaseTools/Source/C/Common/StringFuncs.h
BaseTools/Source/C/Common/TianoCompress.c
BaseTools/Source/C/Common/WinNtInclude.h
BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c
BaseTools/Source/C/EfiRom/EfiRom.c
BaseTools/Source/C/EfiRom/EfiRom.h
BaseTools/Source/C/GenBootSector/GenBootSector.c
BaseTools/Source/C/GenCrc32/GenCrc32.c
BaseTools/Source/C/GenFfs/GenFfs.c
BaseTools/Source/C/GenFv/GenFv.c
BaseTools/Source/C/GenFv/GenFvInternalLib.c
BaseTools/Source/C/GenFv/GenFvInternalLib.h
BaseTools/Source/C/GenFw/Elf32Convert.c
BaseTools/Source/C/GenFw/Elf32Convert.h
BaseTools/Source/C/GenFw/Elf64Convert.c
BaseTools/Source/C/GenFw/Elf64Convert.h
BaseTools/Source/C/GenFw/ElfConvert.c
BaseTools/Source/C/GenFw/ElfConvert.h
BaseTools/Source/C/GenFw/GenFw.c
BaseTools/Source/C/GenFw/GenFw.h
BaseTools/Source/C/GenPage/GenPage.c
BaseTools/Source/C/GenPage/VirtualMemory.h
BaseTools/Source/C/GenSec/GenSec.c
BaseTools/Source/C/GenVtf/GenVtf.c
BaseTools/Source/C/GenVtf/GenVtf.h
BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
BaseTools/Source/C/Include/Common/BaseTypes.h
BaseTools/Source/C/Include/Common/BuildVersion.h
BaseTools/Source/C/Include/Common/MdeModuleHii.h
BaseTools/Source/C/Include/Common/PiFirmwareFile.h
BaseTools/Source/C/Include/Common/PiFirmwareVolume.h
BaseTools/Source/C/Include/Common/UefiBaseTypes.h
BaseTools/Source/C/Include/Common/UefiCapsule.h
BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h
BaseTools/Source/C/Include/Common/UefiMultiPhase.h
BaseTools/Source/C/Include/Common/VariableFormat.h
BaseTools/Source/C/Include/Common/WorkingBlockHeader.h
BaseTools/Source/C/Include/Guid/PcAnsi.h
BaseTools/Source/C/Include/Guid/PiFirmwareFileSystem.h
BaseTools/Source/C/Include/Ia32/ProcessorBind.h
BaseTools/Source/C/Include/IndustryStandard/Acpi.h
BaseTools/Source/C/Include/IndustryStandard/Acpi1_0.h
BaseTools/Source/C/Include/IndustryStandard/Acpi2_0.h
BaseTools/Source/C/Include/IndustryStandard/Acpi3_0.h
BaseTools/Source/C/Include/IndustryStandard/EfiPci.h
BaseTools/Source/C/Include/IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h
BaseTools/Source/C/Include/IndustryStandard/PeImage.h
BaseTools/Source/C/Include/IndustryStandard/pci22.h
BaseTools/Source/C/Include/IndustryStandard/pci23.h
BaseTools/Source/C/Include/IndustryStandard/pci30.h
BaseTools/Source/C/Include/Protocol/GraphicsOutput.h
BaseTools/Source/C/Include/Protocol/GuidedSectionExtraction.h
BaseTools/Source/C/Include/Protocol/HiiFramework.h
BaseTools/Source/C/Include/Protocol/UgaDraw.h
BaseTools/Source/C/Include/X64/ProcessorBind.h
BaseTools/Source/C/LzmaCompress/LzmaF86Compress.bat
BaseTools/Source/C/Makefiles/NmakeSubdirs.bat
BaseTools/Source/C/Makefiles/app.makefile
BaseTools/Source/C/Makefiles/footer.makefile
BaseTools/Source/C/Makefiles/lib.makefile
BaseTools/Source/C/Makefiles/ms.app
BaseTools/Source/C/Makefiles/ms.common
BaseTools/Source/C/Makefiles/ms.rule
BaseTools/Source/C/PyEfiCompressor/EfiCompressor.c
BaseTools/Source/C/PyEfiCompressor/Makefile
BaseTools/Source/C/PyUtility/Makefile
BaseTools/Source/C/PyUtility/PyUtility.c
BaseTools/Source/C/TianoCompress/TianoCompress.c
BaseTools/Source/C/TianoCompress/TianoCompress.h
BaseTools/Source/C/VfrCompile/EfiVfr.h
BaseTools/Source/C/VfrCompile/VfrSyntax.g
BaseTools/Source/C/VolInfo/VolInfo.c
BaseTools/Source/C/VolInfo/VolInfo.h
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/AutoGen/GenMake.py
BaseTools/Source/Python/AutoGen/InfSectionParser.py [new file with mode: 0644]
BaseTools/Source/Python/AutoGen/StrGather.py
BaseTools/Source/Python/AutoGen/UniClassObject.py
BaseTools/Source/Python/Common/DataType.py
BaseTools/Source/Python/Common/GlobalData.py
BaseTools/Source/Python/Common/Misc.py
BaseTools/Source/Python/Common/TargetTxtClassObject.py
BaseTools/Source/Python/Common/ToolDefClassObject.py
BaseTools/Source/Python/CommonDataClass/DataClass.py
BaseTools/Source/Python/GenFds/CompressSection.py
BaseTools/Source/Python/GenFds/DepexSection.py
BaseTools/Source/Python/GenFds/EfiSection.py
BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools/Source/Python/GenFds/FfsFileStatement.py
BaseTools/Source/Python/GenFds/FfsInfStatement.py
BaseTools/Source/Python/GenFds/GenFds.py
BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
BaseTools/Source/Python/GenFds/GuidSection.py
BaseTools/Source/Python/GenFds/Section.py
BaseTools/Source/Python/TargetTool/TargetTool.py
BaseTools/Source/Python/Trim/Trim.py
BaseTools/Source/Python/UPT/Logger/StringTable.py
BaseTools/Source/Python/Workspace/MetaFileCommentParser.py
BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
BaseTools/Source/Python/build/build.py
BaseTools/Source/Python/sitecustomize.py

index 8ab5089bbee6d17703a630d994c663fe8736e6f6..6a1281b96b2a519c1dc989a45381ee881a8e93ac 100755 (executable)
@@ -1,5 +1,8 @@
+## @file
+# Setup the environment for unix-like systems running a bash-like shell.
+# This file must be "sourced" not merely executed. For example: ". edksetup.sh"
 #
-# Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2014, 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
@@ -7,10 +10,6 @@
 # 
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-#
-# Setup the environment for unix-like systems running a bash-like shell.
-# This file must be "sourced" not merely executed. For example: ". edksetup.sh"
 #
 
 SetWorkspace() {
index 55f56c2a74006986192ec9d4a89b06849f58b108..8c06a45c475026bb1849d28432133351ba85fd6c 100644 (file)
         $(CP) ${dst} $(OUTPUT_DIR)\r
         $(CP) ${dst} $(BIN_DIR)\r
         -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)\r
-\r
+        -$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR) \r
     <Command.GCC>\r
         $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug\r
         $(OBJCOPY) --strip-unneeded -R .eh_frame ${src}\r
index 5ee55480bdcd6386a7d5dfb5d04c25c42685ea2c..40f0e6acf8b4895e8111ee8a5ba044871a63b90d 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Binder function implementations for ANSI C libraries.\r
 \r
-Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 1999 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  BinderFuncs.c\r
-\r
-Abstract:\r
-\r
-  Binder function implementations for ANSI C libraries.\r
-\r
 **/\r
 \r
 #include "BinderFuncs.h"\r
index 48dc82eb70c66d8005e890d18749b9ab1b9ee28b..310d76a0d147ee588961d6c53208488f03e9f047 100644 (file)
@@ -1,6 +1,9 @@
 /** @file\r
-\r
-Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Prototypes for binder functions that allow common code to be written which then \r
+links to implementation of these functions which is appropriate for the specific \r
+environment that they are running under.\r
+  \r
+Copyright (c) 1999 - 2014, 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
@@ -9,17 +12,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  BinderFuncs.h\r
-\r
-Abstract:\r
-\r
-  Prototypes for binder functions that allow common code to be\r
-  written which then links to implementation of these functions\r
-  which is appropriate for the specific environment that they\r
-  are running under.\r
-\r
 **/\r
 \r
 #ifndef BinderFuncs_h_INCLUDED\r
index 981c04f34ba8f1c7ab3e868ba3aa05cc72d350cc..4b4d02274c19b99428087fe24632b1de94dc51a6 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Common basic Library Functions\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  CommonLib.c\r
-\r
-Abstract:\r
-\r
-  Common basic Library Functions\r
\r
 **/\r
 \r
 #include <stdio.h>\r
index 2c1db759b0db0e51f0e6ea7857a69d73c4e6626c..2041b89e2d0bc93577880431e82e92ce32db7d4e 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Common library assistance routines.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  CommonLib.h\r
-\r
-Abstract:\r
-\r
-  Common library assistance routines.\r
-\r
 **/\r
 \r
 #ifndef _EFI_COMMON_LIB_H\r
@@ -31,6 +24,7 @@ Abstract:
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
+\r
 //\r
 // Function declarations\r
 //\r
index 11245b11788a53dcea4771bfae917f9b3c86f752..beb2ebe9f6fb31cbfc5042c47bd6459d5ff609d2 100644 (file)
@@ -1,6 +1,8 @@
 /** @file\r
-\r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Header file for compression routine.\r
+Providing both EFI and Tiano Compress algorithms.\r
+  \r
+Copyright (c) 2004 - 2014, 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
@@ -8,15 +10,6 @@ http://opensource.org/licenses/bsd-license.php
                                                                                           \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
-Module Name:\r
-\r
-  Compress.h\r
-\r
-Abstract:\r
-\r
-  Header file for compression routine.\r
-  Providing both EFI and Tiano Compress algorithms.\r
   \r
 **/\r
 \r
index 8e5915dd0e53150262a5eaa5d3d6d7798d4faa77..05d7a8d6c38e81413fd79b6c9917a78e1836aecf 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+CalcuateCrc32 routine.\r
 \r
-Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  crc32.c\r
-\r
-Abstract:\r
-\r
-  CalcuateCrc32 routine.\r
-  \r
 **/\r
 \r
 #include <stdlib.h>\r
index 760327f99c30cb38de0e26a0baf45baf9599e00d..81461717d1c77f40302425732d04163e9f395361 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Header file for CalcuateCrc32 routine\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  Crc32.h\r
-\r
-Abstract:\r
-\r
-  Header file for CalcuateCrc32 routine\r
-  \r
 **/\r
 \r
 #ifndef _CRC32_H\r
index a12fc595a7da5e17328def298debee32c46ed803..48578ea2f2d27bc0cca2ac08bcc993ed7844497f 100644 (file)
@@ -1,6 +1,8 @@
 /** @file\r
+Decompressor. Algorithm Ported from OPSD code (Decomp.asm) for Efi and Tiano \r
+compress algorithm.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,15 +11,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  Decompress.c\r
-\r
-Abstract:\r
-\r
-  Decompressor. Algorithm Ported from OPSD code (Decomp.asm)\r
-  for Efi and Tiano compress algorithm.\r
-\r
 --*/\r
 \r
 #include <stdlib.h>\r
index b5c978855c9e38914a9b7d18a229bff965b58af4..004804c1451db5dd3f1b8301566995389e9218fe 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Header file for compression routine\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-  \r
-  Decompress.h\r
-\r
-Abstract:\r
-\r
-  Header file for compression routine\r
-  \r
 **/\r
 \r
 #ifndef _EFI_DECOMPRESS_H\r
index ed491ae36d6b7b796a7301e73f0a2d17a96d9bf1..bd86d1276ad80e564a5f4e6d1f13c366b83d5a36 100644 (file)
@@ -1,6 +1,10 @@
 /** @file\r
-\r
-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Compression routine. The compression algorithm is a mixture of LZ77 and Huffman \r
+coding. LZ77 transforms the source data into a sequence of Original Characters \r
+and Pointers to repeated strings. This sequence is further divided into Blocks \r
+and Huffman codings are applied to each Block.\r
+  \r
+Copyright (c) 2006 - 2014, 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
@@ -9,18 +13,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  EfiCompress.c\r
-\r
-Abstract:\r
-\r
-  Compression routine. The compression algorithm is a mixture of\r
-  LZ77 and Huffman coding. LZ77 transforms the source data into a\r
-  sequence of Original Characters and Pointers to repeated strings.\r
-  This sequence is further divided into Blocks and Huffman codings\r
-  are applied to each Block.\r
-\r
 **/\r
 \r
 #include "Compress.h"\r
index dc9b0ffaa26bf2154ddbd7979d9575299405c360..438f338a915cefa0cea7e88c2d05b52ae5bf00ab 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+EFI tools utility functions to display warning, error, and informational messages\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,15 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  EfiUtilityMsgs.c\r
-\r
-Abstract:\r
-\r
-  EFI tools utility functions to display warning, error, and informational\r
-  messages.\r
-\r
 --*/\r
 \r
 #include <stdio.h>\r
index 35cb1802feffcbfe38c6ba8dcd9427acc3bc9ec7..40b5e10c08741c42ee497984694e556903acff30 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Defines and prototypes for common EFI utility error and debug messages.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  EfiUtilityMsgs.h\r
-\r
-Abstract:\r
-\r
-  Defines and prototypes for common EFI utility error and debug messages.\r
-  \r
 **/\r
 \r
 #ifndef _EFI_UTILITY_MSGS_H_\r
index fa6ca6bd6d192581bbcd603ec5e5f02272994ddf..01d4e72a5683d6d386ab33f20366477f0e4367b1 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+EFI Firmware Volume routines which work on a Fv image in buffers.\r
 \r
 Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  FirmwareVolumeBuffer.c\r
-\r
-Abstract:\r
-\r
-  EFI Firmware Volume routines which work on a Fv image in buffers.\r
-\r
 **/\r
 \r
 #include "FirmwareVolumeBufferLib.h"\r
@@ -32,6 +25,11 @@ Abstract:
         ) \\r
     )\r
 \r
+\r
+//\r
+// Local prototypes\r
+//\r
+\r
 STATIC\r
 UINT32\r
 FvBufGetSecHdrLen(\r
index 49b380b96195eacceef924ea8213eba7dbd8638a..e07c8b98d8dc36f24e26b1cbd48e2a2a5ca44261 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+EFI Firmware Volume routines which work on a Fv image in buffers.\r
 \r
 Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  FirmwareVolumeBufferLib.h\r
-  \r
-Abstract:\r
-\r
-  EFI Firmware Volume routines which work on a Fv image in buffers.\r
-\r
 **/\r
 \r
 #ifndef FirmwareVolumeBuffer_h_INCLUDED\r
index 4758749dc363d9885613120f2f4fc4c2b31d4bcb..1b3c08bf161766dd106d27a9a2155acc72f8bb11 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+These functions assist in parsing and manipulating a Firmware Volume.\r
 \r
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  FvLib.c\r
-\r
-Abstract:\r
-\r
-  These functions assist in parsing and manipulating a Firmware Volume.\r
-\r
 **/\r
 \r
 //\r
index 567430a3780e0d9ee455270396fc282bd8ec0ce1..751bb38c531b50e9abca471d336961a739dbed45 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
-\r
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>\r
+These functions assist in parsing and manipulating a Firmware Volume.\r
+  \r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  FvLib.h\r
-\r
-Abstract:\r
-\r
-  These functions assist in parsing and manipulating a Firmware Volume.\r
-\r
 **/\r
 \r
 #ifndef _EFI_FV_LIB_H\r
index a93a50578843edfaabca839d9489c35b1c4674b6..7b1aa111d10fdae0f3248664356f38cf62ddeaad 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+This contains some useful functions for accessing files.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  MemoryFile.c\r
-\r
-Abstract:\r
-\r
-  This contains some useful functions for accessing files.\r
-\r
 **/\r
 \r
 #include <assert.h>\r
index 0568fed5f2e4e95cc52934ad997fc41ef6db09e1..552417a5a60cd55103fbe0937859b03011834363 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Header file for helper functions useful for accessing files.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  MemoryFile.h\r
-\r
-Abstract:\r
-\r
-  Header file for helper functions useful for accessing files.\r
-\r
 **/\r
 \r
 #ifndef _EFI_MEMORY_FILE_H\r
index 7b0493aaa00969dbf0fe66cf119f1c8298477231..eabba5790d2e0248f1e4b0899394fdbceee2da6f 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+File for memory allocation tracking functions.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  MyAlloc.c\r
-\r
-Abstract:\r
-\r
-  File for memory allocation tracking functions.\r
-\r
 **/\r
 \r
 #include "MyAlloc.h"\r
index 217beb14842e7add48c36660ca8a3df9524f89c2..e220e637aebec5e213c839bd37b018e0c722c05a 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Header file for memory allocation tracking functions.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  MyAlloc.h\r
-\r
-Abstract:\r
-\r
-  Header file for memory allocation tracking functions.\r
-\r
 **/\r
 \r
 #ifndef _MYALLOC_H_\r
index 07b47f09b4037be0fdadf7ca418cbde9d4b63cbe..7c90dfe12d8120b965473c0a5f4ae11b3518e8ab 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Functions useful to operate file directories by parsing file path.\r
 \r
 Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  StringFuncs.c\r
-\r
-Abstract:\r
-\r
-  Functions useful to operate file directories by parsing file path.\r
-\r
 **/\r
 \r
 #include <stdio.h>\r
index 9e7df070c5948224dded76ec670abacafb72ab01..0deaa9e7abfad6eac0debf057797a2ff5ceb08a7 100644 (file)
@@ -1,6 +1,8 @@
 /** @file\r
+Header file for helper functions useful to operate file directories by parsing \r
+file path.\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2014, 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
@@ -9,15 +11,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  OsPath.h\r
-\r
-Abstract:\r
-\r
-  Header file for helper functions useful to operate file directories \r
-  by parsing file path. \r
-\r
 **/\r
 \r
 #ifndef _EFI_OS_PATH_H\r
index 8ddfd00b7e85d8ddea143bc0c9b772ca8effb22a..e3f0ccb597df6e106c287f53b1fa5292ee2cf391 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Helper functions for parsing GuidedSectionTools.txt\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  ParseGuidedSectionTools.c\r
-\r
-Abstract:\r
-\r
-  Helper functions for parsing GuidedSectionTools.txt\r
-\r
 **/\r
 \r
 #include <assert.h>\r
index b4c55974e32dd1e6a2714ab561a5ec8c89733c47..d9c1f8cb43364f6b69eecd786ecaa3e0fd5eefcc 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Header file for helper functions for parsing GuidedSectionTools.txt\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  ParseGuidedSectionTools.h\r
-\r
-Abstract:\r
-\r
-  Header file for helper functions for parsing GuidedSectionTools.txt\r
-\r
 **/\r
 \r
 #ifndef _EFI_PARSE_GUIDED_SECTION_TOOLS_H\r
index 00ae0e65a10b8aee9fa193689e79dc3c4c746558..9e85a887301aea643be7146d49a7b65da92dce00 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+This contains some useful functions for parsing INF files.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,15 +10,7 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  ParseInf.c\r
-\r
-Abstract:\r
-\r
-  This contains some useful functions for parsing INF files.\r
-\r
---*/\r
+**/\r
 \r
 #include <assert.h>\r
 #include <string.h>\r
index 6215ea2e786817b0b27624e196cdebb555b589c0..80ee3887ad1ae7d7c8e3ea9f280e451921d535a3 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Header file for helper functions useful for parsing INF files.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  ParseInf.h\r
-\r
-Abstract:\r
-\r
-  Header file for helper functions useful for parsing INF files.\r
-\r
 **/\r
 \r
 #ifndef _EFI_PARSE_INF_H\r
index fe6b29251b61ba917625fde8a7eacd8904098a24..b56dd753844fe0ff998362786d4c29ee07585f3d 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
        Function prototypes and defines on Memory Only PE COFF loader\r
 \r
-       Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+       Copyright (c) 2006 - 2014, 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
@@ -10,8 +10,6 @@
        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
-       Module Name:    PeCoffLib.h\r
-\r
 **/\r
 \r
 #ifndef __BASE_PE_COFF_LIB_H__\r
index 8d6b3961f5272243de53cfdc053ef0b566ce2102..b7b7227f57d42d44789c9968a0285a4fbb7e495e 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+IA32, X64 and IPF Specific relocation fixups\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 Portions Copyright (c) 2011 - 2013, ARM Ltd. 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
@@ -10,16 +11,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-    PeCoffLoaderEx.c\r
-\r
-Abstract:\r
-\r
-    IA32, X64, IPF, ARM and AArch64 Specific relocation fixups\r
-\r
-Revision History\r
-\r
 --*/\r
 \r
 #include <Common/UefiBaseTypes.h>\r
index 3978e6ed3c8e1b930e5d235f63c922e1ca3a74c0..877bb6fd5130dbe85b373503f0e4bd5d0007d9ab 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Generic but simple file parsing routines.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  SimpleFileParsing.c  \r
-\r
-Abstract:\r
-\r
-  Generic but simple file parsing routines.\r
-\r
 --*/\r
 \r
 #include <stdio.h>\r
index d871eb7fe3dbbffa145a8a09236acca33a97bcb7..7265232d7250884974705fe2ac44f879544aafae 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Function prototypes and defines for the simple file parsing routines.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  SimpleFileParsing.h\r
-\r
-Abstract:\r
-\r
-  Function prototypes and defines for the simple file parsing routines.\r
-\r
 **/\r
 \r
 #ifndef _SIMPLE_FILE_PARSING_H_\r
index bccb0b2d3423e51eda45a333c288899cd047297e..a2bb87fe1b883944b5e3ee85a33336709a567c87 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Function prototypes and defines for string routines.\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  StringFuncs.c\r
-\r
-Abstract:\r
-\r
-  Function prototypes and defines for string routines.\r
-\r
 **/\r
 \r
 #include <string.h>\r
index 2c764115e537c1c828ced1b53859717a4320c458..4acbf106f7c45408a1dd0091b83f8d3f0420d68e 100644 (file)
@@ -1,6 +1,7 @@
-/**\r
+/** @file\r
+String routines implementation\r
 \r
-Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  StringFuncs.h\r
-\r
-Abstract:\r
-\r
-  String routines implementation.\r
-\r
 **/\r
 \r
 #ifndef _EFI_STRING_FUNCS_H\r
index a34f1d2a7d5b68f228176641a1c4e466a1b7c34a..e5175fcffea2cd4f4667972e6db1bd875cbf9f08 100644 (file)
@@ -1,6 +1,10 @@
 /** @file\r
-\r
-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Compression routine. The compression algorithm is a mixture of LZ77 and Huffman \r
+coding. LZ77 transforms the source data into a sequence of Original Characters \r
+and Pointers to repeated strings. This sequence is further divided into Blocks \r
+and Huffman codings are applied to each Block.\r
+  \r
+Copyright (c) 2006 - 2014, 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
@@ -9,18 +13,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  TianoCompress.c\r
-\r
-Abstract:\r
-\r
-  Compression routine. The compression algorithm is a mixture of\r
-  LZ77 and Huffman coding. LZ77 transforms the source data into a\r
-  sequence of Original Characters and Pointers to repeated strings.\r
-  This sequence is further divided into Blocks and Huffman codings\r
-  are applied to each Block.\r
-\r
 **/\r
 \r
 #include "Compress.h"\r
index 1ad8ba261a9397d4c44aa7028fcd7b09687acf18..6b6af2e727bbb008c7892ecfa553c4091b5f01f6 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Include file for the WinNt Library\r
 \r
 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
@@ -9,12 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-  WinNtInclude.h\r
-\r
-Abstract:\r
-  Include file for the WinNt Library\r
-\r
 **/\r
 \r
 #ifndef __WIN_NT_INCLUDE_H__\r
index e1d9de4d3c17fae14833362d0b9494c0bf249d9a..31d697ec515243dac12145d8d773882de3547c10 100644 (file)
@@ -1,5 +1,11 @@
 /** @file\r
-\r
+Creates and EFILDR image.\r
+This tool combines several PE Image files together using following format denoted as EBNF:\r
+FILE := EFILDR_HEADER\r
+        EFILDR_IMAGE +\r
+        <PeImageFileContent> +\r
+The order of EFILDR_IMAGE is same as the order of placing PeImageFileContent.\r
+  \r
 Copyright (c) 2006 - 2014, 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
@@ -9,21 +15,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  efildrimage.c\r
-\r
-Abstract:\r
-\r
-  Creates and EFILDR image.\r
-  This tool combines several PE Image files together using following format denoted as EBNF:\r
-  FILE := EFILDR_HEADER\r
-          EFILDR_IMAGE +\r
-          <PeImageFileContent> +\r
-  The order of EFILDR_IMAGE is same as the order of placing PeImageFileContent.\r
-\r
-Revision History\r
-\r
 **/\r
 \r
 \r
index 838ee25cba74c9212342cb7a5f65105a090eb1c9..7a57912516989ec10509a2f303018365a44c0562 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Utility program to create an EFI option ROM image from binary and EFI PE32 files.\r
 \r
 Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available \r
@@ -9,15 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  EfiRom.c\r
-  \r
-Abstract:\r
-\r
-  Utility program to create an EFI option ROM image from binary and \r
-  EFI PE32 files.\r
-\r
 **/\r
 \r
 #include "EfiUtilityMsgs.h"\r
index d87c4c61b7c5760b4d77322e6a8303ea2ab040ee..1214700826de6adf485a516cdba0e24821f78d3c 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+This file contains the relevant declarations required to generate Option Rom File\r
 \r
-Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>\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
 distribution.  The full text of the license may be found at\r
@@ -9,16 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:  \r
-\r
-  EfiRom.h\r
-\r
-Abstract:\r
-\r
-  This file contains the relevant declarations required\r
-  to generate Option Rom File\r
-\r
 **/\r
 \r
 #ifndef __EFI_ROM_H__\r
index c13b57735efeca46008d6884cf9f23e29c35471b..40cb19fb59e17bbb4b1966d06fdc062a14fa5a1b 100644 (file)
@@ -1,5 +1,9 @@
 /** @file\r
-\r
+Reading/writing MBR/DBR.\r
+  NOTE:\r
+    If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written.\r
+    If we process DBR, we will patch MBR to set first partition active if no active partition exists.\r
+    \r
 Copyright (c) 2006 - 2014, 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
@@ -9,16 +13,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  genbootsector.c\r
-  \r
-Abstract:\r
-  Reading/writing MBR/DBR.\r
-  NOTE:\r
-    If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written.\r
-    If we process DBR, we will patch MBR to set first partition active if no active partition exists.\r
-\r
 **/\r
 \r
 #include <windows.h>\r
index bc245fc94e9f7f5db3d826c99f9c3e4ab609f0d4..ad8cf5776064df5753662421363fed84ca5f2a34 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Calculate Crc32 value and Verify Crc32 value for input data.\r
 \r
 Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,13 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  GenCrc32.c\r
-\r
-Abstract:\r
-  Calculate Crc32 value and Verify Crc32 value for input data.\r
-\r
 **/\r
 \r
 #include <stdio.h>\r
index 765c0b27da73606908a9d50e8438a659cdb37ed2..52092e36e74e36520a7cb792388798159a6d3712 100644 (file)
@@ -1,4 +1,5 @@
-/**\r
+/** @file\r
+This file contains functions required to generate a Firmware File System file.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,15 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  GenFfs.c\r
-\r
-Abstract:\r
-\r
-  This file contains functions required to generate a Firmware File System\r
-  file.\r
-\r
 **/\r
 \r
 #include <stdio.h>\r
@@ -899,7 +891,7 @@ Returns:
   // Open output file to write ffs data.\r
   //\r
   remove(OutputFileName);\r
-  FfsFile = fopen (OutputFileName, "wb");\r
+  FfsFile = fopen (LongFilePath (OutputFileName), "wb");\r
   if (FfsFile == NULL) {\r
     Error (NULL, 0, 0001, "Error opening file", OutputFileName);\r
     goto Finish;\r
index 56c52b850f646c050383ba59d4d1b59848088364..01ae37acd738fcaa40b04e7c3acf16c3d3ca6eaf 100644 (file)
@@ -1,4 +1,8 @@
 /** @file\r
+  This contains all code necessary to build the GenFvImage.exe utility.       \r
+  This utility relies heavily on the GenFvImage Lib.  Definitions for both\r
+  can be found in the Tiano Firmware Volume Generation Utility \r
+  Specification, review draft.\r
 \r
 Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,17 +13,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  GenFv.c\r
-\r
-Abstract:\r
-\r
-  This contains all code necessary to build the GenFvImage.exe utility.       \r
-  This utility relies heavily on the GenFvImage Lib.  Definitions for both\r
-  can be found in the Tiano Firmware Volume Generation Utility \r
-  Specification, review draft.\r
-\r
 **/\r
 \r
 //\r
index 6ac542d6c0f2e6bb69de85f9ad80364faa96cb1e..ed9d496b7b8a6461cae46cf39af9deeec0956d86 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+This file contains the internal functions required to generate a Firmware Volume.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 Portions Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>\r
@@ -10,14 +11,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  GenFvInternalLib.c\r
-\r
-Abstract:\r
-\r
-  This file contains the internal functions required to generate a Firmware Volume.\r
-\r
 **/\r
 \r
 //\r
index f8eecbade184fd5cdaceb8ef03a84a1cf2a2ecbf..f039fa4dc7d82a60d44c0cd7ab57584e5652a689 100644 (file)
@@ -1,5 +1,7 @@
 /** @file\r
-\r
+This file contains describes the public interfaces to the GenFvImage Library.\r
+The basic purpose of the library is to create Firmware Volume images.\r
+  \r
 Copyright (c) 2004 - 2014, 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
@@ -9,15 +11,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-  \r
-  GenFvInternalLib.h\r
-\r
-Abstract:\r
-\r
-  This file contains describes the public interfaces to the GenFvImage Library.\r
-  The basic purpose of the library is to create Firmware Volume images.\r
-\r
 **/\r
 \r
 #ifndef _EFI_GEN_FV_INTERNAL_LIB_H\r
index 97c9380c8dc21cbbc1c56230abf7816c8f81887f..85e8ba6614086e72411a2216033c8c782bbc0f9c 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Elf32 Convert solution\r
 \r
-Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
 Portions copyright (c) 2013, ARM Ltd. All rights reserved.<BR>\r
 \r
 This program and the accompanying materials are licensed and made available\r
index e6a11d57bcef57c9cd941f759110f3efb89eae59..65fa55206887d285bbf47ce7f6a41e169e414cf9 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Header file for Elf32 Convert solution\r
 \r
-Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2014, 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
index 3f9a11a4bcdf541121ab0010973c2edb0078157f..526ab5d41f3dbf47918958735dc9e1f8d21c68bd 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Elf64 convert solution\r
 \r
-Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
 Portions copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>\r
 \r
 This program and the accompanying materials are licensed and made available\r
index 1e3a0dfcc256d2b23591002f16458d82388c746f..7a1d6ae013c59eba4fb7cbb13aa40364d944909c 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Header file for Elf64 convert solution\r
 \r
-Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2014, 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
index 17689cf27f1312f40f16ef8bd18bf5faba0cf817..1a84d3c28794f702036d4365b6e7a53e57f1e3a0 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Elf convert solution\r
 \r
-Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2014, 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
index 241dd6f44f115b21ad5f405e270747a3f7fc018c..b27a2f9d223f50b7792095d65431d5a6e1a3f6d0 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Header file for Elf convert solution\r
 \r
-Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2014, 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
index 56543b411b76d49be54beb982afa1eb91a4240bd..4756c5276261e5d7784e2fd325cd411bd787218a 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Converts a pe32+ image to an FW, Te image type, or other specific image.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-    GenFw.c\r
-\r
-Abstract:\r
-\r
-    Converts a pe32+ image to an FW, Te image type, or other specific image.\r
-\r
 **/\r
 \r
 #include "WinNtInclude.h"\r
index 524933774589f6e1886098219147852cac870af2..b56181d13e8693680b43f7045de42e71283fecb8 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Header file for GenFw\r
 \r
-Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2010 - 2014, 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
index cb34a0719c11fefdb5e9f9e57db457a7d747e704..fb829e69cb0f87be9348cb48d564dd1578272ba1 100644 (file)
@@ -1,18 +1,4 @@
 /** @file\r
-\r
-Copyright (c) 2006 - 2014, 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
-Module Name:\r
-  GenPage.c\r
-  \r
-Abstract:\r
   Pre-Create a 4G page table (2M pages).\r
   It's used in DUET x64 build needed to enter LongMode.\r
  \r
@@ -28,6 +14,16 @@ Abstract:
                         (\r
                           Directory-Ptr Directory {512}\r
                         ) {4}\r
+\r
+Copyright (c) 2006 - 2014, 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
 #include <stdio.h>\r
index 3cfebd6c695abdbd95bdf360ec8ee03294607f95..febf9158b1f8faf95f474182aa6756f2698b8c7d 100644 (file)
@@ -1,6 +1,13 @@
 /** @file \r
+x64 Long Mode Virtual Memory Management Definitions  \r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  References:\r
+    1) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 1:Basic Architecture, Intel\r
+    2) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 2:Instruction Set Reference, Intel\r
+    3) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 3:System Programmer's Guide, Intel\r
+    4) AMD64 Architecture Programmer's Manual Volume 2: System Programming\r
+    \r
+Copyright (c) 2006 - 2014, 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
@@ -8,19 +15,7 @@ http://opensource.org/licenses/bsd-license.php
                                                                                           \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
-Module Name:\r
-  VirtualMemory.h\r
   \r
-Abstract:\r
-\r
-  x64 Long Mode Virtual Memory Management Definitions  \r
-\r
-  References:\r
-    1) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 1:Basic Architecture, Intel\r
-    2) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 2:Instruction Set Reference, Intel\r
-    3) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 3:System Programmer's Guide, Intel\r
-    4) AMD64 Architecture Programmer's Manual Volume 2: System Programming\r
 **/\r
 \r
 #ifndef _VIRTUAL_MEMORY_H_\r
index f9370d35645f6019f6c5116e9d7b27c8fb3d8a64..20b2a10dbbcead7f5453481682cd86c153330790 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+Creates output file that is a properly formed section per the PI spec.\r
 \r
 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials                          \r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  GenSection.c\r
-\r
-Abstract:\r
-\r
-  Creates output file that is a properly formed section per the PI spec.\r
-\r
 **/\r
 \r
 #include <stdio.h>\r
index 256a2b16a923ecf5ccca03fd30c89ca53ace0daf..6f66ddc84292cdd3273d1f98969a7195557154a9 100644 (file)
@@ -1,4 +1,6 @@
-/**\r
+/** @file\r
+This file contains functions required to generate a boot strap file (BSF) also \r
+known as the Volume Top File (VTF)\r
 \r
 Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available \r
@@ -9,16 +11,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  GenVtf.c\r
-\r
-Abstract:\r
-\r
-  This file contains functions required to generate a boot strap file (BSF)\r
-  also known as the Volume Top File (VTF)\r
-\r
 **/\r
 \r
 //\r
index 8ebc8d25f3f193ad9b76d3d2bc438eda6042bb49..37d5f6050605234878ec6e07606e6afad915f0dd 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
-\r
-Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This file contains the relevant declarations required to generate Boot Strap File\r
+  \r
+Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>\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
 distribution.  The full text of the license may be found at\r
@@ -9,16 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:  \r
-\r
-  GenVtf.h\r
-\r
-Abstract:\r
-\r
-  This file contains the relevant declarations required\r
-  to generate Boot Strap File\r
-\r
 **/\r
 \r
 //\r
index f9869c44418199ff30380acc5c4364c5f7df2db9..1804e683fb9114158d777609b06aa9d03953c547 100644 (file)
@@ -1,5 +1,9 @@
 /** @file\r
-\r
+Reading/writing MBR/DBR.\r
+  NOTE:\r
+    If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written.\r
+    If we process DBR, we will patch MBR to set first partition active if no active partition exists.\r
+    \r
 Copyright (c) 2006 - 2014, 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
@@ -9,16 +13,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  GnuGenBootSector.c\r
-  \r
-Abstract:\r
-  Reading/writing MBR/DBR.\r
-  NOTE:\r
-    If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written.\r
-    If we process DBR, we will patch MBR to set first partition active if no active partition exists.\r
-\r
 **/\r
 \r
 #include "CommonLib.h"\r
index 27934375ce2c2f7ff723d91d34c536da814b8494..198647ab9595c979a4a7de3ee877e7b2fb8c4bc1 100644 (file)
@@ -3,7 +3,7 @@
 \r
   This file is stand alone self consistent set of definitions. \r
 \r
-  Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
@@ -12,8 +12,6 @@
   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
-  File Name:  BaseTypes.h\r
-\r
 **/\r
 \r
 #ifndef __BASE_TYPES_H__\r
index 764bebfa933a494bda06034717520a3d7cbbaef8..d5bc56cb873c18d734bbe06f4ec22f6a2584f713 100644 (file)
@@ -1,16 +1,14 @@
 /** @file\r
-  This file is for build version number auto generation\r
+This file is for build version number auto generation\r
 \r
-  Copyright (c) 2011, 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
+Copyright (c) 2011 - 2014, 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
-  File Name:  BuildVersion.h\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
index b756fef2c378ef3a16482621c00038f909ad036c..21c83874748693516bcafec7e77644f420f9739b 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   EDK II specific HII relative definition.\r
 \r
-  Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: MdeModuleHii.h\r
-\r
 **/\r
 \r
 #ifndef _MDEMODULE_HII_H\r
index 1790c3a1e841652bf07e9d0af582234c15262f19..ec31eab8a88361548a5dcd4f1369cb4db2da4e37 100644 (file)
@@ -1,21 +1,19 @@
 /** @file\r
   The firmware file related definitions in PI.\r
+  \r
+  @par Revision Reference:\r
+  Version 1.0.\r
 \r
-  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: PiFirmwareFile.h\r
-\r
-  @par Revision Reference:\r
-  Version 1.0.\r
-\r
 **/\r
 \r
 #ifndef __PI_FIRMWARE_FILE_H__\r
index 9d62a9bc3d5e3a6efb68f2cddbf30444c4cead9f..b5c2b038443f37c182d4a061cad318bb11db5af8 100644 (file)
@@ -1,21 +1,19 @@
 /** @file\r
   The firmware volume related definitions in PI.\r
 \r
-  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  @par Revision Reference:\r
+  Version 1.2C\r
+\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: PiFirmwareVolume.h\r
-\r
-  @par Revision Reference:\r
-  Version 1.2C\r
-\r
 **/\r
 \r
 #ifndef __PI_FIRMWAREVOLUME_H__\r
index 8f27ed7bc6d56bdb5c5677b82a05f7c03fbc248e..b7364b6201a06eb610715326560c431fb0cc6cb1 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   Defines data types and constants introduced in UEFI.\r
 \r
-  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: UefiBaseTypes.h\r
-\r
 **/\r
 \r
 #ifndef __UEFI_BASETYPE_H__\r
index a0f6c6af08c9c52d24c1629b4f0b7e1208ee35a6..c3ee9a98a9ba3ac163a570815e266611e485c84d 100644 (file)
@@ -1,21 +1,18 @@
 /** @file\r
   Defines for the EFI Capsule functionality.\r
+  @par Revision Reference:\r
+  These definitions are from Uefi Spec.\r
 \r
-  Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name:  Capsule.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from Uefi Spec.\r
-\r
 **/\r
 \r
 #ifndef _EFI_CAPSULE_H_\r
index ea5f211e9b326d34a05ec8c81cbda7a721b69453..2da3f547bdb0c390b7ac3ab64d2cd425c97b9b9b 100644 (file)
@@ -3,21 +3,19 @@
   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 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  @par Revision Reference:\r
+  These definitions are from UEFI2.1.\r
+\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: UefiInternalFormRepresentation.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from UEFI2.1.\r
-\r
 **/\r
 \r
 #ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__\r
index 7c487471a8a277447d4fb300baa8c314f1dd2a89..5fb3d5e9d490bdf575487aa5a2cc7f627771dc4d 100644 (file)
@@ -1,18 +1,17 @@
 /** @file\r
-  This includes some definitions introduced in UEFI that will be used in both PEI and DXE phases.\r
+  This includes some definitions introduced in UEFI that will be used in both PEI \r
+  and DXE phases.\r
 \r
-  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: UefiMultiPhase.h\r
-\r
 **/\r
 \r
 #ifndef __UEFI_MULTIPHASE_H__\r
index a0e25be8784b06412ac01d30e17fc5d1838110a6..6e484200beebdadd6513bf1edeef209dd582f22c 100644 (file)
@@ -1,18 +1,16 @@
 /**@file\r
   Header file for EFI Variable Services.\r
 \r
-  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2007 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: VariableFormat.h\r
-\r
 **/\r
 \r
 #ifndef __VARIABLE_FORMAT_H__\r
index 01fba26a05f4a384819e340e14b12656a64a3527..30e4b7e822d17a1269c4d20c09524d6612a43826 100644 (file)
@@ -4,18 +4,16 @@
   working block, the header structure of the variable block, FTW\r
   working block, or event log block.\r
 \r
-  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: WorkingBlockHeader.h\r
-\r
 **/\r
 \r
 #ifndef __EFI_WORKING_BLOCK_HEADER_H__\r
index 3691e272448373d78fd329d5fac3bb48c1a8960e..9f12ca2a48d5e48e8abdd0ef55927f3795264d3e 100644 (file)
@@ -1,21 +1,18 @@
 /** @file\r
   Terminal Device Path Vendor Guid.\r
-\r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  @par Revision Reference:\r
+  GUIDs defined in UEFI 2.0 spec.\r
+  \r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: PcAnsi.h\r
-\r
-  @par Revision Reference:\r
-  GUIDs defined in UEFI 2.0 spec.\r
-\r
 **/\r
 \r
 #ifndef __PC_ANSI_H__\r
index 3a4be34634dfc812722c03b59041b57d71f3adad..03d0c71d2da8c878e05b7262813be1628acd7be3 100644 (file)
@@ -1,22 +1,20 @@
 /** @file\r
   Guid used to define the Firmware File System. See PI spec volume 3 for more\r
   details.\r
+  \r
+  @par Revision Reference:\r
+  Guids defined in PI Spec Volume 3\r
 \r
-  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name:  PiFirmwareFileSystem.h\r
-\r
-  @par Revision Reference:\r
-  Guids defined in PI Spec Volume 3\r
-\r
 **/\r
 \r
 #ifndef __FIRMWARE_FILE_SYSTEM2_GUID_H__\r
index f1ed522b421e29674ab7af2b8666689c01cf7b37..bbe59a51c7d84f473fd55fc2f38e2141d5403719 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   Processor or Compiler specific defines and types for x64.\r
 \r
-  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name:  ProcessorBind.h\r
-\r
 **/\r
 \r
 #ifndef __PROCESSOR_BIND_H__\r
index 6b4179086c3afcb51b76c9a96c72be978ca0c072..28b4f41a7627dea9a396f0f9c270664fc7e208c2 100644 (file)
@@ -2,18 +2,16 @@
   This file contains some basic ACPI definitions that are consumed by drivers\r
   that do not care about ACPI versions.\r
 \r
-  Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name:  Acpi.h\r
-\r
 **/\r
 \r
 #ifndef _ACPI_H_\r
index a118e4ffa2c819c01a68fd787ac25a8856b83ff3..942a2a35b3f2f41d3cc40b8b2d1f666661ad505a 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   ACPI 1.0b definitions from the ACPI Specification, revision 1.0b\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: Acpi1_0.h\r
-\r
 **/\r
 \r
 #ifndef _ACPI_1_0_H_\r
index 9cbd5e00b717f9e495edb9ba87bee5516da4e0e9..3a109ffa080dbf3c6b997d6475111d3c47878606 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   ACPI 2.0 definitions from the ACPI Specification, revision 2.0\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: Acpi2_0.h\r
-\r
 **/\r
 \r
 #ifndef _ACPI_2_0_H_\r
index 47824eff3ab5b78388fba0d82ac3387154d05517..ad635efc74160dfb5dbc89c7e65aef295c3c5d61 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   ACPI 3.0 definitions from the ACPI Specification Revision 3.0 September 2, 2004\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: Acpi3_0.h\r
-\r
 **/\r
 \r
 #ifndef _ACPI_3_0_H_\r
index bd23e5a5eeb07d7ad8309d4dab7bd32db98d7329..8cd423430fce8e0848f787a8704733d9e4b2ef77 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   Support for EFI PCI specification.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
-    http://opensource.org/licenses/bsd-license.php\r
+  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
-  File Name:  EfiPci.h\r
-\r
 **/\r
 \r
 #ifndef _EFI_PCI_H_\r
index b661eecb5dd0a2dbbbbf47d4982b9cadf346ddc3..552c457f80f757c168201f0b3fded78605769d1c 100644 (file)
@@ -3,18 +3,16 @@
   in the PCI Firmware Specification, version 3.0 draft version 0.5.\r
   Specification is available at http://www.pcisig.com.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
-    http://opensource.org/licenses/bsd-license.php\r
+  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
-  File Name: MemoryMappedConfigurationSpaceAccessTable.h\r
-\r
 **/\r
 \r
 #ifndef _MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_H_\r
index 5d55f4d663f01875680a3b28709bb1c64f5d9f5a..8c197f43bb148a48398ddf072bd7f861b0b7c0f1 100644 (file)
@@ -4,19 +4,17 @@
 \r
   @bug Fix text - doc as defined in MSFT EFI specification.\r
 \r
-  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
   Portions copyright (c) 2011 - 2013, ARM Ltd. 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name:  PeImage.h\r
-\r
 **/\r
 \r
 #ifndef __PE_IMAGE_H__\r
index e07aa88cae5cea1011e4ac804968debfb8f83f9a..26c1541e399c79f581a37807b829e822b1d2967b 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   Support for PCI 2.2 standard.\r
 \r
-  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
-    http://opensource.org/licenses/bsd-license.php\r
+  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
-  File Name:  pci22.h\r
-\r
 **/\r
 \r
 #ifndef _PCI22_H\r
index 491d05f11ab90e5c805dc559cd9307726cab5bb4..b9f201694954ce6731fe501e5b27a659851e3aab 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   Support for PCI 2.3 standard.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
-    http://opensource.org/licenses/bsd-license.php\r
+  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
-  File Name:  pci23.h\r
-\r
 **/\r
 \r
 #ifndef _PCI23_H\r
index 5477f44fed46a361b3cec55523014b809a5d101f..667be3dbc93f1eb8dfa13f1336631a4c8a79e773 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   Support for PCI 3.0 standard.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
-    http://opensource.org/licenses/bsd-license.php\r
+  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
-  File Name:  pci30.h\r
-\r
 **/\r
 \r
 #ifndef _PCI30_H\r
index cdcc28f40a909ac77ddcc5907fa77966d976c731..5b55fc57b8180da757505d202eb4ea1238b53a58 100644 (file)
@@ -3,18 +3,16 @@
 \r
   Abstraction of a very simple graphics device.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name: GraphicsOutput.h\r
-\r
 **/\r
 \r
 #ifndef __GRAPHICS_OUTPUT_H__\r
index 6a1114d0531331be014d6937c5b71b34c6c2d113..597601a7f427fabe95489dedd677afa9fc5ed857 100644 (file)
@@ -5,22 +5,20 @@
   section. There may be multiple different GUIDs associated with the GUIDed\r
   section extraction protocol. That is, all instances of the GUIDed section\r
   extraction protocol must have the same interface structure.\r
-\r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  \r
+  @par Revision Reference: PI\r
+  Version 1.00.\r
+  \r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
-    http://opensource.org/licenses/bsd-license.php\r
+  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
-  File Name: EfiGuidedSectionExtraction.h\r
-\r
-  @par Revision Reference: PI\r
-  Version 1.00.\r
-\r
 **/\r
 \r
 #ifndef __EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL_H__\r
index d8da4aa5d8214dc8fea2608bd5766b39e726dba9..e97b252ae332faf0608bcd6d7e2c1d1754a70216 100644 (file)
@@ -2,22 +2,20 @@
   This file defines the Human Interface Infrastructure protocol which will\r
   be used by resources which want to publish IFR/Font/String data and have it\r
   collected by the Configuration engine.\r
+  \r
+  @par Revision Reference:\r
+  This protocol is defined in HII spec 0.92.\r
 \r
-  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2007 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name:  HiiFramework.h\r
-\r
-  @par Revision Reference:\r
-  This protocol is defined in HII spec 0.92.\r
-\r
 **/\r
 \r
 #ifndef _FRAMEWORK_HII_H_\r
index 2da3d1d5fee5de8d83157fc55dbf7cb4c466bbbe..3911fa98849bca7eeaa0ff9f08b386214a878a73 100644 (file)
@@ -3,18 +3,16 @@
 \r
   Abstraction of a very simple graphics device.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File name: UgaDraw.h\r
-\r
 **/\r
 \r
 #ifndef __UGA_DRAW_H__\r
index 6f03dfa67d4f7bac91f380a2d1a92db3f4484a54..a02a41913f2716246451ce51d6de0a34dc0260f4 100644 (file)
@@ -1,18 +1,16 @@
 /** @file\r
   Processor or Compiler specific defines and types x64 (Intel(r) EM64T, AMD64).\r
 \r
-  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
-  distribution.  The full text of the license may be found at:\r
+  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
-  File Name:  ProcessorBind.h\r
-\r
 **/\r
 \r
 #ifndef __PROCESSOR_BIND_H__\r
index 77749dfd16e1e9e797387eea1a125a0a2598320b..f059ad6b2bd157172358740c297006aeae2f8ab0 100644 (file)
@@ -1,7 +1,8 @@
+@REM @file\r
+@REM This script will exec LzmaCompress tool with --f86 option that enables \r
+@REM converter for x86 code.\r
 @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 Copyright (c) 2012 - 2014, 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
index fac89bd9eee439a69e2147228c8a469f48bcc3ba..4b3edfe2d6463475356ce3f69c4f857fc65f0ede 100644 (file)
@@ -1,6 +1,7 @@
 @REM ## @file\r
+@REM # Makefile\r
 @REM #\r
-@REM # Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+@REM # Copyright (c) 2007 - 2014, 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
@@ -8,9 +9,10 @@
 @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
-\r
+@REM # \r
 \r
 @echo off\r
+@set TOOL_ERROR=0\r
 setlocal\r
 SET NMAKE_COMMAND=%1\r
 SHIFT\r
@@ -21,7 +23,10 @@ if "%1"=="" goto success
 ECHO Building %1\r
 pushd %1\r
 nmake %NMAKE_COMMAND%\r
-if ERRORLEVEL 1 goto error\r
+if ERRORLEVEL 1 (\r
+  set /A TOOL_ERROR= %TOOL_ERROR% + %ERRORLEVEL%\r
+  goto error\r
+)\r
 ECHO %1 built successfully (%NMAKE_COMMAND%)\r
 ECHO.\r
 shift\r
@@ -33,8 +38,10 @@ goto exit
 \r
 :error\r
 popd\r
+set /A TOOL_ERROR=%TOOL_ERROR%+%ERRORLEVEL%\r
 ENDLOCAL\r
 ECHO Error while making %1!\r
 VERIFY OTHER 2>NUL\r
 \r
 :exit\r
+exit /B %TOOL_ERROR%\r
index 19269a13a950fae2bfa2f8a510dcfe64df795cd3..b727a7ed1620229660522626b74ded8efa3dc122 100644 (file)
@@ -1,6 +1,7 @@
 ## @file\r
+# Makefiles\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2014, 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
index c10ad7aab49b69f51918f58c1f628d897cdb803e..2dfc683860449c49fe4ba4cbc129b3986278c0a7 100644 (file)
@@ -1,6 +1,7 @@
 ## @file\r
+# Makefile\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2014, 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
@@ -8,6 +9,7 @@
 #\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
 DEPFILES = $(OBJECTS:%.o=%.d)\r
 \r
index dc8d90cccaf6062ff94706e19dddff088b4baf59..bba76be3afa9f500e12afb19bdf49b324292dab2 100644 (file)
@@ -1,6 +1,7 @@
 ## @file\r
+# Makefiles\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2014, 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
@@ -8,6 +9,7 @@
 #\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
 include $(MAKEROOT)/Makefiles/header.makefile\r
 \r
index c7f2bd65837d200cef27c20680f9066f70e2a873..3e045615f682c615660de99f3572d13927f8794e 100644 (file)
@@ -1,4 +1,5 @@
 ## @file\r
+# Makefile\r
 #\r
 # Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
@@ -8,6 +9,7 @@
 #\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
 !INCLUDE ..\Makefiles\ms.common\r
 \r
index fa9ffba563a95fe60dfb2e9ff85dc6de99f35547..d2f0b598cc3c0e62e0b5242d3f39c14a9749ca8d 100644 (file)
@@ -1,6 +1,7 @@
 ## @file\r
+# Makefile\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2014, 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
@@ -8,6 +9,7 @@
 #\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
 !IFNDEF EDK_TOOLS_PATH\r
 !ERROR "Please set your EDK_TOOLS_PATH!"\r
index b73e504b29acd5f3871223d4e678e8a34a08fe67..5134acfe16a50b2a35d1031eca188defa9c35c82 100644 (file)
@@ -1,6 +1,7 @@
 ## @file\r
+# Makefile\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2014, 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
@@ -8,6 +9,7 @@
 #\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
 #DEPFILES = $(OBJECTS:%.o=%.d)\r
 \r
index cf37c0c100875c7fc23e615df5b28c1b411617c4..eb4aa2583acd38c46c3a6c1568cdcee3c52528e5 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Efi Compressor\r
 \r
-Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\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
 distribution.  The full text of the license may be found at\r
index fdd2e391cb9ddcc8b8e26e3e479465621f9b63b2..e7c1ed2f42cc97bd4e71db2a4f077f2f44080568 100644 (file)
@@ -1,6 +1,7 @@
 ## @file\r
+# Makefile\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2014, 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
index 0cc9ad7987cc292c5dff765a32060cfde5eb509f..58290703ba2522f370f252e8a426cc4b194b4a87 100644 (file)
@@ -1,6 +1,7 @@
 ## @file\r
+# Makefile\r
 #\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2014, 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
@@ -8,6 +9,7 @@
 #\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
 !INCLUDE ..\Makefiles\ms.common\r
 \r
index ff3ad9443b7aebfe7f1de40bf8e8ffe212c54da9..6b3fcaff58e5a7d4336b094b387ca5a6487b7114 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Python Utility\r
 \r
-Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\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
 distribution.  The full text of the license may be found at\r
index 145288bb8038a508956d44169fa92cd4146aaa41..70f1b61a5ca31547b45b1b53097cd4b711e2380f 100644 (file)
@@ -1,6 +1,11 @@
 /** @file\r
-\r
-Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Compression routine. The compression algorithm is a mixture of LZ77 and Huffman \r
+coding. LZ77 transforms the source data into a sequence of Original Characters \r
+and Pointers to repeated strings.\r
+This sequence is further divided into Blocks and Huffman codings are applied to \r
+each Block.\r
+  \r
+Copyright (c) 2007 - 2014, 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
@@ -9,18 +14,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  TianoCompress.c\r
-\r
-Abstract:\r
-\r
-  Compression routine. The compression algorithm is a mixture of\r
-  LZ77 and Huffman coding. LZ77 transforms the source data into a\r
-  sequence of Original Characters and Pointers to repeated strings.\r
-  This sequence is further divided into Blocks and Huffman codings\r
-  are applied to each Block.\r
-\r
 **/\r
 \r
 #include "Compress.h"\r
@@ -1613,7 +1606,7 @@ Returns:
   //\r
   // Copy the file contents to the output buffer.\r
   //\r
-  InputFile = fopen (InputFileName, "rb");\r
+  InputFile = fopen (LongFilePath (InputFileName), "rb");\r
     if (InputFile == NULL) {\r
       Error (NULL, 0, 0001, "Error opening file: %s", InputFileName);\r
       return EFI_ABORTED;\r
@@ -1695,7 +1688,7 @@ Returns:
   //\r
   // Copyright declaration\r
   // \r
-  fprintf (stdout, "Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.\n\n");\r
+  fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.\n\n");\r
 \r
   //\r
   // Details Option\r
@@ -1889,7 +1882,7 @@ Returns:
     goto ERROR;\r
   }\r
     \r
-  InputFile = fopen (InputFileName, "rb");\r
+  InputFile = fopen (LongFilePath (InputFileName), "rb");\r
   if (InputFile == NULL) {\r
     Error (NULL, 0, 0001, "Error opening input file", InputFileName);\r
     goto ERROR;\r
@@ -1920,7 +1913,7 @@ Returns:
   }\r
    \r
   if (OutputFileName != NULL) {\r
-    OutputFile = fopen (OutputFileName, "wb");\r
+    OutputFile = fopen (LongFilePath (OutputFileName), "wb");\r
     if (OutputFile == NULL) {\r
       Error (NULL, 0, 0001, "Error opening output file for writing", OutputFileName);\r
     if (InputFile != NULL) {\r
@@ -1930,7 +1923,7 @@ Returns:
       }\r
     } else {\r
       OutputFileName = DEFAULT_OUTPUT_FILE;\r
-      OutputFile = fopen (OutputFileName, "wb");\r
+      OutputFile = fopen (LongFilePath (OutputFileName), "wb");\r
     }\r
     \r
   if (ENCODE) {\r
index b719ad2debe3a7681218e51aae6ba4e0c7a2a22d..accbe2ce073ba2e3e487760bbd6119c4fe7198a2 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Internal include file for Tiano Decompress Libary.\r
 \r
-  Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2014, 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
@@ -10,8 +10,6 @@
   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
-  Module Name:  TianoDecompress.h\r
-\r
 **/\r
 \r
 #ifndef __TIANO_DECOMPRESS_H__\r
index 4b9aed0adb425444c61c3b519f88d28313893292..d187902e2bdaf9af09d065ba592198622b8de601 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Defines and prototypes for the UEFI VFR compiler internal use.\r
 \r
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2014, 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
@@ -8,15 +9,7 @@ http://opensource.org/licenses/bsd-license.php
                                                                                           \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
-Module Name:\r
-\r
-  EfiVfr.h\r
-\r
-Abstract:\r
-\r
-  Defines and prototypes for the UEFI VFR compiler internal use.\r
-  \r
\r
 **/\r
 \r
 #ifndef _EFIVFR_H_\r
index e12677fd4fe402f19a3c76c087ecb058ed1b7c02..1a5b3fd5885270fb0abfce5fa0cf9f35fb931852 100644 (file)
@@ -1,4 +1,6 @@
-/*++\r
+/*++ @file\r
+Vfr Syntax\r
+\r
 Copyright (c) 2004 - 2014, 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
@@ -8,11 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-  VfrSyntax.g\r
-\r
-Abstract:\r
-\r
 --*/\r
 \r
 #header<<\r
index 9962d387a7ec2c6eddbc9e460423e05a02445999..7e79d753676bc918869709b5ab7405358f299337 100644 (file)
@@ -1,4 +1,5 @@
 /** @file\r
+The tool dumps the contents of a firmware volume\r
 \r
 Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  VolInfo.c\r
-\r
-Abstract:\r
-\r
-  The tool dumps the contents of a firmware volume\r
-\r
 **/\r
 \r
 #include <stdio.h>\r
@@ -1716,7 +1709,7 @@ Returns:
   CHAR8             Line[MAX_LINE_LEN];\r
   GUID_TO_BASENAME  *GPtr;\r
 \r
-  if ((Fptr = fopen (FileName, "r")) == NULL) {\r
+  if ((Fptr = fopen (LongFilePath (FileName), "r")) == NULL) {\r
     printf ("ERROR: Failed to open input cross-reference file '%s'\n", FileName);\r
     return EFI_DEVICE_ERROR;\r
   }\r
index 0e2d181911ae483900fbfa0579d1450dc93dcb30..0ef7d9222737a91f6f25eeb0f3c5bed3abad45db 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
+Local Definitions for the VolInfo utility\r
 \r
-Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 1999 - 2014, 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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
-Module Name:\r
-\r
-  VolInfo.c\r
-\r
-Abstract:\r
-\r
-  Local Definitions for the VolInfo utility\r
-\r
 **/\r
 \r
 #ifndef _VOLINFO_H_\r
index 8c62ac8e72a80e5ba79272a837908b5eabbe7cbf..8cd387072e26c8786dc375b5b6f1e906339163ad 100644 (file)
@@ -40,15 +40,27 @@ import Common.VpdInfoFile as VpdInfoFile
 from GenPcdDb import CreatePcdDatabaseCode\r
 from Workspace.MetaFileCommentParser import UsageList\r
 \r
+import InfSectionParser\r
+\r
 ## Regular expression for splitting Dependency Expression string into tokens\r
 gDepexTokenPattern = re.compile("(\(|\)|\w+| \S+\.inf)")\r
 \r
+#\r
+# Match name = variable\r
+#\r
+gEfiVarStoreNamePattern = re.compile("\s*name\s*=\s*(\w+)")\r
+#\r
+# The format of guid in efivarstore statement likes following and must be correct:\r
+# guid = {0xA04A27f4, 0xDF00, 0x4D42, {0xB5, 0x52, 0x39, 0x51, 0x13, 0x02, 0x11, 0x3D}}\r
+#\r
+gEfiVarStoreGuidPattern = re.compile("\s*guid\s*=\s*({.*?{.*?}\s*})")\r
+\r
 ## Mapping Makefile type\r
 gMakeTypeMap = {"MSFT":"nmake", "GCC":"gmake"}\r
 \r
 \r
 ## Build rule configuration file\r
-gBuildRuleFile = 'Conf/build_rule.txt'\r
+gDefaultBuildRuleFile = 'Conf/build_rule.txt'\r
 \r
 ## Build rule default version\r
 AutoGenReqBuildRuleVerNum = "0.1"\r
@@ -60,22 +72,40 @@ gAutoGenStringFileName = "%(module_name)sStrDefs.h"
 gAutoGenStringFormFileName = "%(module_name)sStrDefs.hpk"\r
 gAutoGenDepexFileName = "%(module_name)s.depex"\r
 \r
+gInfSpecVersion = "0x00010017"\r
+\r
 #\r
 # Template string to generic AsBuilt INF\r
 #\r
 gAsBuiltInfHeaderString = TemplateString("""${header_comments}\r
 \r
+# DO NOT EDIT\r
+# FILE auto-generated\r
+\r
 [Defines]\r
-  INF_VERSION                = 0x00010016\r
+  INF_VERSION                = ${module_inf_version}\r
   BASE_NAME                  = ${module_name}\r
   FILE_GUID                  = ${module_guid}\r
-  MODULE_TYPE                = ${module_module_type}\r
-  VERSION_STRING             = ${module_version_string}${BEGIN}\r
+  MODULE_TYPE                = ${module_module_type}${BEGIN}\r
+  VERSION_STRING             = ${module_version_string}${END}${BEGIN}\r
   PCD_IS_DRIVER              = ${pcd_is_driver_string}${END}${BEGIN}\r
   UEFI_SPECIFICATION_VERSION = ${module_uefi_specification_version}${END}${BEGIN}\r
-  PI_SPECIFICATION_VERSION   = ${module_pi_specification_version}${END}\r
-\r
-[Packages]${BEGIN}\r
+  PI_SPECIFICATION_VERSION   = ${module_pi_specification_version}${END}${BEGIN}\r
+  ENTRY_POINT                = ${module_entry_point}${END}${BEGIN}\r
+  UNLOAD_IMAGE               = ${module_unload_image}${END}${BEGIN}\r
+  CONSTRUCTOR                = ${module_constructor}${END}${BEGIN}\r
+  DESTRUCTOR                 = ${module_destructor}${END}${BEGIN}\r
+  SHADOW                     = ${module_shadow}${END}${BEGIN}\r
+  PCI_VENDOR_ID              = ${module_pci_vendor_id}${END}${BEGIN}\r
+  PCI_DEVICE_ID              = ${module_pci_device_id}${END}${BEGIN}\r
+  PCI_CLASS_CODE             = ${module_pci_class_code}${END}${BEGIN}\r
+  PCI_REVISION               = ${module_pci_revision}${END}${BEGIN}\r
+  BUILD_NUMBER               = ${module_build_number}${END}${BEGIN}\r
+  SPEC                       = ${module_spec}${END}${BEGIN}\r
+  UEFI_HII_RESOURCE_SECTION  = ${module_uefi_hii_resource_section}${END}${BEGIN}\r
+  MODULE_UNI_FILE            = ${module_uni_file}${END}\r
+\r
+[Packages.${module_arch}]${BEGIN}\r
   ${package_item}${END}\r
 \r
 [Binaries.${module_arch}]${BEGIN}\r
@@ -84,19 +114,32 @@ gAsBuiltInfHeaderString = TemplateString("""${header_comments}
 [PatchPcd.${module_arch}]${BEGIN}\r
   ${patchablepcd_item}\r
 ${END}\r
+\r
 [Protocols.${module_arch}]${BEGIN}\r
   ${protocol_item}\r
 ${END}\r
+\r
 [Ppis.${module_arch}]${BEGIN}\r
   ${ppi_item}\r
 ${END}\r
+\r
 [Guids.${module_arch}]${BEGIN}\r
   ${guid_item}\r
 ${END}\r
+\r
 [PcdEx.${module_arch}]${BEGIN}\r
   ${pcd_item}\r
 ${END}\r
 \r
+[LibraryClasses.${module_arch}]\r
+## @LIB_INSTANCES${BEGIN}\r
+#  ${libraryclasses_item}${END}\r
+\r
+${depexsection_item}\r
+\r
+${tail_comments}\r
+\r
+[BuildOptions.${module_arch}]\r
 ## @AsBuilt${BEGIN}\r
 ##   ${flags_item}${END}\r
 """)\r
@@ -240,6 +283,15 @@ class WorkspaceAutoGen(AutoGen):
                             ExtraData="Build target [%s] is not supported by the platform. [Valid target: %s]"\r
                                       % (self.BuildTarget, " ".join(self.Platform.BuildTargets)))\r
 \r
+        # Validate SKU ID\r
+        if not self.SkuId:\r
+            self.SkuId = 'DEFAULT'\r
+\r
+        if self.SkuId not in self.Platform.SkuIds:\r
+            EdkLogger.error("build", PARAMETER_INVALID,\r
+                            ExtraData="SKU-ID [%s] is not supported by the platform. [Valid SKU-ID: %s]"\r
+                                      % (self.SkuId, " ".join(self.Platform.SkuIds.keys())))\r
+\r
         # parse FDF file to get PCDs in it, if any\r
         if not self.FdfFile:\r
             self.FdfFile = self.Platform.FlashDefinition\r
@@ -299,6 +351,7 @@ class WorkspaceAutoGen(AutoGen):
             DecPcds = {}\r
             DecPcdsKey = set()\r
             PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)\r
+            #Collect package set information from INF of FDF\r
             PkgSet = set()\r
             for Inf in ModuleList:\r
                 ModuleFile = PathClass(NormPath(Inf), GlobalData.gWorkspace, Arch)\r
@@ -355,10 +408,10 @@ class WorkspaceAutoGen(AutoGen):
         # Check PCD type and definition between DSC and DEC\r
         #\r
         self._CheckPcdDefineAndType()\r
-        \r
-        if self.FdfFile:\r
-            self._CheckDuplicateInFV(Fdf)\r
-        \r
+\r
+        if self.FdfFile:\r
+            self._CheckDuplicateInFV(Fdf)\r
+\r
         self._BuildDir = None\r
         self._FvDir = None\r
         self._MakeFileDir = None\r
@@ -662,7 +715,7 @@ class WorkspaceAutoGen(AutoGen):
                                     ExtraData=None\r
                                     )\r
                     Count += 1\r
-                                      \r
+    ## Generate fds command\r
     def _GenFdsCommand(self):\r
         return (GenMake.TopLevelMakefile(self)._TEMPLATE_.Replace(GenMake.TopLevelMakefile(self)._TemplateDict)).strip()\r
 \r
@@ -817,9 +870,6 @@ class PlatformAutoGen(AutoGen):
         # get library/modules for build\r
         self.LibraryBuildDirectoryList = []\r
         self.ModuleBuildDirectoryList = []\r
-        # get the original module/package/platform objects\r
-        self.LibraryBuildDirectoryList = []\r
-        self.ModuleBuildDirectoryList = []\r
         return True\r
 \r
     def __repr__(self):\r
@@ -859,7 +909,7 @@ class PlatformAutoGen(AutoGen):
                 Ma = ModuleAutoGen(self.Workspace, ModuleFile, self.BuildTarget,\r
                                    self.ToolChain, self.Arch, self.MetaFile)\r
                 Ma.CreateMakeFile(True)\r
-                Ma.CreateAsBuiltInf()\r
+                #Ma.CreateAsBuiltInf()\r
 \r
         # no need to create makefile for the platform more than once\r
         if self.IsMakeFileCreated:\r
@@ -923,8 +973,11 @@ class PlatformAutoGen(AutoGen):
                 if PcdFromModule.DatumType == "VOID*" and PcdFromModule.MaxDatumSize in [None, '']:\r
                     NoDatumTypePcdList.add("%s.%s [%s]" % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, F))\r
 \r
+                # Check the PCD from Binary INF or Source INF\r
                 if M.IsBinaryModule == True:\r
                     PcdFromModule.IsFromBinaryInf = True\r
+\r
+                # Check the PCD from DSC or not \r
                 if (PcdFromModule.TokenCName, PcdFromModule.TokenSpaceGuidCName) in self.Platform.Pcds.keys():\r
                     PcdFromModule.IsFromDsc = True\r
                 else:\r
@@ -943,11 +996,11 @@ class PlatformAutoGen(AutoGen):
                             PcdFromModule.IsFromBinaryInf == False:\r
                             # Print warning message to let the developer make a determine.\r
                             if PcdFromModule not in PcdNotInDb:\r
-                                EdkLogger.warn("build",\r
-                                               "A PCD listed in the DSC (%s.%s, %s) is used by a module not in the FDF. If the PCD is not used by any module listed in the FDF this PCD will be ignored. " \\r
-                                               % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, self.Platform.MetaFile.Path),\r
-                                               File=self.MetaFile, \\r
-                                               ExtraData=None)\r
+                            #    EdkLogger.warn("build",\r
+                            #                   "A PCD listed in the DSC (%s.%s, %s) is used by a module not in the FDF. If the PCD is not used by any module listed in the FDF this PCD will be ignored. " \\r
+                            #                   % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, self.Platform.MetaFile.Path),\r
+                            #                   File=self.MetaFile, \\r
+                            #                   ExtraData=None)\r
                                 PcdNotInDb.append(PcdFromModule)\r
                             continue\r
                         # If one of the Source built modules listed in the DSC is not listed in \r
@@ -1017,6 +1070,11 @@ class PlatformAutoGen(AutoGen):
                     elif PcdFromModule not in self._NonDynaPcdList_ and PcdFromModule.Type in TAB_PCDS_PATCHABLE_IN_MODULE:\r
                         self._NonDynaPcdList_.append(PcdFromModule)\r
                     if PcdFromModule in self._DynaPcdList_ and PcdFromModule.Phase == 'PEI' and PcdFromModule.Type in GenC.gDynamicExPcd:\r
+                        # Overwrite the phase of any the same PCD existing, if Phase is PEI.\r
+                        # It is to solve the case that a dynamic PCD used by a PEM module/PEI \r
+                        # module & DXE module at a same time.\r
+                        # Overwrite the type of the PCDs in source INF by the type of AsBuild\r
+                        # INF file as DynamicEx. \r
                         Index = self._DynaPcdList_.index(PcdFromModule)\r
                         self._DynaPcdList_[Index].Phase = PcdFromModule.Phase\r
                         self._DynaPcdList_[Index].Type = PcdFromModule.Type\r
@@ -1050,16 +1108,16 @@ class PlatformAutoGen(AutoGen):
         # If PCD is listed in a PcdsDynamicHii, PcdsDynamicExHii, PcdsDynamicHii or PcdsDynamicExHii\r
         # section, and the PCD is not used by any module that is listed in the DSC file, the build \r
         # provide a warning message.\r
-        for PcdKey in self.Platform.Pcds.keys():\r
-            Pcd = self.Platform.Pcds[PcdKey]\r
-            if Pcd not in self._DynamicPcdList + PcdNotInDb and \\r
-                Pcd.Type in [TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, TAB_PCDS_DYNAMIC_HII, TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, TAB_PCDS_DYNAMIC_EX_HII]:\r
-                # Print warning message to let the developer make a determine.\r
-                EdkLogger.warn("build",\r
-                               "A %s PCD listed in the DSC (%s.%s, %s) is not used by any module." \\r
-                               % (Pcd.Type, Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path),\r
-                               File=self.MetaFile, \\r
-                               ExtraData=None)\r
+        #for PcdKey in self.Platform.Pcds.keys():\r
+        #    Pcd = self.Platform.Pcds[PcdKey]\r
+        #    if Pcd not in self._DynamicPcdList + PcdNotInDb and \\r
+        #        Pcd.Type in [TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, TAB_PCDS_DYNAMIC_HII, TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, TAB_PCDS_DYNAMIC_EX_HII]:\r
+        #        # Print warning message to let the developer make a determine.\r
+                #EdkLogger.warn("build",\r
+                #               "A %s PCD listed in the DSC (%s.%s, %s) is not used by any module." \\r
+                #               % (Pcd.Type, Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path),\r
+                #               File=self.MetaFile, \\r
+                #               ExtraData=None)\r
         #\r
         # Sort dynamic PCD list to:\r
         # 1) If PCD's datum type is VOID* and value is unicode string which starts with L, the PCD item should \r
@@ -1421,7 +1479,7 @@ class PlatformAutoGen(AutoGen):
             self._EdkIIBuildOption = self._ExpandBuildOption(self.Platform.BuildOptions, EDKII_NAME)\r
         return self._EdkIIBuildOption\r
 \r
-    ## Parse build_rule.txt in $(WORKSPACE)/Conf/build_rule.txt\r
+    ## Parse build_rule.txt in Conf Directory.\r
     #\r
     #   @retval     BuildRule object\r
     #\r
@@ -1431,7 +1489,7 @@ class PlatformAutoGen(AutoGen):
             if TAB_TAT_DEFINES_BUILD_RULE_CONF in self.Workspace.TargetTxt.TargetTxtDictionary:\r
                 BuildRuleFile = self.Workspace.TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_BUILD_RULE_CONF]\r
             if BuildRuleFile in [None, '']:\r
-                BuildRuleFile = gBuildRuleFile\r
+                BuildRuleFile = gDefaultBuildRuleFile\r
             self._BuildRule = BuildRule(BuildRuleFile)\r
             if self._BuildRule._FileVersion == "":\r
                 self._BuildRule._FileVersion = AutoGenReqBuildRuleVerNum\r
@@ -2140,6 +2198,9 @@ class ModuleAutoGen(AutoGen):
             return False\r
 \r
         self.SourceDir = self.MetaFile.SubDir\r
+        if self.SourceDir.upper().find(self.WorkspaceDir.upper()) == 0:\r
+            self.SourceDir = self.SourceDir[len(self.WorkspaceDir) + 1:]\r
+\r
         self.SourceOverrideDir = None\r
         # use overrided path defined in DSC file\r
         if self.MetaFile.Key in GlobalData.gOverrideDir:\r
@@ -2284,6 +2345,16 @@ class ModuleAutoGen(AutoGen):
 \r
     ## Return the module meta-file GUID\r
     def _GetGuid(self):\r
+        #\r
+        # To build same module more than once, the module path with FILE_GUID overridden has\r
+        # the file name FILE_GUIDmodule.inf, but the relative path (self.MetaFile.File) is the realy path\r
+        # in DSC. The overridden GUID can be retrieved from file name\r
+        #\r
+        if os.path.basename(self.MetaFile.File) != os.path.basename(self.MetaFile.Path):\r
+            #\r
+            # Length of GUID is 36\r
+            #\r
+            return os.path.basename(self.MetaFile.Path)[:36]\r
         return self.Module.Guid\r
 \r
     ## Return the module version\r
@@ -2393,7 +2464,66 @@ class ModuleAutoGen(AutoGen):
                     continue\r
                 PackageList.append(Package)\r
         return PackageList\r
-\r
+    \r
+    ## Get the depex string\r
+    #\r
+    # @return : a string contain all depex expresion.\r
+    def _GetDepexExpresionString(self):\r
+        DepexStr = ''\r
+        DepexList = []\r
+        ## DPX_SOURCE IN Define section.\r
+        if self.Module.DxsFile:\r
+            return DepexStr\r
+        for M in [self.Module] + self.DependentLibraryList:\r
+            Filename = M.MetaFile.Path\r
+            InfObj = InfSectionParser.InfSectionParser(Filename)\r
+            DepexExpresionList = InfObj.GetDepexExpresionList()\r
+            for DepexExpresion in DepexExpresionList:\r
+                for key in DepexExpresion.keys():\r
+                    Arch, ModuleType = key\r
+                    # the type of build module is USER_DEFINED.\r
+                    # All different DEPEX section tags would be copied into the As Built INF file\r
+                    # and there would be separate DEPEX section tags\r
+                    if self.ModuleType.upper() == SUP_MODULE_USER_DEFINED:\r
+                        if (Arch.upper() == self.Arch.upper()) and (ModuleType.upper() != TAB_ARCH_COMMON):\r
+                            DepexList.append({(Arch, ModuleType): DepexExpresion[key][:]})\r
+                    else:\r
+                        if Arch.upper() == TAB_ARCH_COMMON or \\r
+                          (Arch.upper() == self.Arch.upper() and \\r
+                          ModuleType.upper() in [TAB_ARCH_COMMON, self.ModuleType.upper()]):\r
+                            DepexList.append({(Arch, ModuleType): DepexExpresion[key][:]})\r
+        \r
+        #the type of build module is USER_DEFINED.\r
+        if self.ModuleType.upper() == SUP_MODULE_USER_DEFINED:\r
+            for Depex in DepexList:\r
+                for key in Depex.keys():\r
+                    DepexStr += '[Depex.%s.%s]\n' % key\r
+                    DepexStr += '\n'.join(['# '+ val for val in Depex[key]])\r
+                    DepexStr += '\n\n'\r
+            if not DepexStr:\r
+                return '[Depex.%s]\n' % self.Arch\r
+            return DepexStr\r
+        \r
+        #the type of build module not is USER_DEFINED.\r
+        Count = 0\r
+        for Depex in DepexList:\r
+            Count += 1\r
+            if DepexStr != '':\r
+                DepexStr += ' AND '\r
+            DepexStr += '('\r
+            for D in Depex.values():\r
+                DepexStr += ' '.join([val for val in D])\r
+            Index = DepexStr.find('END')\r
+            if Index > -1 and Index == len(DepexStr) - 3:\r
+                DepexStr = DepexStr[:-3]\r
+            DepexStr = DepexStr.strip()\r
+            DepexStr += ')'\r
+        if Count == 1:\r
+            DepexStr = DepexStr.lstrip('(').rstrip(')').strip()\r
+        if not DepexStr:\r
+            return '[Depex.%s]\n' % self.Arch\r
+        return '[Depex.%s]\n#  ' % self.Arch + DepexStr\r
+    \r
     ## Merge dependency expression\r
     #\r
     #   @retval     list    The token list of the dependency expression after parsed\r
@@ -2546,7 +2676,7 @@ class ModuleAutoGen(AutoGen):
     ## Return a list of files which can be built from source\r
     #\r
     #  What kind of files can be built is determined by build rules in\r
-    #  $(WORKSPACE)/Conf/build_rule.txt and toolchain family.\r
+    #  $(CONF_DIRECTORY)/build_rule.txt and toolchain family.\r
     #\r
     def _GetSourceFileList(self):\r
         if self._SourceFileList == None:\r
@@ -2901,6 +3031,71 @@ class ModuleAutoGen(AutoGen):
                         self._IncludePathList.append(str(Inc))\r
         return self._IncludePathList\r
 \r
+    ## Get HII EX PCDs which maybe used by VFR\r
+    #\r
+    #  efivarstore used by VFR may relate with HII EX PCDs\r
+    #  Get the variable name and GUID from efivarstore and HII EX PCD\r
+    #  List the HII EX PCDs in As Built INF if both name and GUID match.\r
+    #\r
+    #  @retval    list    HII EX PCDs\r
+    #\r
+    def _GetPcdsMaybeUsedByVfr(self):\r
+        if not self.SourceFileList:\r
+            return []\r
+\r
+        NameGuids = []\r
+        for SrcFile in self.SourceFileList:\r
+            if SrcFile.Ext.lower() != '.vfr':\r
+                continue\r
+            Vfri = os.path.join(self.OutputDir, SrcFile.BaseName + '.i')\r
+            if not os.path.exists(Vfri):\r
+                continue\r
+            VfriFile = open(Vfri, 'r')\r
+            Content = VfriFile.read()\r
+            VfriFile.close()\r
+            Pos = Content.find('efivarstore')\r
+            while Pos != -1:\r
+                #\r
+                # Make sure 'efivarstore' is the start of efivarstore statement\r
+                # In case of the value of 'name' (name = efivarstore) is equal to 'efivarstore'\r
+                #\r
+                Index = Pos - 1\r
+                while Index >= 0 and Content[Index] in ' \t\r\n':\r
+                    Index -= 1\r
+                if Index >= 0 and Content[Index] != ';':\r
+                    Pos = Content.find('efivarstore', Pos + len('efivarstore'))\r
+                    continue\r
+                #\r
+                # 'efivarstore' must be followed by name and guid\r
+                #\r
+                Name = gEfiVarStoreNamePattern.search(Content, Pos)\r
+                if not Name:\r
+                    break\r
+                Guid = gEfiVarStoreGuidPattern.search(Content, Pos)\r
+                if not Guid:\r
+                    break\r
+                NameArray = ConvertStringToByteArray('L"' + Name.group(1) + '"')\r
+                NameGuids.append((NameArray, GuidStructureStringToGuidString(Guid.group(1))))\r
+                Pos = Content.find('efivarstore', Name.end())\r
+        if not NameGuids:\r
+            return []\r
+        HiiExPcds = []\r
+        for Pcd in self.PlatformInfo.Platform.Pcds.values():\r
+            if Pcd.Type != TAB_PCDS_DYNAMIC_EX_HII:\r
+                continue\r
+            for SkuName in Pcd.SkuInfoList:\r
+                SkuInfo = Pcd.SkuInfoList[SkuName]\r
+                Name = ConvertStringToByteArray(SkuInfo.VariableName)\r
+                Value = GuidValue(SkuInfo.VariableGuid, self.PlatformInfo.PackageList)\r
+                if not Value:\r
+                    continue\r
+                Guid = GuidStructureStringToGuidString(Value)\r
+                if (Name, Guid) in NameGuids and Pcd not in HiiExPcds:\r
+                    HiiExPcds.append(Pcd)\r
+                    break\r
+\r
+        return HiiExPcds\r
+\r
     ## Create AsBuilt INF file the module\r
     #\r
     def CreateAsBuiltInf(self):\r
@@ -2963,6 +3158,16 @@ class ModuleAutoGen(AutoGen):
                         break\r
                 if Found: break\r
 \r
+        VfrPcds = self._GetPcdsMaybeUsedByVfr()\r
+        for Pkg in self.PlatformInfo.PackageList:\r
+            if Pkg in Packages:\r
+                continue\r
+            for VfrPcd in VfrPcds:\r
+                if ((VfrPcd.TokenCName, VfrPcd.TokenSpaceGuidCName, 'DynamicEx') in Pkg.Pcds or\r
+                    (VfrPcd.TokenCName, VfrPcd.TokenSpaceGuidCName, 'Dynamic') in Pkg.Pcds):\r
+                    Packages += [Pkg]\r
+                    break\r
+\r
         ModuleType = self.ModuleType\r
         if ModuleType == 'UEFI_DRIVER' and self.DepexGenerated:\r
             ModuleType = 'DXE_DRIVER'\r
@@ -2971,14 +3176,30 @@ class ModuleAutoGen(AutoGen):
         if self.PcdIsDriver != '':\r
             DriverType = self.PcdIsDriver\r
 \r
+        Guid = self.Guid\r
+        MDefs = self.Module.Defines\r
+\r
         AsBuiltInfDict = {\r
           'module_name'                       : self.Name,\r
-          'module_guid'                       : self.Guid,\r
+          'module_guid'                       : Guid,\r
           'module_module_type'                : ModuleType,\r
-          'module_version_string'             : self.Version,\r
+          'module_version_string'             : [MDefs['VERSION_STRING']] if 'VERSION_STRING' in MDefs else [],\r
           'pcd_is_driver_string'              : [],\r
           'module_uefi_specification_version' : [],\r
           'module_pi_specification_version'   : [],\r
+          'module_entry_point'                : self.Module.ModuleEntryPointList,\r
+          'module_unload_image'               : self.Module.ModuleUnloadImageList,\r
+          'module_constructor'                : self.Module.ConstructorList,\r
+          'module_destructor'                 : self.Module.DestructorList,\r
+          'module_shadow'                     : [MDefs['SHADOW']] if 'SHADOW' in MDefs else [],\r
+          'module_pci_vendor_id'              : [MDefs['PCI_VENDOR_ID']] if 'PCI_VENDOR_ID' in MDefs else [],\r
+          'module_pci_device_id'              : [MDefs['PCI_DEVICE_ID']] if 'PCI_DEVICE_ID' in MDefs else [],\r
+          'module_pci_class_code'             : [MDefs['PCI_CLASS_CODE']] if 'PCI_CLASS_CODE' in MDefs else [],\r
+          'module_pci_revision'               : [MDefs['PCI_REVISION']] if 'PCI_REVISION' in MDefs else [],\r
+          'module_build_number'               : [MDefs['BUILD_NUMBER']] if 'BUILD_NUMBER' in MDefs else [],\r
+          'module_spec'                       : [MDefs['SPEC']] if 'SPEC' in MDefs else [],\r
+          'module_uefi_hii_resource_section'  : [MDefs['UEFI_HII_RESOURCE_SECTION']] if 'UEFI_HII_RESOURCE_SECTION' in MDefs else [],\r
+          'module_uni_file'                   : [MDefs['MODULE_UNI_FILE']] if 'MODULE_UNI_FILE' in MDefs else [],\r
           'module_arch'                       : self.Arch,\r
           'package_item'                      : ['%s' % (Package.MetaFile.File.replace('\\','/')) for Package in Packages],\r
           'binary_item'                       : [],\r
@@ -2990,7 +3211,12 @@ class ModuleAutoGen(AutoGen):
           'flags_item'                        : [],\r
           'libraryclasses_item'               : []\r
         }\r
-        AsBuiltInfDict['module_inf_version'] = '0x%08x' % self.AutoGenVersion\r
+\r
+        if self.AutoGenVersion > int(gInfSpecVersion, 0):\r
+            AsBuiltInfDict['module_inf_version'] = '0x%08x' % self.AutoGenVersion\r
+        else:\r
+            AsBuiltInfDict['module_inf_version'] = gInfSpecVersion\r
+\r
         if DriverType:\r
             AsBuiltInfDict['pcd_is_driver_string'] += [DriverType]\r
 \r
@@ -3036,6 +3262,8 @@ class ModuleAutoGen(AutoGen):
                 StartPos = Index\r
                 break\r
         AsBuiltInfDict['header_comments'] = '\n'.join(HeaderComments[StartPos:]).replace(':#', '://')\r
+        AsBuiltInfDict['tail_comments'] = '\n'.join(self.Module.TailComments)\r
+\r
         GenList = [\r
             (self.ProtocolList, self._ProtocolComments, 'protocol_item'),\r
             (self.PpiList, self._PpiComments, 'ppi_item'),\r
@@ -3116,28 +3344,42 @@ class ModuleAutoGen(AutoGen):
                 if PcdComments:\r
                     PcdItem = PcdComments + '\n  ' + PcdItem\r
                 AsBuiltInfDict['patchablepcd_item'].append(PcdItem)\r
-        for Pcd in Pcds:\r
+\r
+        HiiPcds = []\r
+        for Pcd in Pcds + VfrPcds:\r
             PcdComments = ''\r
             PcdCommentList = []\r
             HiiInfo = ''\r
+            SkuId = ''\r
             if Pcd.Type == TAB_PCDS_DYNAMIC_EX_HII:\r
                 for SkuName in Pcd.SkuInfoList:\r
                     SkuInfo = Pcd.SkuInfoList[SkuName]\r
+                    SkuId = SkuInfo.SkuId\r
                     HiiInfo = '## %s|%s|%s' % (SkuInfo.VariableName, SkuInfo.VariableGuid, SkuInfo.VariableOffset)\r
                     break\r
+            if SkuId:\r
+                #\r
+                # Don't generate duplicated HII PCD\r
+                #\r
+                if (SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName) in HiiPcds:\r
+                    continue\r
+                else:\r
+                    HiiPcds.append((SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName))\r
             if (Pcd.TokenSpaceGuidCName, Pcd.TokenCName) in self._PcdComments:\r
                 PcdCommentList = self._PcdComments[Pcd.TokenSpaceGuidCName, Pcd.TokenCName][:]\r
             if HiiInfo:\r
                 UsageIndex = -1\r
+                UsageStr = ''\r
                 for Index, Comment in enumerate(PcdCommentList):\r
                     for Usage in UsageList:\r
                         if Comment.find(Usage) != -1:\r
+                            UsageStr = Usage\r
                             UsageIndex = Index\r
                             break\r
                 if UsageIndex != -1:\r
-                    PcdCommentList[UsageIndex] = PcdCommentList[UsageIndex] + ' ' + HiiInfo\r
+                    PcdCommentList[UsageIndex] = '## %s %s %s' % (UsageStr, HiiInfo, PcdCommentList[UsageIndex].replace(UsageStr, '')) \r
                 else:\r
-                    PcdCommentList.append('## ' + HiiInfo)\r
+                    PcdCommentList.append('## UNDEFINED ' + HiiInfo)\r
             PcdComments = '\n  '.join(PcdCommentList)\r
             PcdEntry = Pcd.TokenSpaceGuidCName + '.' + Pcd.TokenCName\r
             if PcdComments:\r
@@ -3146,6 +3388,16 @@ class ModuleAutoGen(AutoGen):
         for Item in self.BuildOption:\r
           if 'FLAGS' in self.BuildOption[Item]:\r
             AsBuiltInfDict['flags_item'] += ['%s:%s_%s_%s_%s_FLAGS = %s' % (self.ToolChainFamily, self.BuildTarget, self.ToolChain, self.Arch, Item, self.BuildOption[Item]['FLAGS'].strip())]\r
+\r
+        # Generated LibraryClasses section in comments.\r
+        for Library in self.LibraryAutoGenList:\r
+            AsBuiltInfDict['libraryclasses_item'] += [Library.MetaFile.File.replace('\\', '/')]\r
+        \r
+        # Generated depex expression section in comments.\r
+        AsBuiltInfDict['depexsection_item'] = ''\r
+        DepexExpresion = self._GetDepexExpresionString()\r
+        if DepexExpresion:\r
+            AsBuiltInfDict['depexsection_item'] = DepexExpresion\r
         \r
         AsBuiltInf = TemplateString()\r
         AsBuiltInf.Append(gAsBuiltInfHeaderString.Replace(AsBuiltInfDict))\r
index 0ad368a4cec560614cd72c54fc05794f94c546e2..50bee0dbc114a71c84d32870737e1881ce4f2dab 100644 (file)
@@ -247,6 +247,7 @@ MODULE_FILE = ${module_file}
 MODULE_FILE_BASE_NAME = ${module_file_base_name}\r
 BASE_NAME = $(MODULE_NAME)\r
 MODULE_RELATIVE_DIR = ${module_relative_directory}\r
+PACKAGE_RELATIVE_DIR = ${package_relative_directory}\r
 MODULE_DIR = $(WORKSPACE)${separator}${module_relative_directory}\r
 \r
 MODULE_ENTRY_POINT = ${module_entry_point}\r
@@ -552,6 +553,10 @@ cleanlib:
             Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":os.path.join(D, MakefileName)}\r
             LibraryMakeCommandList.append(Command)\r
 \r
+        package_rel_dir = self._AutoGenObject.SourceDir\r
+        if os.sep in package_rel_dir:\r
+            package_rel_dir = package_rel_dir[package_rel_dir.index(os.sep) + 1:]\r
+\r
         MakefileTemplateDict = {\r
             "makefile_header"           : self._FILE_HEADER_[self._FileType],\r
             "makefile_path"             : os.path.join("$(MODULE_BUILD_DIR)", MakefileName),\r
@@ -569,7 +574,8 @@ cleanlib:
             "module_file"               : self._AutoGenObject.MetaFile.Name,\r
             "module_file_base_name"     : self._AutoGenObject.MetaFile.BaseName,\r
             "module_relative_directory" : self._AutoGenObject.SourceDir,\r
-            "module_extra_defines"      : ["%s = %s" % (k, v) for k,v in self._AutoGenObject.Module.Defines.iteritems()],\r
+            "package_relative_directory": package_rel_dir,\r
+            "module_extra_defines"      : ["%s = %s" % (k, v) for k, v in self._AutoGenObject.Module.Defines.iteritems()],\r
 \r
             "architecture"              : self._AutoGenObject.Arch,\r
             "toolchain_tag"             : self._AutoGenObject.ToolChain,\r
@@ -1177,7 +1183,8 @@ cleanlib:
     def GetModuleBuildDirectoryList(self):\r
         DirList = []\r
         for ModuleAutoGen in self._AutoGenObject.ModuleAutoGenList:\r
-            DirList.append(os.path.join(self._AutoGenObject.BuildDir, ModuleAutoGen.BuildDir))\r
+            if not ModuleAutoGen.IsBinaryModule:\r
+                DirList.append(os.path.join(self._AutoGenObject.BuildDir, ModuleAutoGen.BuildDir))\r
         return DirList\r
 \r
     ## Get the root directory list for intermediate files of all libraries build\r
@@ -1187,7 +1194,8 @@ cleanlib:
     def GetLibraryBuildDirectoryList(self):\r
         DirList = []\r
         for LibraryAutoGen in self._AutoGenObject.LibraryAutoGenList:\r
-            DirList.append(os.path.join(self._AutoGenObject.BuildDir, LibraryAutoGen.BuildDir))\r
+            if not LibraryAutoGen.IsBinaryModule:\r
+                DirList.append(os.path.join(self._AutoGenObject.BuildDir, LibraryAutoGen.BuildDir))\r
         return DirList\r
 \r
     _TemplateDict = property(_CreateTemplateDict)\r
@@ -1200,7 +1208,7 @@ cleanlib:
 #\r
 class TopLevelMakefile(BuildFile):\r
     ## template used to generate toplevel makefile\r
-    _TEMPLATE_ = TemplateString('''${BEGIN}\tGenFds -f ${fdf_file} -o ${platform_build_directory} -t ${toolchain_tag} -b ${build_target} -p ${active_platform} -a ${build_architecture_list} ${extra_options}${END}${BEGIN} -r ${fd} ${END}${BEGIN} -i ${fv} ${END}${BEGIN} -C ${cap} ${END}${BEGIN} -D ${macro} ${END}''')\r
+    _TEMPLATE_ = TemplateString('''${BEGIN}\tGenFds -f ${fdf_file} --conf=${conf_directory} -o ${platform_build_directory} -t ${toolchain_tag} -b ${build_target} -p ${active_platform} -a ${build_architecture_list} ${extra_options}${END}${BEGIN} -r ${fd} ${END}${BEGIN} -i ${fv} ${END}${BEGIN} -C ${cap} ${END}${BEGIN} -D ${macro} ${END}''')\r
 \r
     ## Constructor of TopLevelMakefile\r
     #\r
@@ -1258,6 +1266,9 @@ class TopLevelMakefile(BuildFile):
         if GlobalData.gCaseInsensitive:\r
             ExtraOption += " -c"\r
 \r
+        if GlobalData.gIgnoreSource:\r
+            ExtraOption += " --ignore-sources"\r
+\r
         MakefileName = self._FILE_NAME_[self._FileType]\r
         SubBuildCommandList = []\r
         for A in PlatformInfo.ArchList:\r
@@ -1272,6 +1283,7 @@ class TopLevelMakefile(BuildFile):
             "platform_guid"             : PlatformInfo.Guid,\r
             "platform_version"          : PlatformInfo.Version,\r
             "platform_build_directory"  : PlatformInfo.BuildDir,\r
+            "conf_directory"            : GlobalData.gConfDirectory,\r
 \r
             "toolchain_tag"             : PlatformInfo.ToolChain,\r
             "build_target"              : PlatformInfo.BuildTarget,\r
@@ -1301,7 +1313,8 @@ class TopLevelMakefile(BuildFile):
     def GetModuleBuildDirectoryList(self):\r
         DirList = []\r
         for ModuleAutoGen in self._AutoGenObject.ModuleAutoGenList:\r
-            DirList.append(os.path.join(self._AutoGenObject.BuildDir, ModuleAutoGen.BuildDir))\r
+            if not ModuleAutoGen.IsBinaryModule:\r
+                DirList.append(os.path.join(self._AutoGenObject.BuildDir, ModuleAutoGen.BuildDir))\r
         return DirList\r
 \r
     ## Get the root directory list for intermediate files of all libraries build\r
@@ -1311,7 +1324,8 @@ class TopLevelMakefile(BuildFile):
     def GetLibraryBuildDirectoryList(self):\r
         DirList = []\r
         for LibraryAutoGen in self._AutoGenObject.LibraryAutoGenList:\r
-            DirList.append(os.path.join(self._AutoGenObject.BuildDir, LibraryAutoGen.BuildDir))\r
+            if not LibraryAutoGen.IsBinaryModule:\r
+                DirList.append(os.path.join(self._AutoGenObject.BuildDir, LibraryAutoGen.BuildDir))\r
         return DirList\r
 \r
     _TemplateDict = property(_CreateTemplateDict)\r
diff --git a/BaseTools/Source/Python/AutoGen/InfSectionParser.py b/BaseTools/Source/Python/AutoGen/InfSectionParser.py
new file mode 100644 (file)
index 0000000..7f78236
--- /dev/null
@@ -0,0 +1,107 @@
+## @file\r
+# Parser a Inf file and Get specify section data.\r
+#\r
+# Copyright (c) 2007 - 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
+# 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
+## Import Modules\r
+#\r
+\r
+import Common.EdkLogger as EdkLogger\r
+from Common.BuildToolError import *\r
+from Common.DataType import *\r
\r
+\r
+class InfSectionParser():\r
+    def __init__(self, FilePath):\r
+        self._FilePath = FilePath\r
+        self._FileSectionDataList = []\r
+        self._ParserInf()\r
+    \r
+    def _ParserInf(self):\r
+        Filename = self._FilePath\r
+        FileLinesList = []\r
+        UserExtFind = False\r
+        FindEnd = True\r
+        FileLastLine = False\r
+        SectionLine = ''\r
+        SectionData = []\r
+        \r
+        try:\r
+            FileLinesList = open(Filename, "r", 0).readlines()\r
+        except BaseException:\r
+            EdkLogger.error("build", AUTOGEN_ERROR, 'File %s is opened failed.' % Filename)\r
+        \r
+        for Index in range(0, len(FileLinesList)):\r
+            line = str(FileLinesList[Index]).strip()\r
+            if Index + 1 == len(FileLinesList):\r
+                FileLastLine = True\r
+                NextLine = ''\r
+            else:\r
+                NextLine = str(FileLinesList[Index + 1]).strip()\r
+            if UserExtFind and FindEnd == False:\r
+                if line:\r
+                    SectionData.append(line)\r
+            if line.lower().startswith(TAB_SECTION_START) and line.lower().endswith(TAB_SECTION_END):\r
+                SectionLine = line\r
+                UserExtFind = True\r
+                FindEnd = False\r
+            \r
+            if (NextLine != '' and NextLine[0] == TAB_SECTION_START and \\r
+                NextLine[-1] == TAB_SECTION_END) or FileLastLine:\r
+                UserExtFind = False\r
+                FindEnd = True\r
+                self._FileSectionDataList.append({SectionLine: SectionData[:]})\r
+                SectionData = []\r
+                SectionLine = ''\r
+    \r
+\r
+    # Get depex expresion\r
+    #\r
+    # @return: a list include some dictionary that key is section and value is a list contain all data.\r
+    def GetDepexExpresionList(self):\r
+        DepexExpresionList = []\r
+        if not self._FileSectionDataList:\r
+            return DepexExpresionList\r
+        for SectionDataDict in self._FileSectionDataList:\r
+            for key in SectionDataDict.keys():\r
+                if key.lower() == "[depex]" or key.lower().startswith("[depex."):\r
+                    SectionLine = key.lstrip(TAB_SECTION_START).rstrip(TAB_SECTION_END)\r
+                    SubSectionList = [SectionLine]\r
+                    if str(SectionLine).find(TAB_COMMA_SPLIT) > -1:\r
+                        SubSectionList = str(SectionLine).split(TAB_COMMA_SPLIT)\r
+                    for SubSection in SubSectionList:\r
+                        SectionList = SubSection.split(TAB_SPLIT)\r
+                        SubKey = ()\r
+                        if len(SectionList) == 1:\r
+                            SubKey = (TAB_ARCH_COMMON, TAB_ARCH_COMMON)\r
+                        elif len(SectionList) == 2:\r
+                            SubKey = (SectionList[1], TAB_ARCH_COMMON)\r
+                        elif len(SectionList) == 3:\r
+                            SubKey = (SectionList[1], SectionList[2])\r
+                        else:\r
+                            EdkLogger.error("build", AUTOGEN_ERROR, 'Section %s is invalid.' % key)\r
+                        DepexExpresionList.append({SubKey: SectionDataDict[key]})\r
+        return DepexExpresionList\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
index 20af015bcf254c7e1d0e0ddf9766fc8c2365d21a..48c396a9aa969785a38f3e4e51945521f98ecabc 100644 (file)
@@ -1,3 +1,7 @@
+## @file\r
+# This file is used to parse a strings file and create or add to a string database \r
+# file.\r
+#\r
 # Copyright (c) 2007 - 2014, 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
@@ -7,10 +11,6 @@
 # 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
-#This file is used to parse a strings file and create or add to a string database file.\r
-#\r
-\r
 ##\r
 # Import Modules\r
 #\r
index e676ad6ec87302ef064d8997d7c00aea1e08a050..58f865ed8bd4ce99e8e049e5789bcf3018741343 100644 (file)
@@ -1,3 +1,6 @@
+## @file\r
+# This file is used to collect all defined strings in multiple uni files\r
+#\r
 # Copyright (c) 2007 - 2014, 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
@@ -7,10 +10,6 @@
 # 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
-#This file is used to collect all defined strings in multiple uni files\r
-#\r
-\r
 ##\r
 # Import Modules\r
 #\r
index f1408569e0ecc792b0542a47ec0812a5da0e5460..57e5063ff2f1e783b1240657c9aa192d460a91fe 100644 (file)
@@ -373,7 +373,7 @@ TAB_INF_GUIDTYPE_TSG = 'TokenSpaceGuid'
 TAB_INF_GUIDTYPE_VAR = 'Variable'\r
 TAB_INF_GUIDTYPE_PROTOCOL = 'PROTOCOL'\r
 TAB_INF_GUIDTYPE_PPI = 'PPI'\r
-TAB_INF_GUIDTYPE_UNDEFINED = 'UNDEFINED'\r
+TAB_INF_USAGE_UNDEFINED = 'UNDEFINED'\r
 \r
 #\r
 # Dec Definitions\r
index 1f9d91c5d8025d8099ad1c1ecaea44e7708df930..218034ba33b39acb3913908c9f38e46f140a310f 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # This file is used to define common static strings used by INF/DEC/DSC files\r
 #\r
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2014, 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
@@ -69,3 +69,11 @@ gIgnoreSource = False
 # FDF parser\r
 #\r
 gFdfParser = None\r
+\r
+#\r
+# If a module is built more than once with different PCDs or library classes\r
+# a temporary INF file with same content is created, the temporary file is removed\r
+# when build exits.\r
+#\r
+gTempInfs = []\r
+\r
index e9e41de02e8e1a322c6be1876dfe22c750a486b9..01297cd0a916f0e50fad79fc405150c38c0cf916 100644 (file)
@@ -23,6 +23,7 @@ import time
 import re\r
 import cPickle\r
 import array\r
+import shutil\r
 from UserDict import IterableUserDict\r
 from UserList import UserList\r
 \r
@@ -43,6 +44,90 @@ gFileTimeStampCache = {}    # {file path : file time stamp}
 ## Dictionary used to store dependencies of files\r
 gDependencyDatabase = {}    # arch : {file path : [dependent files list]}\r
 \r
+## Routine to process duplicated INF\r
+#\r
+#  This function is called by following two cases:\r
+#  Case 1 in DSC:\r
+#    [components.arch]\r
+#    Pkg/module/module.inf\r
+#    Pkg/module/module.inf {\r
+#      <Defines>\r
+#        FILE_GUID = 0D1B936F-68F3-4589-AFCC-FB8B7AEBC836\r
+#    }\r
+#  Case 2 in FDF:\r
+#    INF Pkg/module/module.inf\r
+#    INF FILE_GUID = 0D1B936F-68F3-4589-AFCC-FB8B7AEBC836 Pkg/module/module.inf\r
+#\r
+#  This function copies Pkg/module/module.inf to\r
+#  Conf/.cache/0D1B936F-68F3-4589-AFCC-FB8B7AEBC836module.inf\r
+#\r
+#  @param Path     Original PathClass object\r
+#  @param BaseName New file base name\r
+#\r
+#  @retval         return the new PathClass object\r
+#\r
+def ProcessDuplicatedInf(Path, BaseName, Workspace):\r
+    Filename = os.path.split(Path.File)[1]\r
+    if '.' in Filename:\r
+        Filename = BaseName + Path.BaseName + Filename[Filename.rfind('.'):]\r
+    else:\r
+        Filename = BaseName + Path.BaseName\r
+\r
+    #\r
+    # If -N is specified on command line, cache is disabled\r
+    # The directory has to be created\r
+    #\r
+    DbDir = os.path.split(GlobalData.gDatabasePath)[0]\r
+    if not os.path.exists(DbDir):\r
+        os.makedirs(DbDir)\r
+    #\r
+    # A temporary INF is copied to database path which must have write permission\r
+    # The temporary will be removed at the end of build\r
+    # In case of name conflict, the file name is \r
+    # FILE_GUIDBaseName (0D1B936F-68F3-4589-AFCC-FB8B7AEBC836module.inf)\r
+    #\r
+    TempFullPath = os.path.join(DbDir,\r
+                                Filename)\r
+    RtPath = PathClass(Path.File, Workspace)\r
+    #\r
+    # Modify the full path to temporary path, keep other unchanged\r
+    #\r
+    # To build same module more than once, the module path with FILE_GUID overridden has\r
+    # the file name FILE_GUIDmodule.inf, but the relative path (self.MetaFile.File) is the real path\r
+    # in DSC which is used as relative path by C files and other files in INF. \r
+    # A trick was used: all module paths are PathClass instances, after the initialization\r
+    # of PathClass, the PathClass.Path is overridden by the temporary INF path.\r
+    #\r
+    # The reason for creating a temporary INF is:\r
+    # Platform.Modules which is the base to create ModuleAutoGen objects is a dictionary,\r
+    # the key is the full path of INF, the value is an object to save overridden library instances, PCDs.\r
+    # A different key for the same module is needed to create different output directory,\r
+    # retrieve overridden PCDs, library instances.\r
+    #\r
+    # The BaseName is the FILE_GUID which is also the output directory name.\r
+    #\r
+    #\r
+    RtPath.Path = TempFullPath\r
+    RtPath.BaseName = BaseName\r
+    #\r
+    # If file exists, compare contents\r
+    #\r
+    if os.path.exists(TempFullPath):\r
+        with open(str(Path), 'rb') as f1: Src = f1.read()\r
+        with open(TempFullPath, 'rb') as f2: Dst = f2.read()\r
+        if Src == Dst:\r
+            return RtPath\r
+    GlobalData.gTempInfs.append(TempFullPath)\r
+    shutil.copy2(str(Path), TempFullPath)\r
+    return RtPath\r
+\r
+## Remove temporary created INFs whose paths were saved in gTempInfs\r
+#\r
+def ClearDuplicatedInf():\r
+    for File in GlobalData.gTempInfs:\r
+        if os.path.exists(File):\r
+            os.remove(File)\r
+\r
 ## callback routine for processing variable option\r
 #\r
 # This function can be used to process variable number of option values. The\r
@@ -1456,6 +1541,45 @@ def CommonPath(PathList):
             return os.path.sep.join(P1[:Index])\r
     return os.path.sep.join(P1)\r
 \r
+#\r
+# Convert string to C format array\r
+#\r
+def ConvertStringToByteArray(Value):\r
+    Value = Value.strip()\r
+    if not Value:\r
+        return None\r
+    if Value[0] == '{':\r
+        if not Value.endswith('}'):\r
+            return None\r
+        Value = Value.replace(' ', '').replace('{', '').replace('}', '')\r
+        ValFields = Value.split(',')\r
+        try:\r
+            for Index in range(len(ValFields)):\r
+                ValFields[Index] = str(int(ValFields[Index], 0))\r
+        except ValueError:\r
+            return None\r
+        Value = '{' + ','.join(ValFields) + '}'\r
+        return Value\r
+\r
+    Unicode = False\r
+    if Value.startswith('L"'):\r
+        if not Value.endswith('"'):\r
+            return None\r
+        Value = Value[1:]\r
+        Unicode = True\r
+    elif not Value.startswith('"') or not Value.endswith('"'):\r
+        return None\r
+\r
+    Value = eval(Value)         # translate escape character\r
+    NewValue = '{'\r
+    for Index in range(0,len(Value)):\r
+        if Unicode:\r
+            NewValue = NewValue + str(ord(Value[Index]) % 0x10000) + ','\r
+        else:\r
+            NewValue = NewValue + str(ord(Value[Index]) % 0x100) + ','\r
+    Value = NewValue + '0}'\r
+    return Value\r
+\r
 class PathClass(object):\r
     def __init__(self, File='', Root='', AlterRoot='', Type='', IsBinary=False,\r
                  Arch='COMMON', ToolChainFamily='', Target='', TagName='', ToolCode=''):\r
index 89e393708625a7eb4a019db1a0ecdc8f6a8edc08..387e5152309743b36c38b859e00f08c022b4eaa1 100644 (file)
@@ -21,7 +21,7 @@ from BuildToolError import *
 import GlobalData\r
 from Common.LongFilePathSupport import OpenLongFilePath as open\r
 \r
-gDefaultTargetTxtFile = "Conf/target.txt"\r
+gDefaultTargetTxtFile = "target.txt"\r
 \r
 ## TargetTxtClassObject\r
 #\r
@@ -44,6 +44,7 @@ class TargetTxtClassObject(object):
             DataType.TAB_TAT_DEFINES_TARGET_ARCH                                : [],\r
             DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF                            : '',\r
         }\r
+        self.ConfDirectoryPath = ""\r
         if Filename != None:\r
             self.LoadTargetTxtFile(Filename)\r
 \r
@@ -78,7 +79,8 @@ class TargetTxtClassObject(object):
     def ConvertTextFileToDict(self, FileName, CommentCharacter, KeySplitCharacter):\r
         F = None\r
         try:\r
-            F = open(FileName,'r')\r
+            F = open(FileName, 'r')\r
+            self.ConfDirectoryPath = os.path.dirname(FileName)\r
         except:\r
             EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=FileName)\r
             if F != None:\r
@@ -99,6 +101,26 @@ class TargetTxtClassObject(object):
             if Key in [DataType.TAB_TAT_DEFINES_ACTIVE_PLATFORM, DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF, \\r
                        DataType.TAB_TAT_DEFINES_ACTIVE_MODULE, DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF]:\r
                 self.TargetTxtDictionary[Key] = Value.replace('\\', '/')\r
+                if Key == DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF and self.TargetTxtDictionary[Key]:\r
+                    if self.TargetTxtDictionary[Key].startswith("Conf/"):\r
+                        Tools_Def = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].strip())\r
+                        if not os.path.exists(Tools_Def) or not os.path.isfile(Tools_Def):\r
+                            # If Conf/Conf does not exist, try just the Conf/ directory\r
+                            Tools_Def = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].replace("Conf/", "", 1).strip())\r
+                    else:\r
+                        # The File pointed to by TOOL_CHAIN_CONF is not in a Conf/ directory\r
+                        Tools_Def = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].strip())\r
+                    self.TargetTxtDictionary[Key] = Tools_Def\r
+                if Key == DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF and self.TargetTxtDictionary[Key]:\r
+                    if self.TargetTxtDictionary[Key].startswith("Conf/"):\r
+                        Build_Rule = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].strip())\r
+                        if not os.path.exists(Build_Rule) or not os.path.isfile(Build_Rule):\r
+                            # If Conf/Conf does not exist, try just the Conf/ directory\r
+                            Build_Rule = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].replace("Conf/", "", 1).strip())\r
+                    else:\r
+                        # The File pointed to by BUILD_RULE_CONF is not in a Conf/ directory\r
+                        Build_Rule = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].strip())\r
+                    self.TargetTxtDictionary[Key] = Build_Rule\r
             elif Key in [DataType.TAB_TAT_DEFINES_TARGET, DataType.TAB_TAT_DEFINES_TARGET_ARCH, \\r
                          DataType.TAB_TAT_DEFINES_TOOL_CHAIN_TAG]:\r
                 self.TargetTxtDictionary[Key] = Value.split()\r
@@ -144,15 +166,15 @@ class TargetTxtClassObject(object):
                         print Item\r
 ## TargetTxtDict\r
 #\r
-# Load target.txt in input workspace dir\r
+# Load target.txt in input Conf dir\r
 #\r
-# @param WorkSpace:  Workspace dir\r
+# @param ConfDir:  Conf dir\r
 #\r
 # @retval Target An instance of TargetTxtClassObject() with loaded target.txt\r
 #\r
-def TargetTxtDict(WorkSpace):\r
+def TargetTxtDict(ConfDir):\r
     Target = TargetTxtClassObject()\r
-    Target.LoadTargetTxtFile(os.path.normpath(os.path.join(WorkSpace, gDefaultTargetTxtFile)))\r
+    Target.LoadTargetTxtFile(os.path.normpath(os.path.join(ConfDir, gDefaultTargetTxtFile)))\r
     return Target\r
 \r
 ##\r
index 583d51b51306a74eca0d0ed772e265c0099fac71..4fefbd91e0a0d95224af6e1796c23480f4bb8dfe 100644 (file)
@@ -29,7 +29,7 @@ from Common.LongFilePathSupport import OpenLongFilePath as open
 gMacroRefPattern = re.compile('(DEF\([^\(\)]+\))')\r
 gEnvRefPattern = re.compile('(ENV\([^\(\)]+\))')\r
 gMacroDefPattern = re.compile("DEFINE\s+([^\s]+)")\r
-gDefaultToolsDefFile = "Conf/tools_def.txt"\r
+gDefaultToolsDefFile = "tools_def.txt"\r
 \r
 ## ToolDefClassObject\r
 #\r
@@ -196,18 +196,23 @@ class ToolDefClassObject(object):
 \r
 ## ToolDefDict\r
 #\r
-# Load tools_def.txt in input workspace dir\r
+# Load tools_def.txt in input Conf dir\r
 #\r
-# @param WorkSpace:  Workspace dir\r
+# @param ConfDir:  Conf dir\r
 #\r
 # @retval ToolDef An instance of ToolDefClassObject() with loaded tools_def.txt\r
 #\r
-def ToolDefDict(WorkSpace):\r
-    Target = TargetTxtDict(WorkSpace)\r
+def ToolDefDict(ConfDir):\r
+    Target = TargetTxtDict(ConfDir)\r
     ToolDef = ToolDefClassObject()\r
     if DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF in Target.TargetTxtDictionary:\r
-        gDefaultToolsDefFile = Target.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF]\r
-    ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(WorkSpace, gDefaultToolsDefFile)))\r
+        ToolsDefFile = Target.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF]\r
+        if ToolsDefFile:\r
+            ToolDef.LoadToolDefFile(os.path.normpath(ToolsDefFile))\r
+        else:\r
+            ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(ConfDir, gDefaultToolsDefFile)))\r
+    else:\r
+        ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(ConfDir, gDefaultToolsDefFile)))\r
     return ToolDef\r
 \r
 ##\r
index 2cc09ff333693ad9f81c26d7c6961bf625f28536..3f6c3c65a58209c4df448c494f0ce704d21bfe84 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # This file is used to define class for data structure used in ECC\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2008 - 2014, 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
@@ -29,6 +29,7 @@ MODEL_FILE_DSC = 1013
 MODEL_FILE_FDF = 1014\r
 MODEL_FILE_INC = 1015\r
 MODEL_FILE_CIF = 1016\r
+MODEL_FILE_UNI = 1017\r
 MODEL_FILE_OTHERS = 1099\r
 \r
 MODEL_IDENTIFIER_FILE_HEADER = 2001\r
index 9d9c9cfdf7ea0b1a9a596c30f6d70a19bdcbe1b6..fac58d14f82b0fc58e1aa6bb77f699acd43c5128 100644 (file)
@@ -18,7 +18,7 @@
 from Ffs import Ffs\r
 import Section\r
 import subprocess\r
-import os\r
+import Common.LongFilePathOs as os\r
 from GenFdsGlobalVariable import GenFdsGlobalVariable\r
 from CommonDataClass.FdfClass import CompressSectionClassObject\r
 \r
index c048efe47801bd65667e8b254f8f411cd4ef8620..8f78c0fad474fb38829160b94cd3331c4127dea1 100644 (file)
@@ -24,6 +24,7 @@ from CommonDataClass.FdfClass import DepexSectionClassObject
 from AutoGen.GenDepex import DependencyExpression\r
 from Common import EdkLogger\r
 from Common.BuildToolError import *\r
+from Common.Misc import PathClass\r
 \r
 ## generate data section\r
 #\r
@@ -38,10 +39,22 @@ class DepexSection (DepexSectionClassObject):
 \r
     def __FindGuidValue(self, CName):\r
         for Arch in GenFdsGlobalVariable.ArchList:\r
-            for PkgDb in GenFdsGlobalVariable.WorkSpace.GetPackageList(GenFdsGlobalVariable.ActivePlatform, \r
-                                                                       Arch, \r
-                                                                       GenFdsGlobalVariable.TargetName, \r
-                                                                       GenFdsGlobalVariable.ToolChainTag):\r
+            PkgList = GenFdsGlobalVariable.WorkSpace.GetPackageList(GenFdsGlobalVariable.ActivePlatform,\r
+                                                                    Arch,\r
+                                                                    GenFdsGlobalVariable.TargetName,\r
+                                                                    GenFdsGlobalVariable.ToolChainTag)\r
+            for Inf in GenFdsGlobalVariable.FdfParser.Profile.InfList:\r
+                ModuleFile = PathClass(Inf, GenFdsGlobalVariable.WorkSpaceDir)\r
+                ModuleData = GenFdsGlobalVariable.WorkSpace.BuildObject[\r
+                                                            ModuleFile,\r
+                                                            Arch,\r
+                                                            GenFdsGlobalVariable.TargetName,\r
+                                                            GenFdsGlobalVariable.ToolChainTag\r
+                                                            ]\r
+                for Pkg in ModuleData.Packages:\r
+                    if Pkg not in PkgList:\r
+                        PkgList.append(Pkg)\r
+            for PkgDb in PkgList:\r
                 if CName in PkgDb.Ppis:\r
                     return PkgDb.Ppis[CName]\r
                 if CName in PkgDb.Protocols:\r
index 15ebac5705d6b0bf20750cba71168e8f6d88686e..8f61c4d2dbf670a39d76c15a0ae396bf5c1958bd 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # process rule section generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -211,10 +211,10 @@ class EfiSection (EfiSectionClassObject):
             """If File List is empty"""\r
             if FileList == [] :\r
                 if self.Optional == True:\r
-                     GenFdsGlobalVariable.VerboseLogger( "Optional Section don't exist!")\r
-                     return [], None\r
+                    GenFdsGlobalVariable.VerboseLogger("Optional Section don't exist!")\r
+                    return [], None\r
                 else:\r
-                     EdkLogger.error("GenFds", GENFDS_ERROR, "Output file for %s section could not be found for %s" % (SectionType, InfFileName))\r
+                    EdkLogger.error("GenFds", GENFDS_ERROR, "Output file for %s section could not be found for %s" % (SectionType, InfFileName))\r
 \r
             else:\r
                 """Convert the File to Section file one by one """\r
index 01dab7bdabac4075688fbddfb19ae264548fea0a..f4ccda9374232091f6f251bc352ce0d1acfecfb7 100644 (file)
@@ -218,6 +218,7 @@ class FdfParser:
         self.CurrentFvName = None\r
         self.__Token = ""\r
         self.__SkippedChars = ""\r
+        GlobalData.gFdfParser = self\r
 \r
         # Used to section info\r
         self.__CurSection = []\r
@@ -2356,6 +2357,9 @@ class FdfParser:
         ffsInf.CurrentLineNum = self.CurrentLineNumber\r
         ffsInf.CurrentLineContent = self.__CurrentLine()\r
 \r
+        #Replace $(SAPCE) with real space\r
+        ffsInf.InfFileName = ffsInf.InfFileName.replace('$(SPACE)', ' ')\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
@@ -2391,6 +2395,12 @@ class FdfParser:
     #   @param  FfsInfObj   for whom option is got\r
     #\r
     def __GetInfOptions(self, FfsInfObj):\r
+        if self.__IsKeyword("FILE_GUID"):\r
+            if not self.__IsToken("="):\r
+                raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
+            if not self.__GetNextGuid():\r
+                raise Warning("expected GUID value", self.FileName, self.CurrentLineNumber)\r
+            FfsInfObj.OverrideGuid = self.__Token\r
 \r
         if self.__IsKeyword( "RuleOverride"):\r
             if not self.__IsToken( "="):\r
@@ -2426,8 +2436,8 @@ class FdfParser:
 \r
                 \r
         if self.__GetNextToken():\r
-            p = re.compile(r'([a-zA-Z0-9\-]+|\$\(TARGET\)|\*)_([a-zA-Z0-9\-]+|\$\(TOOL_CHAIN_TAG\)|\*)_([a-zA-Z0-9\-]+|\$\(ARCH\)|\*)')\r
-            if p.match(self.__Token):\r
+            p = re.compile(r'([a-zA-Z0-9\-]+|\$\(TARGET\)|\*)_([a-zA-Z0-9\-]+|\$\(TOOL_CHAIN_TAG\)|\*)_([a-zA-Z0-9\-]+|\$\(ARCH\))')\r
+            if p.match(self.__Token) and p.match(self.__Token).span()[1] == len(self.__Token):\r
                 FfsInfObj.KeyStringList.append(self.__Token)\r
                 if not self.__IsToken(","):\r
                     return\r
@@ -2576,7 +2586,7 @@ class FdfParser:
         else:\r
             FfsFileObj.CurrentLineNum = self.CurrentLineNumber\r
             FfsFileObj.CurrentLineContent = self.__CurrentLine()\r
-            FfsFileObj.FileName = self.__Token\r
+            FfsFileObj.FileName = self.__Token.replace('$(SPACE)', ' ')\r
             self.__VerifyFile(FfsFileObj.FileName)\r
 \r
         if not self.__IsToken( "}"):\r
index a765f9e04af8540e92babb90b3689d419e46c853..cd099196d089f98eace4dc682a93500e144d55e6 100644 (file)
@@ -92,6 +92,8 @@ class FileStatement (FileStatementClassObject) :
 \r
         elif self.FileName != None:\r
             self.FileName = GenFdsGlobalVariable.ReplaceWorkspaceMacro(self.FileName)\r
+            #Replace $(SAPCE) with real space\r
+            self.FileName = self.FileName.replace('$(SPACE)', ' ')\r
             SectionFiles = [GenFdsGlobalVariable.MacroExtend(self.FileName, Dict)]\r
 \r
         else:\r
index a7a65919d7cd977d6f3c12f5769e01cb66f362e1..cc85a32796d2e2b4e0200ada753bcf4dbfa47d83 100644 (file)
@@ -30,6 +30,7 @@ from CommonDataClass.FdfClass import FfsInfStatementClassObject
 from Common.String import *\r
 from Common.Misc import PathClass\r
 from Common.Misc import GuidStructureByteArrayToGuidString\r
+from Common.Misc import ProcessDuplicatedInf\r
 from Common import EdkLogger\r
 from Common.BuildToolError import *\r
 from GuidSection import GuidSection\r
@@ -64,6 +65,8 @@ class FfsInfStatement(FfsInfStatementClassObject):
         self.CurrentLineContent = None\r
         self.FileName = None\r
         self.InfFileName = None\r
+        self.OverrideGuid = None\r
+        self.PatchedBinFile = ''\r
 \r
     ## GetFinalTargetSuffixMap() method\r
     #\r
@@ -145,7 +148,9 @@ class FfsInfStatement(FfsInfStatementClassObject):
         GenFdsGlobalVariable.VerboseLogger( " Begine parsing INf file : %s" %self.InfFileName)\r
 \r
         self.InfFileName = self.InfFileName.replace('$(WORKSPACE)', '')\r
-        if self.InfFileName[0] == '\\' or self.InfFileName[0] == '/' :\r
+        if len(self.InfFileName) > 1 and self.InfFileName[0] == '\\' and self.InfFileName[1] == '\\':\r
+            pass\r
+        elif self.InfFileName[0] == '\\' or self.InfFileName[0] == '/' :\r
             self.InfFileName = self.InfFileName[1:]\r
 \r
         if self.InfFileName.find('$') == -1:\r
@@ -164,7 +169,9 @@ class FfsInfStatement(FfsInfStatementClassObject):
         ErrorCode, ErrorInfo = PathClassObj.Validate(".inf")\r
         if ErrorCode != 0:\r
             EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)\r
-        \r
+\r
+        if self.OverrideGuid:\r
+            PathClassObj = ProcessDuplicatedInf(PathClassObj, self.OverrideGuid, GenFdsGlobalVariable.WorkSpaceDir)\r
         if self.CurrentArch != None:\r
 \r
             Inf = GenFdsGlobalVariable.WorkSpace.BuildObject[PathClassObj, self.CurrentArch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag]\r
@@ -199,6 +206,9 @@ class FfsInfStatement(FfsInfStatementClassObject):
                                 "INF %s specified in FDF could not be found in build ARCH %s!" \\r
                                 % (self.InfFileName, GenFdsGlobalVariable.ArchList))\r
 \r
+        if self.OverrideGuid:\r
+            self.ModuleGuid = self.OverrideGuid\r
+\r
         if len(self.SourceFileList) != 0 and not self.InDsc:\r
             EdkLogger.warn("GenFds", GENFDS_ERROR, "Module %s NOT found in DSC file; Is it really a binary module?" % (self.InfFileName))\r
 \r
@@ -285,8 +295,8 @@ class FfsInfStatement(FfsInfStatementClassObject):
                     or PcdValueInImg > FfsInfStatement._MAX_SIZE_TYPE[Pcd.DatumType]:\r
                     EdkLogger.error("GenFds", GENFDS_ERROR, "The size of %s type PCD '%s.%s' doesn't match its data type." \\r
                                     % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName))\r
-            Pcd.DefaultValue = DefaultValue\r
-            self.PatchPcds.append(Pcd)\r
+            self.PatchPcds.append((Pcd, DefaultValue))\r
+\r
         self.InfModule = Inf\r
         self.PcdIsDriver = Inf.PcdIsDriver\r
         self.IsBinaryModule = Inf.IsBinaryModule\r
@@ -308,7 +318,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
         self.EfiOutputPath = self.__GetEFIOutPutPath__()\r
         GenFdsGlobalVariable.VerboseLogger( "ModuelEFIPath: " + self.EfiOutputPath)\r
 \r
-## PatchEfiFile\r
+    ## PatchEfiFile\r
     #\r
     #  Patch EFI file with patch PCD\r
     #\r
@@ -316,18 +326,25 @@ class FfsInfStatement(FfsInfStatementClassObject):
     #  @retval: Full path of patched EFI file: self.OutputPath + EfiFile base name\r
     #           If passed in file does not end with efi, return as is\r
     #\r
-    def PatchEfiFile(self, EfiFile):\r
-        if os.path.splitext(EfiFile)[1].lower() != '.efi':\r
-            return EfiFile\r
+    def PatchEfiFile(self, EfiFile, FileType):\r
         if not self.PatchPcds:\r
             return EfiFile\r
+        if FileType != 'PE32' and self.ModuleType != "USER_DEFINED":\r
+            return EfiFile\r
+        if self.PatchedBinFile:\r
+            EdkLogger.error("GenFds", GENFDS_ERROR,\r
+                            'Only one binary file can be patched:\n'\r
+                            '  a binary file has been patched: %s\n'\r
+                            '  current file: %s' % (self.PatchedBinFile, EfiFile),\r
+                            File=self.InfFileName)\r
         Basename = os.path.basename(EfiFile)\r
         Output = os.path.join(self.OutputPath, Basename)\r
         CopyLongFilePath(EfiFile, Output)\r
-        for Pcd in self.PatchPcds:\r
-            RetVal, RetStr = PatchBinaryFile(Output, int(Pcd.Offset, 0), Pcd.DatumType, Pcd.DefaultValue, Pcd.MaxDatumSize)\r
+        for Pcd, Value in self.PatchPcds:\r
+            RetVal, RetStr = PatchBinaryFile(Output, int(Pcd.Offset, 0), Pcd.DatumType, Value, Pcd.MaxDatumSize)\r
             if RetVal:\r
                 EdkLogger.error("GenFds", GENFDS_ERROR, RetStr, File=self.InfFileName)\r
+        self.PatchedBinFile = os.path.normpath(EfiFile)\r
         return Output\r
     ## GenFfs() method\r
     #\r
@@ -349,7 +366,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
         #\r
         # Allow binary type module not specify override rule in FDF file.\r
         # \r
-        if len(self.BinFileList) >0 and not self.InDsc:\r
+        if len(self.BinFileList) > 0:\r
             if self.Rule == None or self.Rule == "":\r
                 self.Rule = "BINARY"\r
                 \r
@@ -568,6 +585,8 @@ class FfsInfStatement(FfsInfStatementClassObject):
         (ModulePath, FileName) = os.path.split(self.InfFileName)\r
         Index = FileName.rfind('.')\r
         FileName = FileName[0:Index]\r
+        if self.OverrideGuid:\r
+            FileName = self.OverrideGuid\r
         Arch = "NoneArch"\r
         if self.CurrentArch != None:\r
             Arch = self.CurrentArch\r
index c5ccda677b0cd83d18e14386512226fe53f8c5be..c4e433d42530d979594c1852ff2ce2074aa010bc 100644 (file)
@@ -36,6 +36,7 @@ from Common import EdkLogger
 from Common.String import *\r
 from Common.Misc import DirCache,PathClass\r
 from Common.Misc import SaveFileOnChange\r
+from Common.Misc import ClearDuplicatedInf\r
 from Common.Misc import GuidStructureStringToGuidString\r
 from Common.BuildVersion import gBUILD_VERSION\r
 \r
@@ -149,15 +150,36 @@ def main():
 \r
         GenFdsGlobalVariable.ActivePlatform = PathClass(NormPath(ActivePlatform), Workspace)\r
 \r
-        BuildConfigurationFile = os.path.normpath(os.path.join(GenFdsGlobalVariable.WorkSpaceDir, "Conf/target.txt"))\r
+        if (Options.ConfDirectory):\r
+            # Get alternate Conf location, if it is absolute, then just use the absolute directory name\r
+            ConfDirectoryPath = os.path.normpath(Options.ConfDirectory)\r
+            if ConfDirectoryPath.startswith('"'):\r
+                ConfDirectoryPath = ConfDirectoryPath[1:]\r
+            if ConfDirectoryPath.endswith('"'):\r
+                ConfDirectoryPath = ConfDirectoryPath[:-1]\r
+            if not os.path.isabs(ConfDirectoryPath):\r
+                # Since alternate directory name is not absolute, the alternate directory is located within the WORKSPACE\r
+                # This also handles someone specifying the Conf directory in the workspace. Using --conf=Conf\r
+                ConfDirectoryPath = os.path.join(GenFdsGlobalVariable.WorkSpaceDir, ConfDirectoryPath)\r
+        else:\r
+            # Get standard WORKSPACE/Conf, use the absolute path to the WORKSPACE/Conf\r
+            ConfDirectoryPath = os.path.join(GenFdsGlobalVariable.WorkSpaceDir, 'Conf')\r
+        GenFdsGlobalVariable.ConfDir = ConfDirectoryPath\r
+        BuildConfigurationFile = os.path.normpath(os.path.join(ConfDirectoryPath, "target.txt"))\r
         if os.path.isfile(BuildConfigurationFile) == True:\r
             TargetTxtClassObject.TargetTxtClassObject(BuildConfigurationFile)\r
         else:\r
             EdkLogger.error("GenFds", FILE_NOT_FOUND, ExtraData=BuildConfigurationFile)\r
 \r
+        #Set global flag for build mode\r
+        GlobalData.gIgnoreSource = Options.IgnoreSources\r
+\r
         if Options.Macros:\r
             for Pair in Options.Macros:\r
-                Pair = Pair.strip('"')\r
+                if Pair.startswith('"'):\r
+                    Pair = Pair[1:]\r
+                if Pair.endswith('"'):\r
+                    Pair = Pair[:-1]\r
                 List = Pair.split('=')\r
                 if len(List) == 2:\r
                     if List[0].strip() == "EFI_SOURCE":\r
@@ -177,7 +199,8 @@ def main():
         os.environ["WORKSPACE"] = Workspace\r
 \r
         """call Workspace build create database"""\r
-        BuildWorkSpace = WorkspaceDatabase(None)\r
+        GlobalData.gDatabasePath = os.path.normpath(os.path.join(ConfDirectoryPath, GlobalData.gDatabasePath))\r
+        BuildWorkSpace = WorkspaceDatabase(GlobalData.gDatabasePath)\r
         BuildWorkSpace.InitDatabase()\r
         \r
         #\r
@@ -276,11 +299,13 @@ def main():
                     "\nPython",\r
                     CODE_ERROR,\r
                     "Tools code failure",\r
-                    ExtraData="Please send email to edk2-buildtools-devel@lists.sourceforge.net for help, attaching following call stack trace!\n",\r
+                    ExtraData="Please send email to edk2-devel@lists.sourceforge.net for help, attaching following call stack trace!\n",\r
                     RaiseError=False\r
                     )\r
         EdkLogger.quiet(traceback.format_exc())\r
         ReturnCode = CODE_ERROR\r
+    finally:\r
+        ClearDuplicatedInf()\r
     return ReturnCode\r
 \r
 gParamCheck = []\r
@@ -321,6 +346,9 @@ def myOptionParser():
                       action="callback", callback=SingleCheckCallback)\r
     Parser.add_option("-D", "--define", action="append", type="string", dest="Macros", help="Macro: \"Name [= Value]\".")\r
     Parser.add_option("-s", "--specifyaddress", dest="FixedAddress", action="store_true", type=None, help="Specify driver load address.")\r
+    Parser.add_option("--conf", action="store", type="string", dest="ConfDirectory", help="Specify the customized Conf directory.")\r
+    Parser.add_option("--ignore-sources", action="store_true", dest="IgnoreSources", default=False, help="Focus to a binary build and ignore all source files")\r
+\r
     (Options, args) = Parser.parse_args()\r
     return Options\r
 \r
index f97b41b834eb6da24077319ca2a15ecb7aa4e050..04bbc300ceda186a13e9fd8ba5c47188fbe470dc 100644 (file)
@@ -45,6 +45,7 @@ class GenFdsGlobalVariable:
     LibDir = ''\r
     WorkSpace = None\r
     WorkSpaceDir = ''\r
+    ConfDir = ''\r
     EdkSourceDir = ''\r
     OutputDirFromDscDict = {}\r
     TargetName = ''\r
@@ -88,7 +89,7 @@ class GenFdsGlobalVariable:
     def __LoadBuildRule():\r
         if GenFdsGlobalVariable.__BuildRuleDatabase:\r
             return GenFdsGlobalVariable.__BuildRuleDatabase\r
-        BuildConfigurationFile = os.path.normpath(os.path.join(GenFdsGlobalVariable.WorkSpaceDir, "Conf/target.txt"))\r
+        BuildConfigurationFile = os.path.normpath(os.path.join(GenFdsGlobalVariable.ConfDir, "target.txt"))\r
         TargetTxt = TargetTxtClassObject()\r
         if os.path.isfile(BuildConfigurationFile) == True:\r
             TargetTxt.LoadTargetTxtFile(BuildConfigurationFile)\r
@@ -201,11 +202,13 @@ class GenFdsGlobalVariable:
 \r
         TargetList = set()\r
         FileList = []\r
-        for File in Inf.Sources:\r
-            if File.TagName in ("", "*", GenFdsGlobalVariable.ToolChainTag) and \\r
-                File.ToolChainFamily in ("", "*", GenFdsGlobalVariable.ToolChainFamily):\r
-                FileList.append((File, DataType.TAB_UNKNOWN_FILE))\r
-        \r
+\r
+        if not Inf.IsBinaryModule:\r
+            for File in Inf.Sources:\r
+                if File.TagName in ("", "*", GenFdsGlobalVariable.ToolChainTag) and \\r
+                    File.ToolChainFamily in ("", "*", GenFdsGlobalVariable.ToolChainFamily):\r
+                    FileList.append((File, DataType.TAB_UNKNOWN_FILE))\r
+\r
         for File in Inf.Binaries:\r
             if File.Target in ['COMMON', '*', GenFdsGlobalVariable.TargetName]:\r
                 FileList.append((File, File.Type))\r
@@ -645,7 +648,8 @@ class GenFdsGlobalVariable:
                 '$(EDK_SOURCE)'  : GenFdsGlobalVariable.EdkSourceDir,\r
 #                '$(OUTPUT_DIRECTORY)': GenFdsGlobalVariable.OutputDirFromDsc,\r
                 '$(TARGET)' : GenFdsGlobalVariable.TargetName,\r
-                '$(TOOL_CHAIN_TAG)' : GenFdsGlobalVariable.ToolChainTag\r
+                '$(TOOL_CHAIN_TAG)' : GenFdsGlobalVariable.ToolChainTag,\r
+                '$(SPACE)' : ' '\r
                }\r
         OutputDir = GenFdsGlobalVariable.OutputDirFromDscDict[GenFdsGlobalVariable.ArchList[0]]\r
         if Arch != 'COMMON' and Arch in GenFdsGlobalVariable.ArchList:\r
index 97d8ba8f76704b78acbc8cff506c2fbac717258e..0e5bb3b27072289c43c58e1de59fd0e4047ccaf4 100644 (file)
@@ -198,7 +198,7 @@ class GuidSection(GuidSectionClassObject) :
                 HeaderLength = str(self.ExtraHeaderSize)\r
 \r
             if self.ProcessRequired == "NONE" and HeaderLength == None:\r
-                if TempFileSize > InputFileSize and TempFileSize % 4 == 0:\r
+                if TempFileSize > InputFileSize:\r
                     FileHandleIn.seek(0)\r
                     BufferIn  = FileHandleIn.read()\r
                     FileHandleOut.seek(0)\r
@@ -247,15 +247,15 @@ class GuidSection(GuidSectionClassObject) :
         if self.KeyStringList == None or self.KeyStringList == []:\r
             Target = GenFdsGlobalVariable.TargetName\r
             ToolChain = GenFdsGlobalVariable.ToolChainTag\r
-            ToolDb = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.WorkSpaceDir).ToolsDefTxtDatabase\r
+            ToolDb = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDatabase\r
             if ToolChain not in ToolDb['TOOL_CHAIN_TAG']:\r
                 EdkLogger.error("GenFds", GENFDS_ERROR, "Can not find external tool because tool tag %s is not defined in tools_def.txt!" % ToolChain)\r
             self.KeyStringList = [Target+'_'+ToolChain+'_'+self.CurrentArchList[0]]\r
             for Arch in self.CurrentArchList:\r
-                if Target+'_'+ToolChain+'_'+Arch not in self.KeyStringList:\r
-                    self.KeyStringList.append(Target+'_'+ToolChain+'_'+Arch)\r
-                    \r
-        ToolDefinition = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.WorkSpaceDir).ToolsDefTxtDictionary\r
+                if Target + '_' + ToolChain + '_' + Arch not in self.KeyStringList:\r
+                    self.KeyStringList.append(Target + '_' + ToolChain + '_' + Arch)\r
+\r
+        ToolDefinition = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDictionary\r
         ToolPathTmp = None\r
         for ToolDef in ToolDefinition.items():\r
             if self.NameGuid == ToolDef[1]:\r
index e32041d6a5fadf943a06fee93afe07c499815d38..c67177bb17a6ca436fbe7a18301e554699312138 100644 (file)
@@ -129,9 +129,11 @@ class Section (SectionClassObject):
         if FileType != None:\r
             for File in FfsInf.BinFileList:\r
                 if File.Arch == "COMMON" or FfsInf.CurrentArch == File.Arch:\r
-                    if File.Type == FileType or (int(FfsInf.PiSpecVersion, 16) >= 0x0001000A and FileType == 'DXE_DPEX'and File.Type == 'SMM_DEPEX'):\r
+                    if File.Type == FileType or (int(FfsInf.PiSpecVersion, 16) >= 0x0001000A \\r
+                                                 and FileType == 'DXE_DPEX'and File.Type == 'SMM_DEPEX') \\r
+                                                 or (FileType == 'TE'and File.Type == 'PE32'):\r
                         if '*' in FfsInf.TargetOverrideList or File.Target == '*' or File.Target in FfsInf.TargetOverrideList or FfsInf.TargetOverrideList == []:\r
-                            FileList.append(FfsInf.PatchEfiFile(File.Path))\r
+                            FileList.append(FfsInf.PatchEfiFile(File.Path, File.Type))\r
                         else:\r
                             GenFdsGlobalVariable.InfLogger ("\nBuild Target \'%s\' of File %s is not in the Scope of %s specified by INF %s in FDF" %(File.Target, File.File, FfsInf.TargetOverrideList, FfsInf.InfFileName))\r
                     else:\r
index 7a366db5fb5693fadbbd989d0ebf0d6721165ec7..bfdf763a7abc8d1771659fec52552d0e7b0eacc8 100644 (file)
@@ -1,3 +1,5 @@
+## @file\r
+# Target Tool Parser\r
 #\r
 #  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
 #\r
index 13485c72da51c22e6c12deb51777addcec2da3ae..7df83649d0a1cb3262030d7520306fc43fc038d7 100644 (file)
@@ -594,7 +594,7 @@ def Main():
                     "\nTrim",\r
                     CODE_ERROR,\r
                     "Unknown fatal error when trimming [%s]" % InputFile,\r
-                    ExtraData="\n(Please send email to edk2-buildtools-devel@lists.sourceforge.net for help, attaching following call stack trace!)\n",\r
+                    ExtraData="\n(Please send email to edk2-devel@lists.sourceforge.net for help, attaching following call stack trace!)\n",\r
                     RaiseError=False\r
                     )\r
         EdkLogger.quiet("(Python %s on %s) " % (platform.python_version(), sys.platform) + traceback.format_exc())\r
index 5b6973c9446007f373dbc488d1b4b1ae9c83ead5..54993f26fea526c1a5298ae2cfcd9c159f823c46 100644 (file)
@@ -320,7 +320,7 @@ MSG_NEW_FILE_NAME_FOR_DIST      = _(
 MSG_UPDATE_PACKAGE_DATABASE    = _("Update Distribution Package Database ...")\r
 MSG_PYTHON_ON                  = _("(Python %s on %s) ")\r
 MSG_SEARCH_FOR_HELP            = _(\r
-    "\n(Please send email to edk2-buildtools-devel@lists.sourceforge.net for\n"\r
+    "\n(Please send email to edk2-devel@lists.sourceforge.net for\n"\r
     " help, attach the following call stack trace.)\n")\r
 MSG_REMOVE_TEMP_FILE_STARTED   = _("Removing temp files started ... ")\r
 MSG_REMOVE_TEMP_FILE_DONE   = _("Removing temp files ... Done.")\r
index ee6f5ac2b8d3f1397218a1a2425b17a562eb8a23..df1e90faf5a0b35758ae15745197554e545405e6 100644 (file)
@@ -25,4 +25,27 @@ import Common.EdkLogger as EdkLogger
 UsageList = ("PRODUCES", "PRODUCED", "ALWAYS_PRODUCES", "ALWAYS_PRODUCED", "SOMETIMES_PRODUCES",\r
              "SOMETIMES_PRODUCED", "CONSUMES", "CONSUMED", "ALWAYS_CONSUMES", "ALWAYS_CONSUMED",\r
              "SOMETIMES_CONSUMES", "SOMETIMES_CONSUMED", "SOMETIME_CONSUMES")\r
+ErrorMsgMap = {\r
+    MODEL_EFI_GUID      : "The usage for this GUID is not listed in this INF: %s[%d]:%s",\r
+    MODEL_EFI_PPI       : "The usage for this PPI is not listed in this INF: %s[%d]:%s.",\r
+    MODEL_EFI_PROTOCOL  : "The usage for this Protocol is not listed in this INF: %s[%d]:%s.",\r
+    MODEL_PCD_DYNAMIC   : "The usage for this PCD is not listed in this INF: %s[%d]:%s."\r
+}\r
 \r
+def CheckInfComment(SectionType, Comments, InfFile, LineNo, ValueList):\r
+    if SectionType in [MODEL_PCD_PATCHABLE_IN_MODULE, MODEL_PCD_DYNAMIC_EX, MODEL_PCD_DYNAMIC]:\r
+        CheckUsage(Comments, UsageList, InfFile, LineNo, ValueList[0]+'.'+ValueList[1], ErrorMsgMap[MODEL_PCD_DYNAMIC])\r
+    elif SectionType in [MODEL_EFI_GUID, MODEL_EFI_PPI]:\r
+        CheckUsage(Comments, UsageList, InfFile, LineNo, ValueList[0], ErrorMsgMap[SectionType])\r
+    elif SectionType == MODEL_EFI_PROTOCOL:\r
+        CheckUsage(Comments, UsageList + ("TO_START", "BY_START"), InfFile, LineNo, ValueList[0], ErrorMsgMap[SectionType])\r
+\r
+def CheckUsage(Comments, Usages, InfFile, LineNo, Value, ErrorMsg):\r
+    for Comment in Comments:\r
+        for Word in Comment[0].replace('#', ' ').split():\r
+            if Word in Usages:\r
+                return\r
+    EdkLogger.error(\r
+        "Parser", FORMAT_INVALID,\r
+        ErrorMsg % (InfFile, LineNo, Value)\r
+    )\r
index 98939093d3ef67dc8e568bc38cc1e28be5ec69fb..53b44f44033b47c10db8b229fbf518781582353a 100644 (file)
@@ -31,6 +31,7 @@ from CommonDataClass.Exceptions import *
 from Common.LongFilePathSupport import OpenLongFilePath as open\r
 \r
 from MetaFileTable import MetaFileStorage\r
+from MetaFileCommentParser import CheckInfComment\r
 \r
 ## A decorator used to parse macro definition\r
 def ParseMacro(Parser):\r
@@ -595,6 +596,8 @@ class InfParser(MetaFileParser):
                 continue\r
             if Comment:\r
                 Comments.append((Comment, Index + 1))\r
+            if GlobalData.gOptions and GlobalData.gOptions.CheckUsage:\r
+                CheckInfComment(self._SectionType, Comments, str(self.MetaFile), Index + 1, self._ValueList)\r
             #\r
             # Model, Value1, Value2, Value3, Arch, Platform, BelongsToItem=-1,\r
             # LineBegin=-1, ColumnBegin=-1, LineEnd=-1, ColumnEnd=-1, Enabled=-1\r
@@ -823,6 +826,10 @@ class DscParser(MetaFileParser):
         "FIX_LOAD_TOP_MEMORY_ADDRESS"\r
     ]\r
 \r
+    SubSectionDefineKeywords = [\r
+        "FILE_GUID"\r
+    ]\r
+\r
     SymbolPattern = ValueExpression.SymbolPattern\r
 \r
     ## Constructor of DscParser\r
@@ -1041,13 +1048,15 @@ class DscParser(MetaFileParser):
         if not self._ValueList[2]:\r
             EdkLogger.error('Parser', FORMAT_INVALID, "No value specified",\r
                             ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)\r
-        if not self._ValueList[1] in self.DefineKeywords:\r
+        if (not self._ValueList[1] in self.DefineKeywords and\r
+            (self._InSubsection and self._ValueList[1] not in self.SubSectionDefineKeywords)):\r
             EdkLogger.error('Parser', FORMAT_INVALID,\r
                             "Unknown keyword found: %s. "\r
                             "If this is a macro you must "\r
                             "add it as a DEFINE in the DSC" % self._ValueList[1],\r
                             ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)\r
-        self._Defines[self._ValueList[1]] = self._ValueList[2]\r
+        if not self._InSubsection:\r
+            self._Defines[self._ValueList[1]] = self._ValueList[2]\r
         self._ItemType = self.DataType[TAB_DSC_DEFINES.upper()]\r
 \r
     @ParseMacro\r
@@ -1226,6 +1235,7 @@ class DscParser(MetaFileParser):
         self.__RetrievePcdValue()\r
         self._Content = self._RawTable.GetAll()\r
         self._ContentIndex = 0\r
+        self._InSubsection = False\r
         while self._ContentIndex < len(self._Content) :\r
             Id, self._ItemType, V1, V2, V3, S1, S2, Owner, self._From, \\r
                 LineStart, ColStart, LineEnd, ColEnd, Enabled = self._Content[self._ContentIndex]\r
@@ -1254,6 +1264,10 @@ class DscParser(MetaFileParser):
             self._LineIndex = LineStart - 1\r
             self._ValueList = [V1, V2, V3]\r
 \r
+            if Owner > 0 and Owner in self._IdMapping:\r
+                self._InSubsection = True\r
+            else:\r
+                self._InSubsection = False\r
             try:\r
                 Processer[self._ItemType]()\r
             except EvaluationException, Excpt:\r
@@ -1356,6 +1370,13 @@ class DscParser(MetaFileParser):
 \r
         Type, Name, Value = self._ValueList\r
         Value = ReplaceMacro(Value, self._Macros, False)\r
+        #\r
+        # If it is <Defines>, return\r
+        #\r
+        if self._InSubsection:\r
+            self._ValueList = [Type, Name, Value]\r
+            return\r
+\r
         if self._ItemType == MODEL_META_DATA_DEFINE:\r
             if self._SectionType == MODEL_META_DATA_HEADER:\r
                 self._FileLocalMacros[Name] = Value\r
index 638df1f6ede75f3f3b83cef119d98ef443d68d8d..83f730e62913675e4e8d6dbb081579889de33e15 100644 (file)
@@ -35,9 +35,12 @@ from MetaFileParser import *
 from BuildClassObject import *\r
 from WorkspaceCommon import GetDeclaredPcd\r
 from Common.Misc import AnalyzeDscPcd\r
+from Common.Misc import ProcessDuplicatedInf\r
 import re\r
 from Common.Parsing import IsValidWord\r
 \r
+import Common.GlobalData as GlobalData\r
+\r
 ## Platform build information from DSC file\r
 #\r
 #  This class is used to retrieve information stored in database and convert them\r
@@ -103,6 +106,7 @@ class DscBuildData(PlatformBuildClassObject):
         self._Target = Target\r
         self._Toolchain = Toolchain\r
         self._Clear()\r
+        self._HandleOverridePath()\r
 \r
     ## XXX[key] = value\r
     def __setitem__(self, key, value):\r
@@ -147,6 +151,27 @@ class DscBuildData(PlatformBuildClassObject):
         self._VpdToolGuid       = None\r
         self.__Macros            = None\r
 \r
+\r
+    ## handle Override Path of Module\r
+    def _HandleOverridePath(self):\r
+        RecordList = self._RawData[MODEL_META_DATA_COMPONENT, self._Arch]\r
+        Macros = self._Macros\r
+        Macros["EDK_SOURCE"] = GlobalData.gEcpSource\r
+        for Record in RecordList:\r
+            ModuleId = Record[5]\r
+            LineNo = Record[6]\r
+            ModuleFile = PathClass(NormPath(Record[0]), GlobalData.gWorkspace, Arch=self._Arch)\r
+            RecordList = self._RawData[MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH, self._Arch, None, ModuleId]\r
+            if RecordList != []:\r
+                SourceOverridePath = os.path.join(GlobalData.gWorkspace, NormPath(RecordList[0][0]))\r
+\r
+                # Check if the source override path exists\r
+                if not os.path.isdir(SourceOverridePath):\r
+                    EdkLogger.error('build', FILE_NOT_FOUND, Message='Source override path does not exist:', File=self.MetaFile, ExtraData=SourceOverridePath, Line=LineNo)\r
+\r
+                #Add to GlobalData Variables\r
+                GlobalData.gOverrideDir[ModuleFile.Key] = SourceOverridePath\r
+\r
     ## Get current effective macros\r
     def _GetMacros(self):\r
         if self.__Macros == None:\r
@@ -478,6 +503,7 @@ class DscBuildData(PlatformBuildClassObject):
         Macros = self._Macros\r
         Macros["EDK_SOURCE"] = GlobalData.gEcpSource\r
         for Record in RecordList:\r
+            DuplicatedFile = False\r
             ModuleFile = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch)\r
             ModuleId = Record[5]\r
             LineNo = Record[6]\r
@@ -490,23 +516,11 @@ class DscBuildData(PlatformBuildClassObject):
             # Check duplication\r
             # If arch is COMMON, no duplicate module is checked since all modules in all component sections are selected\r
             if self._Arch != 'COMMON' and ModuleFile in self._Modules:\r
-                EdkLogger.error('build', FILE_DUPLICATED, File=self.MetaFile, ExtraData=str(ModuleFile), Line=LineNo)\r
+                DuplicatedFile = True\r
 \r
             Module = ModuleBuildClassObject()\r
             Module.MetaFile = ModuleFile\r
 \r
-            # get module override path\r
-            RecordList = self._RawData[MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH, self._Arch, None, ModuleId]\r
-            if RecordList != []:\r
-                Module.SourceOverridePath = os.path.join(GlobalData.gWorkspace, NormPath(RecordList[0][0], Macros))\r
-\r
-                # Check if the source override path exists\r
-                if not os.path.isdir(Module.SourceOverridePath):\r
-                    EdkLogger.error('build', FILE_NOT_FOUND, Message = 'Source override path does not exist:', File=self.MetaFile, ExtraData=Module.SourceOverridePath, Line=LineNo)\r
-                \r
-                #Add to GlobalData Variables\r
-                GlobalData.gOverrideDir[ModuleFile.Key] = Module.SourceOverridePath\r
-\r
             # get module private library instance\r
             RecordList = self._RawData[MODEL_EFI_LIBRARY_CLASS, self._Arch, None, ModuleId]\r
             for Record in RecordList:\r
@@ -563,6 +577,16 @@ class DscBuildData(PlatformBuildClassObject):
                     OptionString = Module.BuildOptions[ToolChainFamily, ToolChain]\r
                     Module.BuildOptions[ToolChainFamily, ToolChain] = OptionString + " " + Option\r
 \r
+            RecordList = self._RawData[MODEL_META_DATA_HEADER, self._Arch, None, ModuleId]\r
+            if DuplicatedFile and not RecordList:\r
+                EdkLogger.error('build', FILE_DUPLICATED, File=self.MetaFile, ExtraData=str(ModuleFile), Line=LineNo)\r
+            if RecordList:\r
+                if len(RecordList) != 1:\r
+                    EdkLogger.error('build', OPTION_UNKNOWN, 'Only FILE_GUID can be listed in <Defines> section.',\r
+                                    File=self.MetaFile, ExtraData=str(ModuleFile), Line=LineNo)\r
+                ModuleFile = ProcessDuplicatedInf(ModuleFile, RecordList[0][2], GlobalData.gWorkspace)\r
+                ModuleFile.Arch = self._Arch\r
+\r
             self._Modules[ModuleFile] = Module\r
         return self._Modules\r
 \r
@@ -641,9 +665,26 @@ class DscBuildData(PlatformBuildClassObject):
     def _ValidatePcd(self, PcdCName, TokenSpaceGuid, Setting, PcdType, LineNo):\r
         if self._DecPcds == None:\r
             self._DecPcds = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain)\r
+            FdfInfList = []\r
+            if GlobalData.gFdfParser:\r
+                FdfInfList = GlobalData.gFdfParser.Profile.InfList\r
+\r
+            PkgSet = set()\r
+            for Inf in FdfInfList:\r
+                ModuleFile = PathClass(NormPath(Inf), GlobalData.gWorkspace, Arch=self._Arch)\r
+                if ModuleFile in self._Modules:\r
+                    continue\r
+                ModuleData = self._Bdb[ModuleFile, self._Arch, self._Target, self._Toolchain]\r
+                PkgSet.update(ModuleData.Packages)\r
+            DecPcds = {}\r
+            for Pkg in PkgSet:\r
+                for Pcd in Pkg.Pcds:\r
+                    DecPcds[Pcd[0], Pcd[1]] = Pkg.Pcds[Pcd]\r
+            self._DecPcds.update(DecPcds)\r
+\r
         if (PcdCName, TokenSpaceGuid) not in self._DecPcds:\r
             EdkLogger.error('build', PARSER_ERROR,\r
-                            "Pcd (%s.%s) defined in DSC is not declared in DEC files." % (TokenSpaceGuid, PcdCName),\r
+                            "Pcd (%s.%s) defined in DSC is not declared in DEC files. Arch: ['%s']" % (TokenSpaceGuid, PcdCName, self._Arch),\r
                             File=self.MetaFile, Line=LineNo)\r
         ValueList, IsValid, Index = AnalyzeDscPcd(Setting, PcdType, self._DecPcds[PcdCName, TokenSpaceGuid].DatumType)\r
         if not IsValid and PcdType not in [MODEL_PCD_FEATURE_FLAG, MODEL_PCD_FIXED_AT_BUILD]:\r
@@ -1676,6 +1717,9 @@ class InfBuildData(ModuleBuildClassObject):
             # items defined _PROPERTY_ don't need additional processing\r
             if Name in self:\r
                 self[Name] = Value\r
+                if self._Defs == None:\r
+                    self._Defs = sdict()\r
+                self._Defs[Name] = Value\r
             # some special items in [Defines] section need special treatment\r
             elif Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION', 'EDK_RELEASE_VERSION', 'PI_SPECIFICATION_VERSION'):\r
                 if Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION'):\r
@@ -2309,6 +2353,13 @@ class InfBuildData(ModuleBuildClassObject):
                     EdkLogger.error('build', RESOURCE_NOT_AVAILABLE, "No [Depex] section or no valid expression in [Depex] section for [%s] module" \\r
                                     % self.ModuleType, File=self.MetaFile)\r
 \r
+            if len(RecordList) != 0 and self.ModuleType == 'USER_DEFINED':\r
+                for Record in RecordList:\r
+                    if Record[4] not in ['PEIM', 'DXE_DRIVER', 'DXE_SMM_DRIVER']:\r
+                        EdkLogger.error('build', FORMAT_INVALID,\r
+                                        "'%s' module must specify the type of [Depex] section" % self.ModuleType,\r
+                                        File=self.MetaFile)\r
+\r
             Depex = sdict()\r
             for Record in RecordList:\r
                 DepexStr = ReplaceMacro(Record[0], self._Macros, False)\r
@@ -2570,8 +2621,6 @@ class InfBuildData(ModuleBuildClassObject):
 #\r
 class WorkspaceDatabase(object):\r
 \r
-    # default database file path\r
-    _DB_PATH_ = "Conf/.cache/build.db"\r
 \r
     #\r
     # internal class used for call corresponding file parser and caching the result\r
@@ -2682,7 +2731,7 @@ class WorkspaceDatabase(object):
     def __init__(self, DbPath, RenewDb=False):\r
         self._DbClosedFlag = False\r
         if not DbPath:\r
-            DbPath = os.path.normpath(os.path.join(GlobalData.gWorkspace, self._DB_PATH_))\r
+            DbPath = os.path.normpath(os.path.join(GlobalData.gWorkspace, 'Conf', GlobalData.gDatabasePath))\r
 \r
         # don't create necessary path for db in memory\r
         if DbPath != ':memory:':\r
index 2f8bfb42b123d7fa0badf9ff04b7b03358825704..a5bb70d45645b146184508ae8831881d783d2029 100644 (file)
@@ -57,9 +57,8 @@ __copyright__ = "Copyright (c) 2007 - 2014, Intel Corporation  All rights reserv
 gSupportedTarget = ['all', 'genc', 'genmake', 'modules', 'libraries', 'fds', 'clean', 'cleanall', 'cleanlib', 'run']\r
 \r
 ## build configuration file\r
-gBuildConfiguration = "Conf/target.txt"\r
-gBuildCacheDir = "Conf/.cache"\r
-gToolsDefinition = "Conf/tools_def.txt"\r
+gBuildConfiguration = "target.txt"\r
+gToolsDefinition = "tools_def.txt"\r
 \r
 TemporaryTablePattern = re.compile(r'^_\d+_\d+_[a-fA-F0-9]+$')\r
 TmpTableDict = {}\r
@@ -630,7 +629,8 @@ class BuildTask:
     #\r
     def AddDependency(self, Dependency):\r
         for Dep in Dependency:\r
-            self.DependencyList.append(BuildTask.New(Dep))    # BuildTask list\r
+            if not Dep.BuildObject.IsBinaryModule:\r
+                self.DependencyList.append(BuildTask.New(Dep))    # BuildTask list\r
 \r
     ## The thread wrapper of LaunchCommand function\r
     #\r
@@ -732,18 +732,34 @@ class Build():
         self.SkipAutoGen    = BuildOptions.SkipAutoGen\r
         self.Reparse        = BuildOptions.Reparse\r
         self.SkuId          = BuildOptions.SkuId\r
+        self.ConfDirectory = BuildOptions.ConfDirectory\r
         self.SpawnMode      = True\r
         self.BuildReport    = BuildReport(BuildOptions.ReportFile, BuildOptions.ReportType)\r
         self.TargetTxt      = TargetTxtClassObject()\r
         self.ToolDef        = ToolDefClassObject()\r
         #Set global flag for build mode\r
         GlobalData.gIgnoreSource = BuildOptions.IgnoreSources\r
+\r
+        if self.ConfDirectory:\r
+            # Get alternate Conf location, if it is absolute, then just use the absolute directory name\r
+            ConfDirectoryPath = os.path.normpath(self.ConfDirectory)\r
+\r
+            if not os.path.isabs(ConfDirectoryPath):\r
+                # Since alternate directory name is not absolute, the alternate directory is located within the WORKSPACE\r
+                # This also handles someone specifying the Conf directory in the workspace. Using --conf=Conf\r
+                ConfDirectoryPath = os.path.join(self.WorkspaceDir, ConfDirectoryPath)\r
+        else:\r
+            # Get standard WORKSPACE/Conf use the absolute path to the WORKSPACE/Conf\r
+            ConfDirectoryPath = os.path.join(self.WorkspaceDir, 'Conf')\r
+        GlobalData.gConfDirectory = ConfDirectoryPath\r
+        GlobalData.gDatabasePath = os.path.normpath(os.path.join(ConfDirectoryPath, GlobalData.gDatabasePath))\r
+\r
         if BuildOptions.DisableCache:\r
             self.Db         = WorkspaceDatabase(":memory:")\r
         else:\r
-            self.Db         = WorkspaceDatabase(None, self.Reparse)\r
-        self.BuildDatabase  = self.Db.BuildObject\r
-        self.Platform       = None\r
+            self.Db = WorkspaceDatabase(GlobalData.gDatabasePath, self.Reparse)\r
+        self.BuildDatabase = self.Db.BuildObject\r
+        self.Platform = None\r
         self.LoadFixAddress = 0\r
         self.UniFlag        = BuildOptions.Flag\r
         self.BuildModules = []\r
@@ -772,14 +788,14 @@ class Build():
         #\r
         # Check target.txt and tools_def.txt and Init them\r
         #\r
-        BuildConfigurationFile = os.path.normpath(os.path.join(self.WorkspaceDir, gBuildConfiguration))\r
+        BuildConfigurationFile = os.path.normpath(os.path.join(GlobalData.gConfDirectory, gBuildConfiguration))\r
         if os.path.isfile(BuildConfigurationFile) == True:\r
             StatusCode = self.TargetTxt.LoadTargetTxtFile(BuildConfigurationFile)\r
 \r
             ToolDefinitionFile = self.TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF]\r
             if ToolDefinitionFile == '':\r
                 ToolDefinitionFile = gToolsDefinition\r
-            ToolDefinitionFile = os.path.normpath(os.path.join(self.WorkspaceDir, ToolDefinitionFile))\r
+                ToolDefinitionFile = os.path.normpath(os.path.join(self.WorkspaceDir, 'Conf', ToolDefinitionFile))\r
             if os.path.isfile(ToolDefinitionFile) == True:\r
                 StatusCode = self.ToolDef.LoadToolDefFile(ToolDefinitionFile)\r
             else:\r
@@ -1079,7 +1095,7 @@ class Build():
                 # First should close DB.\r
                 #\r
                 self.Db.Close()\r
-                RemoveDirectory(gBuildCacheDir, True)\r
+                RemoveDirectory(os.path.dirname(GlobalData.gDatabasePath), True)\r
             except WindowsError, X:\r
                 EdkLogger.error("build", FILE_DELETE_FAILURE, ExtraData=str(X))\r
         return True\r
@@ -1804,19 +1820,19 @@ class Build():
         EdkLogger.SetLevel(OldLogLevel)\r
 \r
     def DumpBuildData(self):\r
-        CacheDirectory = os.path.join(self.WorkspaceDir, gBuildCacheDir)\r
+        CacheDirectory = os.path.dirname(GlobalData.gDatabasePath)\r
         Utils.CreateDirectory(CacheDirectory)\r
         Utils.DataDump(Utils.gFileTimeStampCache, os.path.join(CacheDirectory, "gFileTimeStampCache"))\r
         Utils.DataDump(Utils.gDependencyDatabase, os.path.join(CacheDirectory, "gDependencyDatabase"))\r
 \r
     def RestoreBuildData(self):\r
-        FilePath = os.path.join(self.WorkspaceDir, gBuildCacheDir, "gFileTimeStampCache")\r
+        FilePath = os.path.join(os.path.dirname(GlobalData.gDatabasePath), "gFileTimeStampCache")\r
         if Utils.gFileTimeStampCache == {} and os.path.isfile(FilePath):\r
             Utils.gFileTimeStampCache = Utils.DataRestore(FilePath)\r
             if Utils.gFileTimeStampCache == None:\r
                 Utils.gFileTimeStampCache = {}\r
 \r
-        FilePath = os.path.join(self.WorkspaceDir, gBuildCacheDir, "gDependencyDatabase")\r
+        FilePath = os.path.join(os.path.dirname(GlobalData.gDatabasePath), "gDependencyDatabase")\r
         if Utils.gDependencyDatabase == {} and os.path.isfile(FilePath):\r
             Utils.gDependencyDatabase = Utils.DataRestore(FilePath)\r
             if Utils.gDependencyDatabase == None:\r
@@ -1905,6 +1921,8 @@ def MyOptionParser():
              "This option can also be specified by setting *_*_*_BUILD_FLAGS in [BuildOptions] section of platform DSC. If they are both specified, this value "\\r
              "will override the setting in [BuildOptions] section of platform DSC.")\r
     Parser.add_option("-N", "--no-cache", action="store_true", dest="DisableCache", default=False, help="Disable build cache mechanism")\r
+    Parser.add_option("--conf", action="store", type="string", dest="ConfDirectory", help="Specify the customized Conf directory.")\r
+    Parser.add_option("--check-usage", action="store_true", dest="CheckUsage", default=False, help="Check usage content of entries listed in INF file.")\r
     Parser.add_option("--ignore-sources", action="store_true", dest="IgnoreSources", default=False, help="Focus to a binary build and ignore all source files")\r
 \r
     (Opt, Args)=Parser.parse_args()\r
@@ -2064,13 +2082,14 @@ def Main():
                     "\nbuild",\r
                     CODE_ERROR,\r
                     "Unknown fatal error when processing [%s]" % MetaFile,\r
-                    ExtraData="\n(Please send email to edk2-buildtools-devel@lists.sourceforge.net for help, attaching following call stack trace!)\n",\r
+                    ExtraData="\n(Please send email to edk2-devel@lists.sourceforge.net for help, attaching following call stack trace!)\n",\r
                     RaiseError=False\r
                     )\r
         EdkLogger.quiet("(Python %s on %s) " % (platform.python_version(), sys.platform) + traceback.format_exc())\r
         ReturnCode = CODE_ERROR\r
     finally:\r
         Utils.Progressor.Abort()\r
+        Utils.ClearDuplicatedInf()\r
 \r
     if ReturnCode == 0:\r
         Conclusion = "Done"\r
index ec463ea5fa292da3f24144f7fc23289c1d8189fc..4ea84c51296946422766167ca6217a4070747eea 100644 (file)
@@ -1,5 +1,7 @@
+## @file\r
 #\r
-# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>\r
+#\r
+# Copyright (c) 2009 - 2014, Apple Inc. All rights reserved.<BR>\r
 #\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r