From 97fa0ee9b1cffbb4b97ee35365afa7afcf50e174 Mon Sep 17 00:00:00 2001 From: Yingke Liu Date: Thu, 28 Aug 2014 13:53:34 +0000 Subject: [PATCH] License header updated to match correct format. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yingke Liu Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15971 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/BuildEnv | 9 +- BaseTools/Conf/build_rule.template | 2 +- BaseTools/Source/C/Common/BinderFuncs.c | 11 +- BaseTools/Source/C/Common/BinderFuncs.h | 18 +- BaseTools/Source/C/Common/CommonLib.c | 9 +- BaseTools/Source/C/Common/CommonLib.h | 10 +- BaseTools/Source/C/Common/Compress.h | 15 +- BaseTools/Source/C/Common/Crc32.c | 11 +- BaseTools/Source/C/Common/Crc32.h | 11 +- BaseTools/Source/C/Common/Decompress.c | 13 +- BaseTools/Source/C/Common/Decompress.h | 11 +- BaseTools/Source/C/Common/EfiCompress.c | 20 +- BaseTools/Source/C/Common/EfiUtilityMsgs.c | 12 +- BaseTools/Source/C/Common/EfiUtilityMsgs.h | 11 +- .../Source/C/Common/FirmwareVolumeBuffer.c | 14 +- .../Source/C/Common/FirmwareVolumeBufferLib.h | 9 +- BaseTools/Source/C/Common/FvLib.c | 11 +- BaseTools/Source/C/Common/FvLib.h | 13 +- BaseTools/Source/C/Common/MemoryFile.c | 11 +- BaseTools/Source/C/Common/MemoryFile.h | 9 +- BaseTools/Source/C/Common/MyAlloc.c | 11 +- BaseTools/Source/C/Common/MyAlloc.h | 11 +- BaseTools/Source/C/Common/OsPath.c | 9 +- BaseTools/Source/C/Common/OsPath.h | 13 +- .../Source/C/Common/ParseGuidedSectionTools.c | 11 +- .../Source/C/Common/ParseGuidedSectionTools.h | 11 +- BaseTools/Source/C/Common/ParseInf.c | 11 +- BaseTools/Source/C/Common/ParseInf.h | 9 +- BaseTools/Source/C/Common/PeCoffLib.h | 4 +- BaseTools/Source/C/Common/PeCoffLoaderEx.c | 13 +- BaseTools/Source/C/Common/SimpleFileParsing.c | 9 +- BaseTools/Source/C/Common/SimpleFileParsing.h | 11 +- BaseTools/Source/C/Common/StringFuncs.c | 11 +- BaseTools/Source/C/Common/StringFuncs.h | 13 +- BaseTools/Source/C/Common/TianoCompress.c | 20 +- BaseTools/Source/C/Common/WinNtInclude.h | 7 +- BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c | 23 +- BaseTools/Source/C/EfiRom/EfiRom.c | 10 +- BaseTools/Source/C/EfiRom/EfiRom.h | 13 +- .../Source/C/GenBootSector/GenBootSector.c | 16 +- BaseTools/Source/C/GenCrc32/GenCrc32.c | 8 +- BaseTools/Source/C/GenFfs/GenFfs.c | 14 +- BaseTools/Source/C/GenFv/GenFv.c | 15 +- BaseTools/Source/C/GenFv/GenFvInternalLib.c | 9 +- BaseTools/Source/C/GenFv/GenFvInternalLib.h | 13 +- BaseTools/Source/C/GenFw/Elf32Convert.c | 3 +- BaseTools/Source/C/GenFw/Elf32Convert.h | 3 +- BaseTools/Source/C/GenFw/Elf64Convert.c | 3 +- BaseTools/Source/C/GenFw/Elf64Convert.h | 3 +- BaseTools/Source/C/GenFw/ElfConvert.c | 3 +- BaseTools/Source/C/GenFw/ElfConvert.h | 3 +- BaseTools/Source/C/GenFw/GenFw.c | 9 +- BaseTools/Source/C/GenFw/GenFw.h | 3 +- BaseTools/Source/C/GenPage/GenPage.c | 24 +- BaseTools/Source/C/GenPage/VirtualMemory.h | 21 +- BaseTools/Source/C/GenSec/GenSec.c | 9 +- BaseTools/Source/C/GenVtf/GenVtf.c | 14 +- BaseTools/Source/C/GenVtf/GenVtf.h | 15 +- .../C/GnuGenBootSector/GnuGenBootSector.c | 16 +- BaseTools/Source/C/Include/Common/BaseTypes.h | 4 +- .../Source/C/Include/Common/BuildVersion.h | 18 +- .../Source/C/Include/Common/MdeModuleHii.h | 6 +- .../Source/C/Include/Common/PiFirmwareFile.h | 12 +- .../C/Include/Common/PiFirmwareVolume.h | 12 +- .../Source/C/Include/Common/UefiBaseTypes.h | 6 +- .../Source/C/Include/Common/UefiCapsule.h | 11 +- .../Common/UefiInternalFormRepresentation.h | 12 +- .../Source/C/Include/Common/UefiMultiPhase.h | 9 +- .../Source/C/Include/Common/VariableFormat.h | 6 +- .../C/Include/Common/WorkingBlockHeader.h | 6 +- BaseTools/Source/C/Include/Guid/PcAnsi.h | 13 +- .../C/Include/Guid/PiFirmwareFileSystem.h | 12 +- .../Source/C/Include/Ia32/ProcessorBind.h | 6 +- .../Source/C/Include/IndustryStandard/Acpi.h | 6 +- .../C/Include/IndustryStandard/Acpi1_0.h | 6 +- .../C/Include/IndustryStandard/Acpi2_0.h | 6 +- .../C/Include/IndustryStandard/Acpi3_0.h | 6 +- .../C/Include/IndustryStandard/EfiPci.h | 8 +- ...emoryMappedConfigurationSpaceAccessTable.h | 8 +- .../C/Include/IndustryStandard/PeImage.h | 6 +- .../Source/C/Include/IndustryStandard/pci22.h | 8 +- .../Source/C/Include/IndustryStandard/pci23.h | 8 +- .../Source/C/Include/IndustryStandard/pci30.h | 8 +- .../C/Include/Protocol/GraphicsOutput.h | 6 +- .../Protocol/GuidedSectionExtraction.h | 16 +- .../Source/C/Include/Protocol/HiiFramework.h | 12 +- BaseTools/Source/C/Include/Protocol/UgaDraw.h | 6 +- .../Source/C/Include/X64/ProcessorBind.h | 6 +- .../Source/C/LzmaCompress/LzmaF86Compress.bat | 7 +- BaseTools/Source/C/Makefiles/NmakeSubdirs.bat | 13 +- BaseTools/Source/C/Makefiles/app.makefile | 3 +- BaseTools/Source/C/Makefiles/footer.makefile | 4 +- BaseTools/Source/C/Makefiles/lib.makefile | 4 +- BaseTools/Source/C/Makefiles/ms.app | 2 + BaseTools/Source/C/Makefiles/ms.common | 4 +- BaseTools/Source/C/Makefiles/ms.rule | 4 +- .../Source/C/PyEfiCompressor/EfiCompressor.c | 3 +- BaseTools/Source/C/PyEfiCompressor/Makefile | 3 +- BaseTools/Source/C/PyUtility/Makefile | 4 +- BaseTools/Source/C/PyUtility/PyUtility.c | 3 +- .../Source/C/TianoCompress/TianoCompress.c | 31 +- .../Source/C/TianoCompress/TianoCompress.h | 4 +- BaseTools/Source/C/VfrCompile/EfiVfr.h | 13 +- BaseTools/Source/C/VfrCompile/VfrSyntax.g | 9 +- BaseTools/Source/C/VolInfo/VolInfo.c | 11 +- BaseTools/Source/C/VolInfo/VolInfo.h | 11 +- BaseTools/Source/Python/AutoGen/AutoGen.py | 334 +++++++++++++++--- BaseTools/Source/Python/AutoGen/GenMake.py | 26 +- .../Source/Python/AutoGen/InfSectionParser.py | 107 ++++++ BaseTools/Source/Python/AutoGen/StrGather.py | 8 +- .../Source/Python/AutoGen/UniClassObject.py | 7 +- BaseTools/Source/Python/Common/DataType.py | 2 +- BaseTools/Source/Python/Common/GlobalData.py | 10 +- BaseTools/Source/Python/Common/Misc.py | 124 +++++++ .../Python/Common/TargetTxtClassObject.py | 34 +- .../Python/Common/ToolDefClassObject.py | 19 +- .../Python/CommonDataClass/DataClass.py | 3 +- .../Source/Python/GenFds/CompressSection.py | 2 +- .../Source/Python/GenFds/DepexSection.py | 21 +- BaseTools/Source/Python/GenFds/EfiSection.py | 8 +- BaseTools/Source/Python/GenFds/FdfParser.py | 16 +- .../Source/Python/GenFds/FfsFileStatement.py | 2 + .../Source/Python/GenFds/FfsInfStatement.py | 41 ++- BaseTools/Source/Python/GenFds/GenFds.py | 36 +- .../Python/GenFds/GenFdsGlobalVariable.py | 18 +- BaseTools/Source/Python/GenFds/GuidSection.py | 12 +- BaseTools/Source/Python/GenFds/Section.py | 6 +- .../Source/Python/TargetTool/TargetTool.py | 2 + BaseTools/Source/Python/Trim/Trim.py | 2 +- .../Source/Python/UPT/Logger/StringTable.py | 2 +- .../Python/Workspace/MetaFileCommentParser.py | 23 ++ .../Source/Python/Workspace/MetaFileParser.py | 25 +- .../Python/Workspace/WorkspaceDatabase.py | 83 ++++- BaseTools/Source/Python/build/build.py | 47 ++- BaseTools/Source/Python/sitecustomize.py | 4 +- 135 files changed, 1190 insertions(+), 870 deletions(-) create mode 100644 BaseTools/Source/Python/AutoGen/InfSectionParser.py diff --git a/BaseTools/BuildEnv b/BaseTools/BuildEnv index 8ab5089bbe..6a1281b96b 100755 --- a/BaseTools/BuildEnv +++ b/BaseTools/BuildEnv @@ -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.
+# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
# 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() { diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index 55f56c2a74..8c06a45c47 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -299,7 +299,7 @@ $(CP) ${dst} $(OUTPUT_DIR) $(CP) ${dst} $(BIN_DIR) -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR) - + -$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR) $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug $(OBJCOPY) --strip-unneeded -R .eh_frame ${src} diff --git a/BaseTools/Source/C/Common/BinderFuncs.c b/BaseTools/Source/C/Common/BinderFuncs.c index 5ee55480bd..40f0e6acf8 100644 --- a/BaseTools/Source/C/Common/BinderFuncs.c +++ b/BaseTools/Source/C/Common/BinderFuncs.c @@ -1,6 +1,7 @@ /** @file +Binder function implementations for ANSI C libraries. -Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - BinderFuncs.c - -Abstract: - - Binder function implementations for ANSI C libraries. - **/ #include "BinderFuncs.h" diff --git a/BaseTools/Source/C/Common/BinderFuncs.h b/BaseTools/Source/C/Common/BinderFuncs.h index 48dc82eb70..310d76a0d1 100644 --- a/BaseTools/Source/C/Common/BinderFuncs.h +++ b/BaseTools/Source/C/Common/BinderFuncs.h @@ -1,6 +1,9 @@ /** @file - -Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.
+Prototypes for binder functions that allow common code to be written which then +links to implementation of these functions which is appropriate for the specific +environment that they are running under. + +Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,17 +12,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - BinderFuncs.h - -Abstract: - - Prototypes for binder functions that allow common code to be - written which then links to implementation of these functions - which is appropriate for the specific environment that they - are running under. - **/ #ifndef BinderFuncs_h_INCLUDED diff --git a/BaseTools/Source/C/Common/CommonLib.c b/BaseTools/Source/C/Common/CommonLib.c index 981c04f34b..4b4d02274c 100644 --- a/BaseTools/Source/C/Common/CommonLib.c +++ b/BaseTools/Source/C/Common/CommonLib.c @@ -1,4 +1,5 @@ /** @file +Common basic Library Functions Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - CommonLib.c - -Abstract: - - Common basic Library Functions - **/ #include diff --git a/BaseTools/Source/C/Common/CommonLib.h b/BaseTools/Source/C/Common/CommonLib.h index 2c1db759b0..2041b89e2d 100644 --- a/BaseTools/Source/C/Common/CommonLib.h +++ b/BaseTools/Source/C/Common/CommonLib.h @@ -1,4 +1,5 @@ /** @file +Common library assistance routines. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - CommonLib.h - -Abstract: - - Common library assistance routines. - **/ #ifndef _EFI_COMMON_LIB_H @@ -31,6 +24,7 @@ Abstract: #ifdef __cplusplus extern "C" { #endif + // // Function declarations // diff --git a/BaseTools/Source/C/Common/Compress.h b/BaseTools/Source/C/Common/Compress.h index 11245b1178..beb2ebe9f6 100644 --- a/BaseTools/Source/C/Common/Compress.h +++ b/BaseTools/Source/C/Common/Compress.h @@ -1,6 +1,8 @@ /** @file - -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Header file for compression routine. +Providing both EFI and Tiano Compress algorithms. + +Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -8,15 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - Compress.h - -Abstract: - - Header file for compression routine. - Providing both EFI and Tiano Compress algorithms. **/ diff --git a/BaseTools/Source/C/Common/Crc32.c b/BaseTools/Source/C/Common/Crc32.c index 8e5915dd0e..05d7a8d6c3 100644 --- a/BaseTools/Source/C/Common/Crc32.c +++ b/BaseTools/Source/C/Common/Crc32.c @@ -1,6 +1,7 @@ /** @file +CalcuateCrc32 routine. -Copyright (c) 2004, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - crc32.c - -Abstract: - - CalcuateCrc32 routine. - **/ #include diff --git a/BaseTools/Source/C/Common/Crc32.h b/BaseTools/Source/C/Common/Crc32.h index 760327f99c..81461717d1 100644 --- a/BaseTools/Source/C/Common/Crc32.h +++ b/BaseTools/Source/C/Common/Crc32.h @@ -1,6 +1,7 @@ /** @file +Header file for CalcuateCrc32 routine -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - Crc32.h - -Abstract: - - Header file for CalcuateCrc32 routine - **/ #ifndef _CRC32_H diff --git a/BaseTools/Source/C/Common/Decompress.c b/BaseTools/Source/C/Common/Decompress.c index a12fc595a7..48578ea2f2 100644 --- a/BaseTools/Source/C/Common/Decompress.c +++ b/BaseTools/Source/C/Common/Decompress.c @@ -1,6 +1,8 @@ /** @file +Decompressor. Algorithm Ported from OPSD code (Decomp.asm) for Efi and Tiano +compress algorithm. -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,15 +11,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - Decompress.c - -Abstract: - - Decompressor. Algorithm Ported from OPSD code (Decomp.asm) - for Efi and Tiano compress algorithm. - --*/ #include diff --git a/BaseTools/Source/C/Common/Decompress.h b/BaseTools/Source/C/Common/Decompress.h index b5c978855c..004804c145 100644 --- a/BaseTools/Source/C/Common/Decompress.h +++ b/BaseTools/Source/C/Common/Decompress.h @@ -1,6 +1,7 @@ /** @file +Header file for compression routine -Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - Decompress.h - -Abstract: - - Header file for compression routine - **/ #ifndef _EFI_DECOMPRESS_H diff --git a/BaseTools/Source/C/Common/EfiCompress.c b/BaseTools/Source/C/Common/EfiCompress.c index ed491ae36d..bd86d1276a 100644 --- a/BaseTools/Source/C/Common/EfiCompress.c +++ b/BaseTools/Source/C/Common/EfiCompress.c @@ -1,6 +1,10 @@ /** @file - -Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+Compression routine. The compression algorithm is a mixture of LZ77 and Huffman +coding. LZ77 transforms the source data into a sequence of Original Characters +and Pointers to repeated strings. This sequence is further divided into Blocks +and Huffman codings are applied to each Block. + +Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,18 +13,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - EfiCompress.c - -Abstract: - - Compression routine. The compression algorithm is a mixture of - LZ77 and Huffman coding. LZ77 transforms the source data into a - sequence of Original Characters and Pointers to repeated strings. - This sequence is further divided into Blocks and Huffman codings - are applied to each Block. - **/ #include "Compress.h" diff --git a/BaseTools/Source/C/Common/EfiUtilityMsgs.c b/BaseTools/Source/C/Common/EfiUtilityMsgs.c index dc9b0ffaa2..438f338a91 100644 --- a/BaseTools/Source/C/Common/EfiUtilityMsgs.c +++ b/BaseTools/Source/C/Common/EfiUtilityMsgs.c @@ -1,6 +1,7 @@ /** @file +EFI tools utility functions to display warning, error, and informational messages -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,15 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - EfiUtilityMsgs.c - -Abstract: - - EFI tools utility functions to display warning, error, and informational - messages. - --*/ #include diff --git a/BaseTools/Source/C/Common/EfiUtilityMsgs.h b/BaseTools/Source/C/Common/EfiUtilityMsgs.h index 35cb1802fe..40b5e10c08 100644 --- a/BaseTools/Source/C/Common/EfiUtilityMsgs.h +++ b/BaseTools/Source/C/Common/EfiUtilityMsgs.h @@ -1,6 +1,7 @@ /** @file +Defines and prototypes for common EFI utility error and debug messages. -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - EfiUtilityMsgs.h - -Abstract: - - Defines and prototypes for common EFI utility error and debug messages. - **/ #ifndef _EFI_UTILITY_MSGS_H_ diff --git a/BaseTools/Source/C/Common/FirmwareVolumeBuffer.c b/BaseTools/Source/C/Common/FirmwareVolumeBuffer.c index fa6ca6bd6d..01d4e72a56 100644 --- a/BaseTools/Source/C/Common/FirmwareVolumeBuffer.c +++ b/BaseTools/Source/C/Common/FirmwareVolumeBuffer.c @@ -1,4 +1,5 @@ /** @file +EFI Firmware Volume routines which work on a Fv image in buffers. Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - FirmwareVolumeBuffer.c - -Abstract: - - EFI Firmware Volume routines which work on a Fv image in buffers. - **/ #include "FirmwareVolumeBufferLib.h" @@ -32,6 +25,11 @@ Abstract: ) \ ) + +// +// Local prototypes +// + STATIC UINT32 FvBufGetSecHdrLen( diff --git a/BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h b/BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h index 49b380b961..e07c8b98d8 100644 --- a/BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h +++ b/BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h @@ -1,4 +1,5 @@ /** @file +EFI Firmware Volume routines which work on a Fv image in buffers. Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - FirmwareVolumeBufferLib.h - -Abstract: - - EFI Firmware Volume routines which work on a Fv image in buffers. - **/ #ifndef FirmwareVolumeBuffer_h_INCLUDED diff --git a/BaseTools/Source/C/Common/FvLib.c b/BaseTools/Source/C/Common/FvLib.c index 4758749dc3..1b3c08bf16 100644 --- a/BaseTools/Source/C/Common/FvLib.c +++ b/BaseTools/Source/C/Common/FvLib.c @@ -1,6 +1,7 @@ /** @file +These functions assist in parsing and manipulating a Firmware Volume. -Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - FvLib.c - -Abstract: - - These functions assist in parsing and manipulating a Firmware Volume. - **/ // diff --git a/BaseTools/Source/C/Common/FvLib.h b/BaseTools/Source/C/Common/FvLib.h index 567430a378..751bb38c53 100644 --- a/BaseTools/Source/C/Common/FvLib.h +++ b/BaseTools/Source/C/Common/FvLib.h @@ -1,6 +1,7 @@ /** @file - -Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.
+These functions assist in parsing and manipulating a Firmware Volume. + +Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - FvLib.h - -Abstract: - - These functions assist in parsing and manipulating a Firmware Volume. - **/ #ifndef _EFI_FV_LIB_H diff --git a/BaseTools/Source/C/Common/MemoryFile.c b/BaseTools/Source/C/Common/MemoryFile.c index a93a505788..7b1aa111d1 100644 --- a/BaseTools/Source/C/Common/MemoryFile.c +++ b/BaseTools/Source/C/Common/MemoryFile.c @@ -1,6 +1,7 @@ /** @file +This contains some useful functions for accessing files. -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - MemoryFile.c - -Abstract: - - This contains some useful functions for accessing files. - **/ #include diff --git a/BaseTools/Source/C/Common/MemoryFile.h b/BaseTools/Source/C/Common/MemoryFile.h index 0568fed5f2..552417a5a6 100644 --- a/BaseTools/Source/C/Common/MemoryFile.h +++ b/BaseTools/Source/C/Common/MemoryFile.h @@ -1,4 +1,5 @@ /** @file +Header file for helper functions useful for accessing files. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - MemoryFile.h - -Abstract: - - Header file for helper functions useful for accessing files. - **/ #ifndef _EFI_MEMORY_FILE_H diff --git a/BaseTools/Source/C/Common/MyAlloc.c b/BaseTools/Source/C/Common/MyAlloc.c index 7b0493aaa0..eabba5790d 100644 --- a/BaseTools/Source/C/Common/MyAlloc.c +++ b/BaseTools/Source/C/Common/MyAlloc.c @@ -1,6 +1,7 @@ /** @file +File for memory allocation tracking functions. -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - MyAlloc.c - -Abstract: - - File for memory allocation tracking functions. - **/ #include "MyAlloc.h" diff --git a/BaseTools/Source/C/Common/MyAlloc.h b/BaseTools/Source/C/Common/MyAlloc.h index 217beb1484..e220e637ae 100644 --- a/BaseTools/Source/C/Common/MyAlloc.h +++ b/BaseTools/Source/C/Common/MyAlloc.h @@ -1,6 +1,7 @@ /** @file +Header file for memory allocation tracking functions. -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - MyAlloc.h - -Abstract: - - Header file for memory allocation tracking functions. - **/ #ifndef _MYALLOC_H_ diff --git a/BaseTools/Source/C/Common/OsPath.c b/BaseTools/Source/C/Common/OsPath.c index 07b47f09b4..7c90dfe12d 100644 --- a/BaseTools/Source/C/Common/OsPath.c +++ b/BaseTools/Source/C/Common/OsPath.c @@ -1,4 +1,5 @@ /** @file +Functions useful to operate file directories by parsing file path. Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - StringFuncs.c - -Abstract: - - Functions useful to operate file directories by parsing file path. - **/ #include diff --git a/BaseTools/Source/C/Common/OsPath.h b/BaseTools/Source/C/Common/OsPath.h index 9e7df070c5..0deaa9e7ab 100644 --- a/BaseTools/Source/C/Common/OsPath.h +++ b/BaseTools/Source/C/Common/OsPath.h @@ -1,6 +1,8 @@ /** @file +Header file for helper functions useful to operate file directories by parsing +file path. -Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,15 +11,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - OsPath.h - -Abstract: - - Header file for helper functions useful to operate file directories - by parsing file path. - **/ #ifndef _EFI_OS_PATH_H diff --git a/BaseTools/Source/C/Common/ParseGuidedSectionTools.c b/BaseTools/Source/C/Common/ParseGuidedSectionTools.c index 8ddfd00b7e..e3f0ccb597 100644 --- a/BaseTools/Source/C/Common/ParseGuidedSectionTools.c +++ b/BaseTools/Source/C/Common/ParseGuidedSectionTools.c @@ -1,6 +1,7 @@ /** @file +Helper functions for parsing GuidedSectionTools.txt -Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - ParseGuidedSectionTools.c - -Abstract: - - Helper functions for parsing GuidedSectionTools.txt - **/ #include diff --git a/BaseTools/Source/C/Common/ParseGuidedSectionTools.h b/BaseTools/Source/C/Common/ParseGuidedSectionTools.h index b4c55974e3..d9c1f8cb43 100644 --- a/BaseTools/Source/C/Common/ParseGuidedSectionTools.h +++ b/BaseTools/Source/C/Common/ParseGuidedSectionTools.h @@ -1,6 +1,7 @@ /** @file +Header file for helper functions for parsing GuidedSectionTools.txt -Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - ParseGuidedSectionTools.h - -Abstract: - - Header file for helper functions for parsing GuidedSectionTools.txt - **/ #ifndef _EFI_PARSE_GUIDED_SECTION_TOOLS_H diff --git a/BaseTools/Source/C/Common/ParseInf.c b/BaseTools/Source/C/Common/ParseInf.c index 00ae0e65a1..9e85a88730 100644 --- a/BaseTools/Source/C/Common/ParseInf.c +++ b/BaseTools/Source/C/Common/ParseInf.c @@ -1,4 +1,5 @@ /** @file +This contains some useful functions for parsing INF files. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,15 +10,7 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - ParseInf.c - -Abstract: - - This contains some useful functions for parsing INF files. - ---*/ +**/ #include #include diff --git a/BaseTools/Source/C/Common/ParseInf.h b/BaseTools/Source/C/Common/ParseInf.h index 6215ea2e78..80ee3887ad 100644 --- a/BaseTools/Source/C/Common/ParseInf.h +++ b/BaseTools/Source/C/Common/ParseInf.h @@ -1,4 +1,5 @@ /** @file +Header file for helper functions useful for parsing INF files. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - ParseInf.h - -Abstract: - - Header file for helper functions useful for parsing INF files. - **/ #ifndef _EFI_PARSE_INF_H diff --git a/BaseTools/Source/C/Common/PeCoffLib.h b/BaseTools/Source/C/Common/PeCoffLib.h index fe6b29251b..b56dd75384 100644 --- a/BaseTools/Source/C/Common/PeCoffLib.h +++ b/BaseTools/Source/C/Common/PeCoffLib.h @@ -1,7 +1,7 @@ /** @file Function prototypes and defines on Memory Only PE COFF loader - Copyright (c) 2006, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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 @@ -10,8 +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. - Module Name: PeCoffLib.h - **/ #ifndef __BASE_PE_COFF_LIB_H__ diff --git a/BaseTools/Source/C/Common/PeCoffLoaderEx.c b/BaseTools/Source/C/Common/PeCoffLoaderEx.c index 8d6b3961f5..b7b7227f57 100644 --- a/BaseTools/Source/C/Common/PeCoffLoaderEx.c +++ b/BaseTools/Source/C/Common/PeCoffLoaderEx.c @@ -1,6 +1,7 @@ /** @file +IA32, X64 and IPF Specific relocation fixups -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
Portions Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -10,16 +11,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - PeCoffLoaderEx.c - -Abstract: - - IA32, X64, IPF, ARM and AArch64 Specific relocation fixups - -Revision History - --*/ #include diff --git a/BaseTools/Source/C/Common/SimpleFileParsing.c b/BaseTools/Source/C/Common/SimpleFileParsing.c index 3978e6ed3c..877bb6fd51 100644 --- a/BaseTools/Source/C/Common/SimpleFileParsing.c +++ b/BaseTools/Source/C/Common/SimpleFileParsing.c @@ -1,4 +1,5 @@ /** @file +Generic but simple file parsing routines. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - SimpleFileParsing.c - -Abstract: - - Generic but simple file parsing routines. - --*/ #include diff --git a/BaseTools/Source/C/Common/SimpleFileParsing.h b/BaseTools/Source/C/Common/SimpleFileParsing.h index d871eb7fe3..7265232d72 100644 --- a/BaseTools/Source/C/Common/SimpleFileParsing.h +++ b/BaseTools/Source/C/Common/SimpleFileParsing.h @@ -1,6 +1,7 @@ /** @file +Function prototypes and defines for the simple file parsing routines. -Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - SimpleFileParsing.h - -Abstract: - - Function prototypes and defines for the simple file parsing routines. - **/ #ifndef _SIMPLE_FILE_PARSING_H_ diff --git a/BaseTools/Source/C/Common/StringFuncs.c b/BaseTools/Source/C/Common/StringFuncs.c index bccb0b2d34..a2bb87fe1b 100644 --- a/BaseTools/Source/C/Common/StringFuncs.c +++ b/BaseTools/Source/C/Common/StringFuncs.c @@ -1,6 +1,7 @@ /** @file +Function prototypes and defines for string routines. -Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - StringFuncs.c - -Abstract: - - Function prototypes and defines for string routines. - **/ #include diff --git a/BaseTools/Source/C/Common/StringFuncs.h b/BaseTools/Source/C/Common/StringFuncs.h index 2c764115e5..4acbf106f7 100644 --- a/BaseTools/Source/C/Common/StringFuncs.h +++ b/BaseTools/Source/C/Common/StringFuncs.h @@ -1,6 +1,7 @@ -/** +/** @file +String routines implementation -Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - StringFuncs.h - -Abstract: - - String routines implementation. - **/ #ifndef _EFI_STRING_FUNCS_H diff --git a/BaseTools/Source/C/Common/TianoCompress.c b/BaseTools/Source/C/Common/TianoCompress.c index a34f1d2a7d..e5175fcffe 100644 --- a/BaseTools/Source/C/Common/TianoCompress.c +++ b/BaseTools/Source/C/Common/TianoCompress.c @@ -1,6 +1,10 @@ /** @file - -Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+Compression routine. The compression algorithm is a mixture of LZ77 and Huffman +coding. LZ77 transforms the source data into a sequence of Original Characters +and Pointers to repeated strings. This sequence is further divided into Blocks +and Huffman codings are applied to each Block. + +Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,18 +13,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - TianoCompress.c - -Abstract: - - Compression routine. The compression algorithm is a mixture of - LZ77 and Huffman coding. LZ77 transforms the source data into a - sequence of Original Characters and Pointers to repeated strings. - This sequence is further divided into Blocks and Huffman codings - are applied to each Block. - **/ #include "Compress.h" diff --git a/BaseTools/Source/C/Common/WinNtInclude.h b/BaseTools/Source/C/Common/WinNtInclude.h index 1ad8ba261a..6b6af2e727 100644 --- a/BaseTools/Source/C/Common/WinNtInclude.h +++ b/BaseTools/Source/C/Common/WinNtInclude.h @@ -1,4 +1,5 @@ /** @file +Include file for the WinNt Library Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,12 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - WinNtInclude.h - -Abstract: - Include file for the WinNt Library - **/ #ifndef __WIN_NT_INCLUDE_H__ diff --git a/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c b/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c index e1d9de4d3c..31d697ec51 100644 --- a/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c +++ b/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c @@ -1,5 +1,11 @@ /** @file - +Creates and EFILDR image. +This tool combines several PE Image files together using following format denoted as EBNF: +FILE := EFILDR_HEADER + EFILDR_IMAGE + + + +The order of EFILDR_IMAGE is same as the order of placing PeImageFileContent. + Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -9,21 +15,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - efildrimage.c - -Abstract: - - Creates and EFILDR image. - This tool combines several PE Image files together using following format denoted as EBNF: - FILE := EFILDR_HEADER - EFILDR_IMAGE + - + - The order of EFILDR_IMAGE is same as the order of placing PeImageFileContent. - -Revision History - **/ diff --git a/BaseTools/Source/C/EfiRom/EfiRom.c b/BaseTools/Source/C/EfiRom/EfiRom.c index 838ee25cba..7a57912516 100644 --- a/BaseTools/Source/C/EfiRom/EfiRom.c +++ b/BaseTools/Source/C/EfiRom/EfiRom.c @@ -1,4 +1,5 @@ /** @file +Utility program to create an EFI option ROM image from binary and EFI PE32 files. Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available @@ -9,15 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - EfiRom.c - -Abstract: - - Utility program to create an EFI option ROM image from binary and - EFI PE32 files. - **/ #include "EfiUtilityMsgs.h" diff --git a/BaseTools/Source/C/EfiRom/EfiRom.h b/BaseTools/Source/C/EfiRom/EfiRom.h index d87c4c61b7..1214700826 100644 --- a/BaseTools/Source/C/EfiRom/EfiRom.h +++ b/BaseTools/Source/C/EfiRom/EfiRom.h @@ -1,6 +1,7 @@ /** @file +This file contains the relevant declarations required to generate Option Rom File -Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,16 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - EfiRom.h - -Abstract: - - This file contains the relevant declarations required - to generate Option Rom File - **/ #ifndef __EFI_ROM_H__ diff --git a/BaseTools/Source/C/GenBootSector/GenBootSector.c b/BaseTools/Source/C/GenBootSector/GenBootSector.c index c13b57735e..40cb19fb59 100644 --- a/BaseTools/Source/C/GenBootSector/GenBootSector.c +++ b/BaseTools/Source/C/GenBootSector/GenBootSector.c @@ -1,5 +1,9 @@ /** @file - +Reading/writing MBR/DBR. + NOTE: + If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written. + If we process DBR, we will patch MBR to set first partition active if no active partition exists. + Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -9,16 +13,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - genbootsector.c - -Abstract: - Reading/writing MBR/DBR. - NOTE: - If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written. - If we process DBR, we will patch MBR to set first partition active if no active partition exists. - **/ #include diff --git a/BaseTools/Source/C/GenCrc32/GenCrc32.c b/BaseTools/Source/C/GenCrc32/GenCrc32.c index bc245fc94e..ad8cf57760 100644 --- a/BaseTools/Source/C/GenCrc32/GenCrc32.c +++ b/BaseTools/Source/C/GenCrc32/GenCrc32.c @@ -1,4 +1,5 @@ /** @file +Calculate Crc32 value and Verify Crc32 value for input data. Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,13 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - GenCrc32.c - -Abstract: - Calculate Crc32 value and Verify Crc32 value for input data. - **/ #include diff --git a/BaseTools/Source/C/GenFfs/GenFfs.c b/BaseTools/Source/C/GenFfs/GenFfs.c index 765c0b27da..52092e36e7 100644 --- a/BaseTools/Source/C/GenFfs/GenFfs.c +++ b/BaseTools/Source/C/GenFfs/GenFfs.c @@ -1,4 +1,5 @@ -/** +/** @file +This file contains functions required to generate a Firmware File System file. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,15 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - GenFfs.c - -Abstract: - - This file contains functions required to generate a Firmware File System - file. - **/ #include @@ -899,7 +891,7 @@ Returns: // Open output file to write ffs data. // remove(OutputFileName); - FfsFile = fopen (OutputFileName, "wb"); + FfsFile = fopen (LongFilePath (OutputFileName), "wb"); if (FfsFile == NULL) { Error (NULL, 0, 0001, "Error opening file", OutputFileName); goto Finish; diff --git a/BaseTools/Source/C/GenFv/GenFv.c b/BaseTools/Source/C/GenFv/GenFv.c index 56c52b850f..01ae37acd7 100644 --- a/BaseTools/Source/C/GenFv/GenFv.c +++ b/BaseTools/Source/C/GenFv/GenFv.c @@ -1,4 +1,8 @@ /** @file + This contains all code necessary to build the GenFvImage.exe utility. + This utility relies heavily on the GenFvImage Lib. Definitions for both + can be found in the Tiano Firmware Volume Generation Utility + Specification, review draft. Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,17 +13,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - GenFv.c - -Abstract: - - This contains all code necessary to build the GenFvImage.exe utility. - This utility relies heavily on the GenFvImage Lib. Definitions for both - can be found in the Tiano Firmware Volume Generation Utility - Specification, review draft. - **/ // diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Source/C/GenFv/GenFvInternalLib.c index 6ac542d6c0..ed9d496b7b 100644 --- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c +++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c @@ -1,4 +1,5 @@ /** @file +This file contains the internal functions required to generate a Firmware Volume. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
Portions Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.
@@ -10,14 +11,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - GenFvInternalLib.c - -Abstract: - - This file contains the internal functions required to generate a Firmware Volume. - **/ // diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.h b/BaseTools/Source/C/GenFv/GenFvInternalLib.h index f8eecbade1..f039fa4dc7 100644 --- a/BaseTools/Source/C/GenFv/GenFvInternalLib.h +++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.h @@ -1,5 +1,7 @@ /** @file - +This file contains describes the public interfaces to the GenFvImage Library. +The basic purpose of the library is to create Firmware Volume images. + Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -9,15 +11,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - GenFvInternalLib.h - -Abstract: - - This file contains describes the public interfaces to the GenFvImage Library. - The basic purpose of the library is to create Firmware Volume images. - **/ #ifndef _EFI_GEN_FV_INTERNAL_LIB_H diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.c b/BaseTools/Source/C/GenFw/Elf32Convert.c index 97c9380c8d..85e8ba6614 100644 --- a/BaseTools/Source/C/GenFw/Elf32Convert.c +++ b/BaseTools/Source/C/GenFw/Elf32Convert.c @@ -1,6 +1,7 @@ /** @file +Elf32 Convert solution -Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
Portions copyright (c) 2013, ARM Ltd. All rights reserved.
This program and the accompanying materials are licensed and made available diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.h b/BaseTools/Source/C/GenFw/Elf32Convert.h index e6a11d57bc..65fa552068 100644 --- a/BaseTools/Source/C/GenFw/Elf32Convert.h +++ b/BaseTools/Source/C/GenFw/Elf32Convert.h @@ -1,6 +1,7 @@ /** @file +Header file for Elf32 Convert solution -Copyright (c) 2010, Intel Corporation. All rights reserved.
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c index 3f9a11a4bc..526ab5d41f 100644 --- a/BaseTools/Source/C/GenFw/Elf64Convert.c +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c @@ -1,6 +1,7 @@ /** @file +Elf64 convert solution -Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
Portions copyright (c) 2013-2014, ARM Ltd. All rights reserved.
This program and the accompanying materials are licensed and made available diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.h b/BaseTools/Source/C/GenFw/Elf64Convert.h index 1e3a0dfcc2..7a1d6ae013 100644 --- a/BaseTools/Source/C/GenFw/Elf64Convert.h +++ b/BaseTools/Source/C/GenFw/Elf64Convert.h @@ -1,6 +1,7 @@ /** @file +Header file for Elf64 convert solution -Copyright (c) 2010, Intel Corporation. All rights reserved.
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this diff --git a/BaseTools/Source/C/GenFw/ElfConvert.c b/BaseTools/Source/C/GenFw/ElfConvert.c index 17689cf27f..1a84d3c287 100644 --- a/BaseTools/Source/C/GenFw/ElfConvert.c +++ b/BaseTools/Source/C/GenFw/ElfConvert.c @@ -1,6 +1,7 @@ /** @file +Elf convert solution -Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this diff --git a/BaseTools/Source/C/GenFw/ElfConvert.h b/BaseTools/Source/C/GenFw/ElfConvert.h index 241dd6f44f..b27a2f9d22 100644 --- a/BaseTools/Source/C/GenFw/ElfConvert.h +++ b/BaseTools/Source/C/GenFw/ElfConvert.h @@ -1,6 +1,7 @@ /** @file +Header file for Elf convert solution -Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this diff --git a/BaseTools/Source/C/GenFw/GenFw.c b/BaseTools/Source/C/GenFw/GenFw.c index 56543b411b..4756c52762 100644 --- a/BaseTools/Source/C/GenFw/GenFw.c +++ b/BaseTools/Source/C/GenFw/GenFw.c @@ -1,4 +1,5 @@ /** @file +Converts a pe32+ image to an FW, Te image type, or other specific image. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - GenFw.c - -Abstract: - - Converts a pe32+ image to an FW, Te image type, or other specific image. - **/ #include "WinNtInclude.h" diff --git a/BaseTools/Source/C/GenFw/GenFw.h b/BaseTools/Source/C/GenFw/GenFw.h index 5249337745..b56181d13e 100644 --- a/BaseTools/Source/C/GenFw/GenFw.h +++ b/BaseTools/Source/C/GenFw/GenFw.h @@ -1,6 +1,7 @@ /** @file +Header file for GenFw -Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this diff --git a/BaseTools/Source/C/GenPage/GenPage.c b/BaseTools/Source/C/GenPage/GenPage.c index cb34a0719c..fb829e69cb 100644 --- a/BaseTools/Source/C/GenPage/GenPage.c +++ b/BaseTools/Source/C/GenPage/GenPage.c @@ -1,18 +1,4 @@ /** @file - -Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
-This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - GenPage.c - -Abstract: Pre-Create a 4G page table (2M pages). It's used in DUET x64 build needed to enter LongMode. @@ -28,6 +14,16 @@ Abstract: ( Directory-Ptr Directory {512} ) {4} + +Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
+This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + **/ #include diff --git a/BaseTools/Source/C/GenPage/VirtualMemory.h b/BaseTools/Source/C/GenPage/VirtualMemory.h index 3cfebd6c69..febf9158b1 100644 --- a/BaseTools/Source/C/GenPage/VirtualMemory.h +++ b/BaseTools/Source/C/GenPage/VirtualMemory.h @@ -1,6 +1,13 @@ /** @file +x64 Long Mode Virtual Memory Management Definitions -Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ References: + 1) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 1:Basic Architecture, Intel + 2) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 2:Instruction Set Reference, Intel + 3) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 3:System Programmer's Guide, Intel + 4) AMD64 Architecture Programmer's Manual Volume 2: System Programming + +Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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 @@ -8,19 +15,7 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - VirtualMemory.h -Abstract: - - x64 Long Mode Virtual Memory Management Definitions - - References: - 1) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 1:Basic Architecture, Intel - 2) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 2:Instruction Set Reference, Intel - 3) IA-32 Intel(R) Atchitecture Software Developer's Manual Volume 3:System Programmer's Guide, Intel - 4) AMD64 Architecture Programmer's Manual Volume 2: System Programming **/ #ifndef _VIRTUAL_MEMORY_H_ diff --git a/BaseTools/Source/C/GenSec/GenSec.c b/BaseTools/Source/C/GenSec/GenSec.c index f9370d3564..20b2a10dbb 100644 --- a/BaseTools/Source/C/GenSec/GenSec.c +++ b/BaseTools/Source/C/GenSec/GenSec.c @@ -1,4 +1,5 @@ /** @file +Creates output file that is a properly formed section per the PI spec. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - GenSection.c - -Abstract: - - Creates output file that is a properly formed section per the PI spec. - **/ #include diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c index 256a2b16a9..6f66ddc842 100644 --- a/BaseTools/Source/C/GenVtf/GenVtf.c +++ b/BaseTools/Source/C/GenVtf/GenVtf.c @@ -1,4 +1,6 @@ -/** +/** @file +This file contains functions required to generate a boot strap file (BSF) also +known as the Volume Top File (VTF) Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available @@ -9,16 +11,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - GenVtf.c - -Abstract: - - This file contains functions required to generate a boot strap file (BSF) - also known as the Volume Top File (VTF) - **/ // diff --git a/BaseTools/Source/C/GenVtf/GenVtf.h b/BaseTools/Source/C/GenVtf/GenVtf.h index 8ebc8d25f3..37d5f60506 100644 --- a/BaseTools/Source/C/GenVtf/GenVtf.h +++ b/BaseTools/Source/C/GenVtf/GenVtf.h @@ -1,6 +1,7 @@ /** @file - -Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.
+This file contains the relevant declarations required to generate Boot Strap File + +Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,16 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - GenVtf.h - -Abstract: - - This file contains the relevant declarations required - to generate Boot Strap File - **/ // diff --git a/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c b/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c index f9869c4441..1804e683fb 100644 --- a/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c +++ b/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c @@ -1,5 +1,9 @@ /** @file - +Reading/writing MBR/DBR. + NOTE: + If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written. + If we process DBR, we will patch MBR to set first partition active if no active partition exists. + Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -9,16 +13,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - GnuGenBootSector.c - -Abstract: - Reading/writing MBR/DBR. - NOTE: - If we write MBR to disk, we just update the MBR code and the partition table wouldn't be over written. - If we process DBR, we will patch MBR to set first partition active if no active partition exists. - **/ #include "CommonLib.h" diff --git a/BaseTools/Source/C/Include/Common/BaseTypes.h b/BaseTools/Source/C/Include/Common/BaseTypes.h index 27934375ce..198647ab95 100644 --- a/BaseTools/Source/C/Include/Common/BaseTypes.h +++ b/BaseTools/Source/C/Include/Common/BaseTypes.h @@ -3,7 +3,7 @@ This file is stand alone self consistent set of definitions. - Copyright (c) 2006, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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 @@ -12,8 +12,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. - File Name: BaseTypes.h - **/ #ifndef __BASE_TYPES_H__ diff --git a/BaseTools/Source/C/Include/Common/BuildVersion.h b/BaseTools/Source/C/Include/Common/BuildVersion.h index 764bebfa93..d5bc56cb87 100644 --- a/BaseTools/Source/C/Include/Common/BuildVersion.h +++ b/BaseTools/Source/C/Include/Common/BuildVersion.h @@ -1,16 +1,14 @@ /** @file - This file is for build version number auto generation +This file is for build version number auto generation - Copyright (c) 2011, Intel Corporation. All rights reserved.
- This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php +Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.
+This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - - File Name: BuildVersion.h +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ diff --git a/BaseTools/Source/C/Include/Common/MdeModuleHii.h b/BaseTools/Source/C/Include/Common/MdeModuleHii.h index b756fef2c3..21c8387474 100644 --- a/BaseTools/Source/C/Include/Common/MdeModuleHii.h +++ b/BaseTools/Source/C/Include/Common/MdeModuleHii.h @@ -1,18 +1,16 @@ /** @file EDK II specific HII relative definition. - Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: MdeModuleHii.h - **/ #ifndef _MDEMODULE_HII_H diff --git a/BaseTools/Source/C/Include/Common/PiFirmwareFile.h b/BaseTools/Source/C/Include/Common/PiFirmwareFile.h index 1790c3a1e8..ec31eab8a8 100644 --- a/BaseTools/Source/C/Include/Common/PiFirmwareFile.h +++ b/BaseTools/Source/C/Include/Common/PiFirmwareFile.h @@ -1,21 +1,19 @@ /** @file The firmware file related definitions in PI. + + @par Revision Reference: + Version 1.0. - Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: PiFirmwareFile.h - - @par Revision Reference: - Version 1.0. - **/ #ifndef __PI_FIRMWARE_FILE_H__ diff --git a/BaseTools/Source/C/Include/Common/PiFirmwareVolume.h b/BaseTools/Source/C/Include/Common/PiFirmwareVolume.h index 9d62a9bc3d..b5c2b03844 100644 --- a/BaseTools/Source/C/Include/Common/PiFirmwareVolume.h +++ b/BaseTools/Source/C/Include/Common/PiFirmwareVolume.h @@ -1,21 +1,19 @@ /** @file The firmware volume related definitions in PI. - Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+ @par Revision Reference: + Version 1.2C + + Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: PiFirmwareVolume.h - - @par Revision Reference: - Version 1.2C - **/ #ifndef __PI_FIRMWAREVOLUME_H__ diff --git a/BaseTools/Source/C/Include/Common/UefiBaseTypes.h b/BaseTools/Source/C/Include/Common/UefiBaseTypes.h index 8f27ed7bc6..b7364b6201 100644 --- a/BaseTools/Source/C/Include/Common/UefiBaseTypes.h +++ b/BaseTools/Source/C/Include/Common/UefiBaseTypes.h @@ -1,18 +1,16 @@ /** @file Defines data types and constants introduced in UEFI. - Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: UefiBaseTypes.h - **/ #ifndef __UEFI_BASETYPE_H__ diff --git a/BaseTools/Source/C/Include/Common/UefiCapsule.h b/BaseTools/Source/C/Include/Common/UefiCapsule.h index a0f6c6af08..c3ee9a98a9 100644 --- a/BaseTools/Source/C/Include/Common/UefiCapsule.h +++ b/BaseTools/Source/C/Include/Common/UefiCapsule.h @@ -1,21 +1,18 @@ /** @file Defines for the EFI Capsule functionality. + @par Revision Reference: + These definitions are from Uefi Spec. - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: Capsule.h - - @par Revision Reference: - These definitions are from Uefi Spec. - **/ #ifndef _EFI_CAPSULE_H_ diff --git a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h index ea5f211e9b..2da3f547bd 100644 --- a/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h +++ b/BaseTools/Source/C/Include/Common/UefiInternalFormRepresentation.h @@ -3,21 +3,19 @@ IFR is primarily consumed by the EFI presentation engine, and produced by EFI internal application and drivers as well as all add-in card option-ROM drivers - Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+ @par Revision Reference: + These definitions are from UEFI2.1. + + Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: UefiInternalFormRepresentation.h - - @par Revision Reference: - These definitions are from UEFI2.1. - **/ #ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__ diff --git a/BaseTools/Source/C/Include/Common/UefiMultiPhase.h b/BaseTools/Source/C/Include/Common/UefiMultiPhase.h index 7c487471a8..5fb3d5e9d4 100644 --- a/BaseTools/Source/C/Include/Common/UefiMultiPhase.h +++ b/BaseTools/Source/C/Include/Common/UefiMultiPhase.h @@ -1,18 +1,17 @@ /** @file - This includes some definitions introduced in UEFI that will be used in both PEI and DXE phases. + This includes some definitions introduced in UEFI that will be used in both PEI + and DXE phases. - Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: UefiMultiPhase.h - **/ #ifndef __UEFI_MULTIPHASE_H__ diff --git a/BaseTools/Source/C/Include/Common/VariableFormat.h b/BaseTools/Source/C/Include/Common/VariableFormat.h index a0e25be878..6e484200be 100644 --- a/BaseTools/Source/C/Include/Common/VariableFormat.h +++ b/BaseTools/Source/C/Include/Common/VariableFormat.h @@ -1,18 +1,16 @@ /**@file Header file for EFI Variable Services. - Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+ Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: VariableFormat.h - **/ #ifndef __VARIABLE_FORMAT_H__ diff --git a/BaseTools/Source/C/Include/Common/WorkingBlockHeader.h b/BaseTools/Source/C/Include/Common/WorkingBlockHeader.h index 01fba26a05..30e4b7e822 100644 --- a/BaseTools/Source/C/Include/Common/WorkingBlockHeader.h +++ b/BaseTools/Source/C/Include/Common/WorkingBlockHeader.h @@ -4,18 +4,16 @@ working block, the header structure of the variable block, FTW working block, or event log block. - Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: WorkingBlockHeader.h - **/ #ifndef __EFI_WORKING_BLOCK_HEADER_H__ diff --git a/BaseTools/Source/C/Include/Guid/PcAnsi.h b/BaseTools/Source/C/Include/Guid/PcAnsi.h index 3691e27244..9f12ca2a48 100644 --- a/BaseTools/Source/C/Include/Guid/PcAnsi.h +++ b/BaseTools/Source/C/Include/Guid/PcAnsi.h @@ -1,21 +1,18 @@ /** @file Terminal Device Path Vendor Guid. - - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ @par Revision Reference: + GUIDs defined in UEFI 2.0 spec. + + Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: PcAnsi.h - - @par Revision Reference: - GUIDs defined in UEFI 2.0 spec. - **/ #ifndef __PC_ANSI_H__ diff --git a/BaseTools/Source/C/Include/Guid/PiFirmwareFileSystem.h b/BaseTools/Source/C/Include/Guid/PiFirmwareFileSystem.h index 3a4be34634..03d0c71d2d 100644 --- a/BaseTools/Source/C/Include/Guid/PiFirmwareFileSystem.h +++ b/BaseTools/Source/C/Include/Guid/PiFirmwareFileSystem.h @@ -1,22 +1,20 @@ /** @file Guid used to define the Firmware File System. See PI spec volume 3 for more details. + + @par Revision Reference: + Guids defined in PI Spec Volume 3 - Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: PiFirmwareFileSystem.h - - @par Revision Reference: - Guids defined in PI Spec Volume 3 - **/ #ifndef __FIRMWARE_FILE_SYSTEM2_GUID_H__ diff --git a/BaseTools/Source/C/Include/Ia32/ProcessorBind.h b/BaseTools/Source/C/Include/Ia32/ProcessorBind.h index f1ed522b42..bbe59a51c7 100644 --- a/BaseTools/Source/C/Include/Ia32/ProcessorBind.h +++ b/BaseTools/Source/C/Include/Ia32/ProcessorBind.h @@ -1,18 +1,16 @@ /** @file Processor or Compiler specific defines and types for x64. - Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: ProcessorBind.h - **/ #ifndef __PROCESSOR_BIND_H__ diff --git a/BaseTools/Source/C/Include/IndustryStandard/Acpi.h b/BaseTools/Source/C/Include/IndustryStandard/Acpi.h index 6b4179086c..28b4f41a76 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/Acpi.h +++ b/BaseTools/Source/C/Include/IndustryStandard/Acpi.h @@ -2,18 +2,16 @@ This file contains some basic ACPI definitions that are consumed by drivers that do not care about ACPI versions. - Copyright (c) 2006, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: Acpi.h - **/ #ifndef _ACPI_H_ diff --git a/BaseTools/Source/C/Include/IndustryStandard/Acpi1_0.h b/BaseTools/Source/C/Include/IndustryStandard/Acpi1_0.h index a118e4ffa2..942a2a35b3 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/Acpi1_0.h +++ b/BaseTools/Source/C/Include/IndustryStandard/Acpi1_0.h @@ -1,18 +1,16 @@ /** @file ACPI 1.0b definitions from the ACPI Specification, revision 1.0b - Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: Acpi1_0.h - **/ #ifndef _ACPI_1_0_H_ diff --git a/BaseTools/Source/C/Include/IndustryStandard/Acpi2_0.h b/BaseTools/Source/C/Include/IndustryStandard/Acpi2_0.h index 9cbd5e00b7..3a109ffa08 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/Acpi2_0.h +++ b/BaseTools/Source/C/Include/IndustryStandard/Acpi2_0.h @@ -1,18 +1,16 @@ /** @file ACPI 2.0 definitions from the ACPI Specification, revision 2.0 - Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: Acpi2_0.h - **/ #ifndef _ACPI_2_0_H_ diff --git a/BaseTools/Source/C/Include/IndustryStandard/Acpi3_0.h b/BaseTools/Source/C/Include/IndustryStandard/Acpi3_0.h index 47824eff3a..ad635efc74 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/Acpi3_0.h +++ b/BaseTools/Source/C/Include/IndustryStandard/Acpi3_0.h @@ -1,18 +1,16 @@ /** @file ACPI 3.0 definitions from the ACPI Specification Revision 3.0 September 2, 2004 - Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: Acpi3_0.h - **/ #ifndef _ACPI_3_0_H_ diff --git a/BaseTools/Source/C/Include/IndustryStandard/EfiPci.h b/BaseTools/Source/C/Include/IndustryStandard/EfiPci.h index bd23e5a5ee..8cd423430f 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/EfiPci.h +++ b/BaseTools/Source/C/Include/IndustryStandard/EfiPci.h @@ -1,18 +1,16 @@ /** @file Support for EFI PCI specification. - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this - distribution. The full text of the license may be found at: - http://opensource.org/licenses/bsd-license.php + distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: EfiPci.h - **/ #ifndef _EFI_PCI_H_ diff --git a/BaseTools/Source/C/Include/IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h b/BaseTools/Source/C/Include/IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h index b661eecb5d..552c457f80 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h +++ b/BaseTools/Source/C/Include/IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h @@ -3,18 +3,16 @@ in the PCI Firmware Specification, version 3.0 draft version 0.5. Specification is available at http://www.pcisig.com. - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this - distribution. The full text of the license may be found at: - http://opensource.org/licenses/bsd-license.php + distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: MemoryMappedConfigurationSpaceAccessTable.h - **/ #ifndef _MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_H_ diff --git a/BaseTools/Source/C/Include/IndustryStandard/PeImage.h b/BaseTools/Source/C/Include/IndustryStandard/PeImage.h index 5d55f4d663..8c197f43bb 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/PeImage.h +++ b/BaseTools/Source/C/Include/IndustryStandard/PeImage.h @@ -4,19 +4,17 @@ @bug Fix text - doc as defined in MSFT EFI specification. - Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: PeImage.h - **/ #ifndef __PE_IMAGE_H__ diff --git a/BaseTools/Source/C/Include/IndustryStandard/pci22.h b/BaseTools/Source/C/Include/IndustryStandard/pci22.h index e07aa88cae..26c1541e39 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/pci22.h +++ b/BaseTools/Source/C/Include/IndustryStandard/pci22.h @@ -1,18 +1,16 @@ /** @file Support for PCI 2.2 standard. - Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this - distribution. The full text of the license may be found at: - http://opensource.org/licenses/bsd-license.php + distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: pci22.h - **/ #ifndef _PCI22_H diff --git a/BaseTools/Source/C/Include/IndustryStandard/pci23.h b/BaseTools/Source/C/Include/IndustryStandard/pci23.h index 491d05f11a..b9f2016949 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/pci23.h +++ b/BaseTools/Source/C/Include/IndustryStandard/pci23.h @@ -1,18 +1,16 @@ /** @file Support for PCI 2.3 standard. - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this - distribution. The full text of the license may be found at: - http://opensource.org/licenses/bsd-license.php + distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: pci23.h - **/ #ifndef _PCI23_H diff --git a/BaseTools/Source/C/Include/IndustryStandard/pci30.h b/BaseTools/Source/C/Include/IndustryStandard/pci30.h index 5477f44fed..667be3dbc9 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/pci30.h +++ b/BaseTools/Source/C/Include/IndustryStandard/pci30.h @@ -1,18 +1,16 @@ /** @file Support for PCI 3.0 standard. - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this - distribution. The full text of the license may be found at: - http://opensource.org/licenses/bsd-license.php + distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: pci30.h - **/ #ifndef _PCI30_H diff --git a/BaseTools/Source/C/Include/Protocol/GraphicsOutput.h b/BaseTools/Source/C/Include/Protocol/GraphicsOutput.h index cdcc28f40a..5b55fc57b8 100644 --- a/BaseTools/Source/C/Include/Protocol/GraphicsOutput.h +++ b/BaseTools/Source/C/Include/Protocol/GraphicsOutput.h @@ -3,18 +3,16 @@ Abstraction of a very simple graphics device. - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: GraphicsOutput.h - **/ #ifndef __GRAPHICS_OUTPUT_H__ diff --git a/BaseTools/Source/C/Include/Protocol/GuidedSectionExtraction.h b/BaseTools/Source/C/Include/Protocol/GuidedSectionExtraction.h index 6a1114d053..597601a7f4 100644 --- a/BaseTools/Source/C/Include/Protocol/GuidedSectionExtraction.h +++ b/BaseTools/Source/C/Include/Protocol/GuidedSectionExtraction.h @@ -5,22 +5,20 @@ section. There may be multiple different GUIDs associated with the GUIDed section extraction protocol. That is, all instances of the GUIDed section extraction protocol must have the same interface structure. - - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ + @par Revision Reference: PI + Version 1.00. + + Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this - distribution. The full text of the license may be found at: - http://opensource.org/licenses/bsd-license.php + distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: EfiGuidedSectionExtraction.h - - @par Revision Reference: PI - Version 1.00. - **/ #ifndef __EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL_H__ diff --git a/BaseTools/Source/C/Include/Protocol/HiiFramework.h b/BaseTools/Source/C/Include/Protocol/HiiFramework.h index d8da4aa5d8..e97b252ae3 100644 --- a/BaseTools/Source/C/Include/Protocol/HiiFramework.h +++ b/BaseTools/Source/C/Include/Protocol/HiiFramework.h @@ -2,22 +2,20 @@ This file defines the Human Interface Infrastructure protocol which will be used by resources which want to publish IFR/Font/String data and have it collected by the Configuration engine. + + @par Revision Reference: + This protocol is defined in HII spec 0.92. - Copyright (c) 2007, Intel Corporation. All rights reserved.
+ Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: HiiFramework.h - - @par Revision Reference: - This protocol is defined in HII spec 0.92. - **/ #ifndef _FRAMEWORK_HII_H_ diff --git a/BaseTools/Source/C/Include/Protocol/UgaDraw.h b/BaseTools/Source/C/Include/Protocol/UgaDraw.h index 2da3d1d5fe..3911fa9884 100644 --- a/BaseTools/Source/C/Include/Protocol/UgaDraw.h +++ b/BaseTools/Source/C/Include/Protocol/UgaDraw.h @@ -3,18 +3,16 @@ Abstraction of a very simple graphics device. - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File name: UgaDraw.h - **/ #ifndef __UGA_DRAW_H__ diff --git a/BaseTools/Source/C/Include/X64/ProcessorBind.h b/BaseTools/Source/C/Include/X64/ProcessorBind.h index 6f03dfa67d..a02a41913f 100644 --- a/BaseTools/Source/C/Include/X64/ProcessorBind.h +++ b/BaseTools/Source/C/Include/X64/ProcessorBind.h @@ -1,18 +1,16 @@ /** @file Processor or Compiler specific defines and types x64 (Intel(r) EM64T, AMD64). - Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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: + distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - File Name: ProcessorBind.h - **/ #ifndef __PROCESSOR_BIND_H__ diff --git a/BaseTools/Source/C/LzmaCompress/LzmaF86Compress.bat b/BaseTools/Source/C/LzmaCompress/LzmaF86Compress.bat index 77749dfd16..f059ad6b2b 100644 --- a/BaseTools/Source/C/LzmaCompress/LzmaF86Compress.bat +++ b/BaseTools/Source/C/LzmaCompress/LzmaF86Compress.bat @@ -1,7 +1,8 @@ +@REM @file +@REM This script will exec LzmaCompress tool with --f86 option that enables +@REM converter for x86 code. @REM -@REM This script will exec LzmaCompress tool with --f86 option that enables converter for x86 code. -@REM -@REM Copyright (c) 2012, Intel Corporation. All rights reserved.
+@REM Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved.
@REM This program and the accompanying materials @REM are licensed and made available under the terms and conditions of the BSD License @REM which accompanies this distribution. The full text of the license may be found at diff --git a/BaseTools/Source/C/Makefiles/NmakeSubdirs.bat b/BaseTools/Source/C/Makefiles/NmakeSubdirs.bat index fac89bd9ee..4b3edfe2d6 100644 --- a/BaseTools/Source/C/Makefiles/NmakeSubdirs.bat +++ b/BaseTools/Source/C/Makefiles/NmakeSubdirs.bat @@ -1,6 +1,7 @@ @REM ## @file +@REM # Makefile @REM # -@REM # Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+@REM # Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
@REM # This program and the accompanying materials @REM # are licensed and made available under the terms and conditions of the BSD License @REM # which accompanies this distribution. The full text of the license may be found at @@ -8,9 +9,10 @@ @REM # @REM # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, @REM # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - +@REM # @echo off +@set TOOL_ERROR=0 setlocal SET NMAKE_COMMAND=%1 SHIFT @@ -21,7 +23,10 @@ if "%1"=="" goto success ECHO Building %1 pushd %1 nmake %NMAKE_COMMAND% -if ERRORLEVEL 1 goto error +if ERRORLEVEL 1 ( + set /A TOOL_ERROR= %TOOL_ERROR% + %ERRORLEVEL% + goto error +) ECHO %1 built successfully (%NMAKE_COMMAND%) ECHO. shift @@ -33,8 +38,10 @@ goto exit :error popd +set /A TOOL_ERROR=%TOOL_ERROR%+%ERRORLEVEL% ENDLOCAL ECHO Error while making %1! VERIFY OTHER 2>NUL :exit +exit /B %TOOL_ERROR% diff --git a/BaseTools/Source/C/Makefiles/app.makefile b/BaseTools/Source/C/Makefiles/app.makefile index 19269a13a9..b727a7ed16 100644 --- a/BaseTools/Source/C/Makefiles/app.makefile +++ b/BaseTools/Source/C/Makefiles/app.makefile @@ -1,6 +1,7 @@ ## @file +# Makefiles # -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# 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 diff --git a/BaseTools/Source/C/Makefiles/footer.makefile b/BaseTools/Source/C/Makefiles/footer.makefile index c10ad7aab4..2dfc683860 100644 --- a/BaseTools/Source/C/Makefiles/footer.makefile +++ b/BaseTools/Source/C/Makefiles/footer.makefile @@ -1,6 +1,7 @@ ## @file +# Makefile # -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# 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 @@ -8,6 +9,7 @@ # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# DEPFILES = $(OBJECTS:%.o=%.d) diff --git a/BaseTools/Source/C/Makefiles/lib.makefile b/BaseTools/Source/C/Makefiles/lib.makefile index dc8d90ccca..bba76be3af 100644 --- a/BaseTools/Source/C/Makefiles/lib.makefile +++ b/BaseTools/Source/C/Makefiles/lib.makefile @@ -1,6 +1,7 @@ ## @file +# Makefiles # -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# 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 @@ -8,6 +9,7 @@ # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# include $(MAKEROOT)/Makefiles/header.makefile diff --git a/BaseTools/Source/C/Makefiles/ms.app b/BaseTools/Source/C/Makefiles/ms.app index c7f2bd6583..3e045615f6 100644 --- a/BaseTools/Source/C/Makefiles/ms.app +++ b/BaseTools/Source/C/Makefiles/ms.app @@ -1,4 +1,5 @@ ## @file +# Makefile # # Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# This program and the accompanying materials @@ -8,6 +9,7 @@ # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# !INCLUDE ..\Makefiles\ms.common diff --git a/BaseTools/Source/C/Makefiles/ms.common b/BaseTools/Source/C/Makefiles/ms.common index fa9ffba563..d2f0b598cc 100644 --- a/BaseTools/Source/C/Makefiles/ms.common +++ b/BaseTools/Source/C/Makefiles/ms.common @@ -1,6 +1,7 @@ ## @file +# Makefile # -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# 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 @@ -8,6 +9,7 @@ # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# !IFNDEF EDK_TOOLS_PATH !ERROR "Please set your EDK_TOOLS_PATH!" diff --git a/BaseTools/Source/C/Makefiles/ms.rule b/BaseTools/Source/C/Makefiles/ms.rule index b73e504b29..5134acfe16 100644 --- a/BaseTools/Source/C/Makefiles/ms.rule +++ b/BaseTools/Source/C/Makefiles/ms.rule @@ -1,6 +1,7 @@ ## @file +# Makefile # -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# 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 @@ -8,6 +9,7 @@ # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# #DEPFILES = $(OBJECTS:%.o=%.d) diff --git a/BaseTools/Source/C/PyEfiCompressor/EfiCompressor.c b/BaseTools/Source/C/PyEfiCompressor/EfiCompressor.c index cf37c0c100..eb4aa2583a 100644 --- a/BaseTools/Source/C/PyEfiCompressor/EfiCompressor.c +++ b/BaseTools/Source/C/PyEfiCompressor/EfiCompressor.c @@ -1,6 +1,7 @@ /** @file +Efi Compressor -Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
+Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
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 diff --git a/BaseTools/Source/C/PyEfiCompressor/Makefile b/BaseTools/Source/C/PyEfiCompressor/Makefile index fdd2e391cb..e7c1ed2f42 100644 --- a/BaseTools/Source/C/PyEfiCompressor/Makefile +++ b/BaseTools/Source/C/PyEfiCompressor/Makefile @@ -1,6 +1,7 @@ ## @file +# Makefile # -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# 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 diff --git a/BaseTools/Source/C/PyUtility/Makefile b/BaseTools/Source/C/PyUtility/Makefile index 0cc9ad7987..58290703ba 100644 --- a/BaseTools/Source/C/PyUtility/Makefile +++ b/BaseTools/Source/C/PyUtility/Makefile @@ -1,6 +1,7 @@ ## @file +# Makefile # -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# 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 @@ -8,6 +9,7 @@ # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# !INCLUDE ..\Makefiles\ms.common diff --git a/BaseTools/Source/C/PyUtility/PyUtility.c b/BaseTools/Source/C/PyUtility/PyUtility.c index ff3ad9443b..6b3fcaff58 100644 --- a/BaseTools/Source/C/PyUtility/PyUtility.c +++ b/BaseTools/Source/C/PyUtility/PyUtility.c @@ -1,6 +1,7 @@ /** @file +Python Utility -Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
+Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
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 diff --git a/BaseTools/Source/C/TianoCompress/TianoCompress.c b/BaseTools/Source/C/TianoCompress/TianoCompress.c index 145288bb80..70f1b61a5c 100644 --- a/BaseTools/Source/C/TianoCompress/TianoCompress.c +++ b/BaseTools/Source/C/TianoCompress/TianoCompress.c @@ -1,6 +1,11 @@ /** @file - -Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
+Compression routine. The compression algorithm is a mixture of LZ77 and Huffman +coding. LZ77 transforms the source data into a sequence of Original Characters +and Pointers to repeated strings. +This sequence is further divided into Blocks and Huffman codings are applied to +each Block. + +Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,18 +14,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - TianoCompress.c - -Abstract: - - Compression routine. The compression algorithm is a mixture of - LZ77 and Huffman coding. LZ77 transforms the source data into a - sequence of Original Characters and Pointers to repeated strings. - This sequence is further divided into Blocks and Huffman codings - are applied to each Block. - **/ #include "Compress.h" @@ -1613,7 +1606,7 @@ Returns: // // Copy the file contents to the output buffer. // - InputFile = fopen (InputFileName, "rb"); + InputFile = fopen (LongFilePath (InputFileName), "rb"); if (InputFile == NULL) { Error (NULL, 0, 0001, "Error opening file: %s", InputFileName); return EFI_ABORTED; @@ -1695,7 +1688,7 @@ Returns: // // Copyright declaration // - fprintf (stdout, "Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.\n\n"); + fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.\n\n"); // // Details Option @@ -1889,7 +1882,7 @@ Returns: goto ERROR; } - InputFile = fopen (InputFileName, "rb"); + InputFile = fopen (LongFilePath (InputFileName), "rb"); if (InputFile == NULL) { Error (NULL, 0, 0001, "Error opening input file", InputFileName); goto ERROR; @@ -1920,7 +1913,7 @@ Returns: } if (OutputFileName != NULL) { - OutputFile = fopen (OutputFileName, "wb"); + OutputFile = fopen (LongFilePath (OutputFileName), "wb"); if (OutputFile == NULL) { Error (NULL, 0, 0001, "Error opening output file for writing", OutputFileName); if (InputFile != NULL) { @@ -1930,7 +1923,7 @@ Returns: } } else { OutputFileName = DEFAULT_OUTPUT_FILE; - OutputFile = fopen (OutputFileName, "wb"); + OutputFile = fopen (LongFilePath (OutputFileName), "wb"); } if (ENCODE) { diff --git a/BaseTools/Source/C/TianoCompress/TianoCompress.h b/BaseTools/Source/C/TianoCompress/TianoCompress.h index b719ad2deb..accbe2ce07 100644 --- a/BaseTools/Source/C/TianoCompress/TianoCompress.h +++ b/BaseTools/Source/C/TianoCompress/TianoCompress.h @@ -1,7 +1,7 @@ /** @file Internal include file for Tiano Decompress Libary. - Copyright (c) 2006, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
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 @@ -10,8 +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. - Module Name: TianoDecompress.h - **/ #ifndef __TIANO_DECOMPRESS_H__ diff --git a/BaseTools/Source/C/VfrCompile/EfiVfr.h b/BaseTools/Source/C/VfrCompile/EfiVfr.h index 4b9aed0adb..d187902e2b 100644 --- a/BaseTools/Source/C/VfrCompile/EfiVfr.h +++ b/BaseTools/Source/C/VfrCompile/EfiVfr.h @@ -1,6 +1,7 @@ /** @file +Defines and prototypes for the UEFI VFR compiler internal use. -Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
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 @@ -8,15 +9,7 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - EfiVfr.h - -Abstract: - - Defines and prototypes for the UEFI VFR compiler internal use. - + **/ #ifndef _EFIVFR_H_ diff --git a/BaseTools/Source/C/VfrCompile/VfrSyntax.g b/BaseTools/Source/C/VfrCompile/VfrSyntax.g index e12677fd4f..1a5b3fd588 100644 --- a/BaseTools/Source/C/VfrCompile/VfrSyntax.g +++ b/BaseTools/Source/C/VfrCompile/VfrSyntax.g @@ -1,4 +1,6 @@ -/*++ +/*++ @file +Vfr Syntax + Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -8,11 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - VfrSyntax.g - -Abstract: - --*/ #header<< diff --git a/BaseTools/Source/C/VolInfo/VolInfo.c b/BaseTools/Source/C/VolInfo/VolInfo.c index 9962d387a7..7e79d75367 100644 --- a/BaseTools/Source/C/VolInfo/VolInfo.c +++ b/BaseTools/Source/C/VolInfo/VolInfo.c @@ -1,4 +1,5 @@ /** @file +The tool dumps the contents of a firmware volume Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - VolInfo.c - -Abstract: - - The tool dumps the contents of a firmware volume - **/ #include @@ -1716,7 +1709,7 @@ Returns: CHAR8 Line[MAX_LINE_LEN]; GUID_TO_BASENAME *GPtr; - if ((Fptr = fopen (FileName, "r")) == NULL) { + if ((Fptr = fopen (LongFilePath (FileName), "r")) == NULL) { printf ("ERROR: Failed to open input cross-reference file '%s'\n", FileName); return EFI_DEVICE_ERROR; } diff --git a/BaseTools/Source/C/VolInfo/VolInfo.h b/BaseTools/Source/C/VolInfo/VolInfo.h index 0e2d181911..0ef7d92227 100644 --- a/BaseTools/Source/C/VolInfo/VolInfo.h +++ b/BaseTools/Source/C/VolInfo/VolInfo.h @@ -1,6 +1,7 @@ /** @file +Local Definitions for the VolInfo utility -Copyright (c) 1999 - 2008, Intel Corporation. All rights reserved.
+Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
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 @@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - - VolInfo.c - -Abstract: - - Local Definitions for the VolInfo utility - **/ #ifndef _VOLINFO_H_ diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index 8c62ac8e72..8cd387072e 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -40,15 +40,27 @@ import Common.VpdInfoFile as VpdInfoFile from GenPcdDb import CreatePcdDatabaseCode from Workspace.MetaFileCommentParser import UsageList +import InfSectionParser + ## Regular expression for splitting Dependency Expression string into tokens gDepexTokenPattern = re.compile("(\(|\)|\w+| \S+\.inf)") +# +# Match name = variable +# +gEfiVarStoreNamePattern = re.compile("\s*name\s*=\s*(\w+)") +# +# The format of guid in efivarstore statement likes following and must be correct: +# guid = {0xA04A27f4, 0xDF00, 0x4D42, {0xB5, 0x52, 0x39, 0x51, 0x13, 0x02, 0x11, 0x3D}} +# +gEfiVarStoreGuidPattern = re.compile("\s*guid\s*=\s*({.*?{.*?}\s*})") + ## Mapping Makefile type gMakeTypeMap = {"MSFT":"nmake", "GCC":"gmake"} ## Build rule configuration file -gBuildRuleFile = 'Conf/build_rule.txt' +gDefaultBuildRuleFile = 'Conf/build_rule.txt' ## Build rule default version AutoGenReqBuildRuleVerNum = "0.1" @@ -60,22 +72,40 @@ gAutoGenStringFileName = "%(module_name)sStrDefs.h" gAutoGenStringFormFileName = "%(module_name)sStrDefs.hpk" gAutoGenDepexFileName = "%(module_name)s.depex" +gInfSpecVersion = "0x00010017" + # # Template string to generic AsBuilt INF # gAsBuiltInfHeaderString = TemplateString("""${header_comments} +# DO NOT EDIT +# FILE auto-generated + [Defines] - INF_VERSION = 0x00010016 + INF_VERSION = ${module_inf_version} BASE_NAME = ${module_name} FILE_GUID = ${module_guid} - MODULE_TYPE = ${module_module_type} - VERSION_STRING = ${module_version_string}${BEGIN} + MODULE_TYPE = ${module_module_type}${BEGIN} + VERSION_STRING = ${module_version_string}${END}${BEGIN} PCD_IS_DRIVER = ${pcd_is_driver_string}${END}${BEGIN} UEFI_SPECIFICATION_VERSION = ${module_uefi_specification_version}${END}${BEGIN} - PI_SPECIFICATION_VERSION = ${module_pi_specification_version}${END} - -[Packages]${BEGIN} + PI_SPECIFICATION_VERSION = ${module_pi_specification_version}${END}${BEGIN} + ENTRY_POINT = ${module_entry_point}${END}${BEGIN} + UNLOAD_IMAGE = ${module_unload_image}${END}${BEGIN} + CONSTRUCTOR = ${module_constructor}${END}${BEGIN} + DESTRUCTOR = ${module_destructor}${END}${BEGIN} + SHADOW = ${module_shadow}${END}${BEGIN} + PCI_VENDOR_ID = ${module_pci_vendor_id}${END}${BEGIN} + PCI_DEVICE_ID = ${module_pci_device_id}${END}${BEGIN} + PCI_CLASS_CODE = ${module_pci_class_code}${END}${BEGIN} + PCI_REVISION = ${module_pci_revision}${END}${BEGIN} + BUILD_NUMBER = ${module_build_number}${END}${BEGIN} + SPEC = ${module_spec}${END}${BEGIN} + UEFI_HII_RESOURCE_SECTION = ${module_uefi_hii_resource_section}${END}${BEGIN} + MODULE_UNI_FILE = ${module_uni_file}${END} + +[Packages.${module_arch}]${BEGIN} ${package_item}${END} [Binaries.${module_arch}]${BEGIN} @@ -84,19 +114,32 @@ gAsBuiltInfHeaderString = TemplateString("""${header_comments} [PatchPcd.${module_arch}]${BEGIN} ${patchablepcd_item} ${END} + [Protocols.${module_arch}]${BEGIN} ${protocol_item} ${END} + [Ppis.${module_arch}]${BEGIN} ${ppi_item} ${END} + [Guids.${module_arch}]${BEGIN} ${guid_item} ${END} + [PcdEx.${module_arch}]${BEGIN} ${pcd_item} ${END} +[LibraryClasses.${module_arch}] +## @LIB_INSTANCES${BEGIN} +# ${libraryclasses_item}${END} + +${depexsection_item} + +${tail_comments} + +[BuildOptions.${module_arch}] ## @AsBuilt${BEGIN} ## ${flags_item}${END} """) @@ -240,6 +283,15 @@ class WorkspaceAutoGen(AutoGen): ExtraData="Build target [%s] is not supported by the platform. [Valid target: %s]" % (self.BuildTarget, " ".join(self.Platform.BuildTargets))) + # Validate SKU ID + if not self.SkuId: + self.SkuId = 'DEFAULT' + + if self.SkuId not in self.Platform.SkuIds: + EdkLogger.error("build", PARAMETER_INVALID, + ExtraData="SKU-ID [%s] is not supported by the platform. [Valid SKU-ID: %s]" + % (self.SkuId, " ".join(self.Platform.SkuIds.keys()))) + # parse FDF file to get PCDs in it, if any if not self.FdfFile: self.FdfFile = self.Platform.FlashDefinition @@ -299,6 +351,7 @@ class WorkspaceAutoGen(AutoGen): DecPcds = {} DecPcdsKey = set() PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch) + #Collect package set information from INF of FDF PkgSet = set() for Inf in ModuleList: ModuleFile = PathClass(NormPath(Inf), GlobalData.gWorkspace, Arch) @@ -355,10 +408,10 @@ class WorkspaceAutoGen(AutoGen): # Check PCD type and definition between DSC and DEC # self._CheckPcdDefineAndType() - - if self.FdfFile: - self._CheckDuplicateInFV(Fdf) - + +# if self.FdfFile: +# self._CheckDuplicateInFV(Fdf) + self._BuildDir = None self._FvDir = None self._MakeFileDir = None @@ -662,7 +715,7 @@ class WorkspaceAutoGen(AutoGen): ExtraData=None ) Count += 1 - + ## Generate fds command def _GenFdsCommand(self): return (GenMake.TopLevelMakefile(self)._TEMPLATE_.Replace(GenMake.TopLevelMakefile(self)._TemplateDict)).strip() @@ -817,9 +870,6 @@ class PlatformAutoGen(AutoGen): # get library/modules for build self.LibraryBuildDirectoryList = [] self.ModuleBuildDirectoryList = [] - # get the original module/package/platform objects - self.LibraryBuildDirectoryList = [] - self.ModuleBuildDirectoryList = [] return True def __repr__(self): @@ -859,7 +909,7 @@ class PlatformAutoGen(AutoGen): Ma = ModuleAutoGen(self.Workspace, ModuleFile, self.BuildTarget, self.ToolChain, self.Arch, self.MetaFile) Ma.CreateMakeFile(True) - Ma.CreateAsBuiltInf() + #Ma.CreateAsBuiltInf() # no need to create makefile for the platform more than once if self.IsMakeFileCreated: @@ -923,8 +973,11 @@ class PlatformAutoGen(AutoGen): if PcdFromModule.DatumType == "VOID*" and PcdFromModule.MaxDatumSize in [None, '']: NoDatumTypePcdList.add("%s.%s [%s]" % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, F)) + # Check the PCD from Binary INF or Source INF if M.IsBinaryModule == True: PcdFromModule.IsFromBinaryInf = True + + # Check the PCD from DSC or not if (PcdFromModule.TokenCName, PcdFromModule.TokenSpaceGuidCName) in self.Platform.Pcds.keys(): PcdFromModule.IsFromDsc = True else: @@ -943,11 +996,11 @@ class PlatformAutoGen(AutoGen): PcdFromModule.IsFromBinaryInf == False: # Print warning message to let the developer make a determine. if PcdFromModule not in PcdNotInDb: - EdkLogger.warn("build", - "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. " \ - % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, self.Platform.MetaFile.Path), - File=self.MetaFile, \ - ExtraData=None) + # EdkLogger.warn("build", + # "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. " \ + # % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, self.Platform.MetaFile.Path), + # File=self.MetaFile, \ + # ExtraData=None) PcdNotInDb.append(PcdFromModule) continue # If one of the Source built modules listed in the DSC is not listed in @@ -1017,6 +1070,11 @@ class PlatformAutoGen(AutoGen): elif PcdFromModule not in self._NonDynaPcdList_ and PcdFromModule.Type in TAB_PCDS_PATCHABLE_IN_MODULE: self._NonDynaPcdList_.append(PcdFromModule) if PcdFromModule in self._DynaPcdList_ and PcdFromModule.Phase == 'PEI' and PcdFromModule.Type in GenC.gDynamicExPcd: + # Overwrite the phase of any the same PCD existing, if Phase is PEI. + # It is to solve the case that a dynamic PCD used by a PEM module/PEI + # module & DXE module at a same time. + # Overwrite the type of the PCDs in source INF by the type of AsBuild + # INF file as DynamicEx. Index = self._DynaPcdList_.index(PcdFromModule) self._DynaPcdList_[Index].Phase = PcdFromModule.Phase self._DynaPcdList_[Index].Type = PcdFromModule.Type @@ -1050,16 +1108,16 @@ class PlatformAutoGen(AutoGen): # If PCD is listed in a PcdsDynamicHii, PcdsDynamicExHii, PcdsDynamicHii or PcdsDynamicExHii # section, and the PCD is not used by any module that is listed in the DSC file, the build # provide a warning message. - for PcdKey in self.Platform.Pcds.keys(): - Pcd = self.Platform.Pcds[PcdKey] - if Pcd not in self._DynamicPcdList + PcdNotInDb and \ - 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]: - # Print warning message to let the developer make a determine. - EdkLogger.warn("build", - "A %s PCD listed in the DSC (%s.%s, %s) is not used by any module." \ - % (Pcd.Type, Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path), - File=self.MetaFile, \ - ExtraData=None) + #for PcdKey in self.Platform.Pcds.keys(): + # Pcd = self.Platform.Pcds[PcdKey] + # if Pcd not in self._DynamicPcdList + PcdNotInDb and \ + # 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]: + # # Print warning message to let the developer make a determine. + #EdkLogger.warn("build", + # "A %s PCD listed in the DSC (%s.%s, %s) is not used by any module." \ + # % (Pcd.Type, Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path), + # File=self.MetaFile, \ + # ExtraData=None) # # Sort dynamic PCD list to: # 1) If PCD's datum type is VOID* and value is unicode string which starts with L, the PCD item should @@ -1421,7 +1479,7 @@ class PlatformAutoGen(AutoGen): self._EdkIIBuildOption = self._ExpandBuildOption(self.Platform.BuildOptions, EDKII_NAME) return self._EdkIIBuildOption - ## Parse build_rule.txt in $(WORKSPACE)/Conf/build_rule.txt + ## Parse build_rule.txt in Conf Directory. # # @retval BuildRule object # @@ -1431,7 +1489,7 @@ class PlatformAutoGen(AutoGen): if TAB_TAT_DEFINES_BUILD_RULE_CONF in self.Workspace.TargetTxt.TargetTxtDictionary: BuildRuleFile = self.Workspace.TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_BUILD_RULE_CONF] if BuildRuleFile in [None, '']: - BuildRuleFile = gBuildRuleFile + BuildRuleFile = gDefaultBuildRuleFile self._BuildRule = BuildRule(BuildRuleFile) if self._BuildRule._FileVersion == "": self._BuildRule._FileVersion = AutoGenReqBuildRuleVerNum @@ -2140,6 +2198,9 @@ class ModuleAutoGen(AutoGen): return False self.SourceDir = self.MetaFile.SubDir + if self.SourceDir.upper().find(self.WorkspaceDir.upper()) == 0: + self.SourceDir = self.SourceDir[len(self.WorkspaceDir) + 1:] + self.SourceOverrideDir = None # use overrided path defined in DSC file if self.MetaFile.Key in GlobalData.gOverrideDir: @@ -2284,6 +2345,16 @@ class ModuleAutoGen(AutoGen): ## Return the module meta-file GUID def _GetGuid(self): + # + # To build same module more than once, the module path with FILE_GUID overridden has + # the file name FILE_GUIDmodule.inf, but the relative path (self.MetaFile.File) is the realy path + # in DSC. The overridden GUID can be retrieved from file name + # + if os.path.basename(self.MetaFile.File) != os.path.basename(self.MetaFile.Path): + # + # Length of GUID is 36 + # + return os.path.basename(self.MetaFile.Path)[:36] return self.Module.Guid ## Return the module version @@ -2393,7 +2464,66 @@ class ModuleAutoGen(AutoGen): continue PackageList.append(Package) return PackageList - + + ## Get the depex string + # + # @return : a string contain all depex expresion. + def _GetDepexExpresionString(self): + DepexStr = '' + DepexList = [] + ## DPX_SOURCE IN Define section. + if self.Module.DxsFile: + return DepexStr + for M in [self.Module] + self.DependentLibraryList: + Filename = M.MetaFile.Path + InfObj = InfSectionParser.InfSectionParser(Filename) + DepexExpresionList = InfObj.GetDepexExpresionList() + for DepexExpresion in DepexExpresionList: + for key in DepexExpresion.keys(): + Arch, ModuleType = key + # the type of build module is USER_DEFINED. + # All different DEPEX section tags would be copied into the As Built INF file + # and there would be separate DEPEX section tags + if self.ModuleType.upper() == SUP_MODULE_USER_DEFINED: + if (Arch.upper() == self.Arch.upper()) and (ModuleType.upper() != TAB_ARCH_COMMON): + DepexList.append({(Arch, ModuleType): DepexExpresion[key][:]}) + else: + if Arch.upper() == TAB_ARCH_COMMON or \ + (Arch.upper() == self.Arch.upper() and \ + ModuleType.upper() in [TAB_ARCH_COMMON, self.ModuleType.upper()]): + DepexList.append({(Arch, ModuleType): DepexExpresion[key][:]}) + + #the type of build module is USER_DEFINED. + if self.ModuleType.upper() == SUP_MODULE_USER_DEFINED: + for Depex in DepexList: + for key in Depex.keys(): + DepexStr += '[Depex.%s.%s]\n' % key + DepexStr += '\n'.join(['# '+ val for val in Depex[key]]) + DepexStr += '\n\n' + if not DepexStr: + return '[Depex.%s]\n' % self.Arch + return DepexStr + + #the type of build module not is USER_DEFINED. + Count = 0 + for Depex in DepexList: + Count += 1 + if DepexStr != '': + DepexStr += ' AND ' + DepexStr += '(' + for D in Depex.values(): + DepexStr += ' '.join([val for val in D]) + Index = DepexStr.find('END') + if Index > -1 and Index == len(DepexStr) - 3: + DepexStr = DepexStr[:-3] + DepexStr = DepexStr.strip() + DepexStr += ')' + if Count == 1: + DepexStr = DepexStr.lstrip('(').rstrip(')').strip() + if not DepexStr: + return '[Depex.%s]\n' % self.Arch + return '[Depex.%s]\n# ' % self.Arch + DepexStr + ## Merge dependency expression # # @retval list The token list of the dependency expression after parsed @@ -2546,7 +2676,7 @@ class ModuleAutoGen(AutoGen): ## Return a list of files which can be built from source # # What kind of files can be built is determined by build rules in - # $(WORKSPACE)/Conf/build_rule.txt and toolchain family. + # $(CONF_DIRECTORY)/build_rule.txt and toolchain family. # def _GetSourceFileList(self): if self._SourceFileList == None: @@ -2901,6 +3031,71 @@ class ModuleAutoGen(AutoGen): self._IncludePathList.append(str(Inc)) return self._IncludePathList + ## Get HII EX PCDs which maybe used by VFR + # + # efivarstore used by VFR may relate with HII EX PCDs + # Get the variable name and GUID from efivarstore and HII EX PCD + # List the HII EX PCDs in As Built INF if both name and GUID match. + # + # @retval list HII EX PCDs + # + def _GetPcdsMaybeUsedByVfr(self): + if not self.SourceFileList: + return [] + + NameGuids = [] + for SrcFile in self.SourceFileList: + if SrcFile.Ext.lower() != '.vfr': + continue + Vfri = os.path.join(self.OutputDir, SrcFile.BaseName + '.i') + if not os.path.exists(Vfri): + continue + VfriFile = open(Vfri, 'r') + Content = VfriFile.read() + VfriFile.close() + Pos = Content.find('efivarstore') + while Pos != -1: + # + # Make sure 'efivarstore' is the start of efivarstore statement + # In case of the value of 'name' (name = efivarstore) is equal to 'efivarstore' + # + Index = Pos - 1 + while Index >= 0 and Content[Index] in ' \t\r\n': + Index -= 1 + if Index >= 0 and Content[Index] != ';': + Pos = Content.find('efivarstore', Pos + len('efivarstore')) + continue + # + # 'efivarstore' must be followed by name and guid + # + Name = gEfiVarStoreNamePattern.search(Content, Pos) + if not Name: + break + Guid = gEfiVarStoreGuidPattern.search(Content, Pos) + if not Guid: + break + NameArray = ConvertStringToByteArray('L"' + Name.group(1) + '"') + NameGuids.append((NameArray, GuidStructureStringToGuidString(Guid.group(1)))) + Pos = Content.find('efivarstore', Name.end()) + if not NameGuids: + return [] + HiiExPcds = [] + for Pcd in self.PlatformInfo.Platform.Pcds.values(): + if Pcd.Type != TAB_PCDS_DYNAMIC_EX_HII: + continue + for SkuName in Pcd.SkuInfoList: + SkuInfo = Pcd.SkuInfoList[SkuName] + Name = ConvertStringToByteArray(SkuInfo.VariableName) + Value = GuidValue(SkuInfo.VariableGuid, self.PlatformInfo.PackageList) + if not Value: + continue + Guid = GuidStructureStringToGuidString(Value) + if (Name, Guid) in NameGuids and Pcd not in HiiExPcds: + HiiExPcds.append(Pcd) + break + + return HiiExPcds + ## Create AsBuilt INF file the module # def CreateAsBuiltInf(self): @@ -2963,6 +3158,16 @@ class ModuleAutoGen(AutoGen): break if Found: break + VfrPcds = self._GetPcdsMaybeUsedByVfr() + for Pkg in self.PlatformInfo.PackageList: + if Pkg in Packages: + continue + for VfrPcd in VfrPcds: + if ((VfrPcd.TokenCName, VfrPcd.TokenSpaceGuidCName, 'DynamicEx') in Pkg.Pcds or + (VfrPcd.TokenCName, VfrPcd.TokenSpaceGuidCName, 'Dynamic') in Pkg.Pcds): + Packages += [Pkg] + break + ModuleType = self.ModuleType if ModuleType == 'UEFI_DRIVER' and self.DepexGenerated: ModuleType = 'DXE_DRIVER' @@ -2971,14 +3176,30 @@ class ModuleAutoGen(AutoGen): if self.PcdIsDriver != '': DriverType = self.PcdIsDriver + Guid = self.Guid + MDefs = self.Module.Defines + AsBuiltInfDict = { 'module_name' : self.Name, - 'module_guid' : self.Guid, + 'module_guid' : Guid, 'module_module_type' : ModuleType, - 'module_version_string' : self.Version, + 'module_version_string' : [MDefs['VERSION_STRING']] if 'VERSION_STRING' in MDefs else [], 'pcd_is_driver_string' : [], 'module_uefi_specification_version' : [], 'module_pi_specification_version' : [], + 'module_entry_point' : self.Module.ModuleEntryPointList, + 'module_unload_image' : self.Module.ModuleUnloadImageList, + 'module_constructor' : self.Module.ConstructorList, + 'module_destructor' : self.Module.DestructorList, + 'module_shadow' : [MDefs['SHADOW']] if 'SHADOW' in MDefs else [], + 'module_pci_vendor_id' : [MDefs['PCI_VENDOR_ID']] if 'PCI_VENDOR_ID' in MDefs else [], + 'module_pci_device_id' : [MDefs['PCI_DEVICE_ID']] if 'PCI_DEVICE_ID' in MDefs else [], + 'module_pci_class_code' : [MDefs['PCI_CLASS_CODE']] if 'PCI_CLASS_CODE' in MDefs else [], + 'module_pci_revision' : [MDefs['PCI_REVISION']] if 'PCI_REVISION' in MDefs else [], + 'module_build_number' : [MDefs['BUILD_NUMBER']] if 'BUILD_NUMBER' in MDefs else [], + 'module_spec' : [MDefs['SPEC']] if 'SPEC' in MDefs else [], + 'module_uefi_hii_resource_section' : [MDefs['UEFI_HII_RESOURCE_SECTION']] if 'UEFI_HII_RESOURCE_SECTION' in MDefs else [], + 'module_uni_file' : [MDefs['MODULE_UNI_FILE']] if 'MODULE_UNI_FILE' in MDefs else [], 'module_arch' : self.Arch, 'package_item' : ['%s' % (Package.MetaFile.File.replace('\\','/')) for Package in Packages], 'binary_item' : [], @@ -2990,7 +3211,12 @@ class ModuleAutoGen(AutoGen): 'flags_item' : [], 'libraryclasses_item' : [] } - AsBuiltInfDict['module_inf_version'] = '0x%08x' % self.AutoGenVersion + + if self.AutoGenVersion > int(gInfSpecVersion, 0): + AsBuiltInfDict['module_inf_version'] = '0x%08x' % self.AutoGenVersion + else: + AsBuiltInfDict['module_inf_version'] = gInfSpecVersion + if DriverType: AsBuiltInfDict['pcd_is_driver_string'] += [DriverType] @@ -3036,6 +3262,8 @@ class ModuleAutoGen(AutoGen): StartPos = Index break AsBuiltInfDict['header_comments'] = '\n'.join(HeaderComments[StartPos:]).replace(':#', '://') + AsBuiltInfDict['tail_comments'] = '\n'.join(self.Module.TailComments) + GenList = [ (self.ProtocolList, self._ProtocolComments, 'protocol_item'), (self.PpiList, self._PpiComments, 'ppi_item'), @@ -3116,28 +3344,42 @@ class ModuleAutoGen(AutoGen): if PcdComments: PcdItem = PcdComments + '\n ' + PcdItem AsBuiltInfDict['patchablepcd_item'].append(PcdItem) - for Pcd in Pcds: + + HiiPcds = [] + for Pcd in Pcds + VfrPcds: PcdComments = '' PcdCommentList = [] HiiInfo = '' + SkuId = '' if Pcd.Type == TAB_PCDS_DYNAMIC_EX_HII: for SkuName in Pcd.SkuInfoList: SkuInfo = Pcd.SkuInfoList[SkuName] + SkuId = SkuInfo.SkuId HiiInfo = '## %s|%s|%s' % (SkuInfo.VariableName, SkuInfo.VariableGuid, SkuInfo.VariableOffset) break + if SkuId: + # + # Don't generate duplicated HII PCD + # + if (SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName) in HiiPcds: + continue + else: + HiiPcds.append((SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName)) if (Pcd.TokenSpaceGuidCName, Pcd.TokenCName) in self._PcdComments: PcdCommentList = self._PcdComments[Pcd.TokenSpaceGuidCName, Pcd.TokenCName][:] if HiiInfo: UsageIndex = -1 + UsageStr = '' for Index, Comment in enumerate(PcdCommentList): for Usage in UsageList: if Comment.find(Usage) != -1: + UsageStr = Usage UsageIndex = Index break if UsageIndex != -1: - PcdCommentList[UsageIndex] = PcdCommentList[UsageIndex] + ' ' + HiiInfo + PcdCommentList[UsageIndex] = '## %s %s %s' % (UsageStr, HiiInfo, PcdCommentList[UsageIndex].replace(UsageStr, '')) else: - PcdCommentList.append('## ' + HiiInfo) + PcdCommentList.append('## UNDEFINED ' + HiiInfo) PcdComments = '\n '.join(PcdCommentList) PcdEntry = Pcd.TokenSpaceGuidCName + '.' + Pcd.TokenCName if PcdComments: @@ -3146,6 +3388,16 @@ class ModuleAutoGen(AutoGen): for Item in self.BuildOption: if 'FLAGS' in self.BuildOption[Item]: AsBuiltInfDict['flags_item'] += ['%s:%s_%s_%s_%s_FLAGS = %s' % (self.ToolChainFamily, self.BuildTarget, self.ToolChain, self.Arch, Item, self.BuildOption[Item]['FLAGS'].strip())] + + # Generated LibraryClasses section in comments. + for Library in self.LibraryAutoGenList: + AsBuiltInfDict['libraryclasses_item'] += [Library.MetaFile.File.replace('\\', '/')] + + # Generated depex expression section in comments. + AsBuiltInfDict['depexsection_item'] = '' + DepexExpresion = self._GetDepexExpresionString() + if DepexExpresion: + AsBuiltInfDict['depexsection_item'] = DepexExpresion AsBuiltInf = TemplateString() AsBuiltInf.Append(gAsBuiltInfHeaderString.Replace(AsBuiltInfDict)) diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index 0ad368a4ce..50bee0dbc1 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -247,6 +247,7 @@ MODULE_FILE = ${module_file} MODULE_FILE_BASE_NAME = ${module_file_base_name} BASE_NAME = $(MODULE_NAME) MODULE_RELATIVE_DIR = ${module_relative_directory} +PACKAGE_RELATIVE_DIR = ${package_relative_directory} MODULE_DIR = $(WORKSPACE)${separator}${module_relative_directory} MODULE_ENTRY_POINT = ${module_entry_point} @@ -552,6 +553,10 @@ cleanlib: Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":os.path.join(D, MakefileName)} LibraryMakeCommandList.append(Command) + package_rel_dir = self._AutoGenObject.SourceDir + if os.sep in package_rel_dir: + package_rel_dir = package_rel_dir[package_rel_dir.index(os.sep) + 1:] + MakefileTemplateDict = { "makefile_header" : self._FILE_HEADER_[self._FileType], "makefile_path" : os.path.join("$(MODULE_BUILD_DIR)", MakefileName), @@ -569,7 +574,8 @@ cleanlib: "module_file" : self._AutoGenObject.MetaFile.Name, "module_file_base_name" : self._AutoGenObject.MetaFile.BaseName, "module_relative_directory" : self._AutoGenObject.SourceDir, - "module_extra_defines" : ["%s = %s" % (k, v) for k,v in self._AutoGenObject.Module.Defines.iteritems()], + "package_relative_directory": package_rel_dir, + "module_extra_defines" : ["%s = %s" % (k, v) for k, v in self._AutoGenObject.Module.Defines.iteritems()], "architecture" : self._AutoGenObject.Arch, "toolchain_tag" : self._AutoGenObject.ToolChain, @@ -1177,7 +1183,8 @@ cleanlib: def GetModuleBuildDirectoryList(self): DirList = [] for ModuleAutoGen in self._AutoGenObject.ModuleAutoGenList: - DirList.append(os.path.join(self._AutoGenObject.BuildDir, ModuleAutoGen.BuildDir)) + if not ModuleAutoGen.IsBinaryModule: + DirList.append(os.path.join(self._AutoGenObject.BuildDir, ModuleAutoGen.BuildDir)) return DirList ## Get the root directory list for intermediate files of all libraries build @@ -1187,7 +1194,8 @@ cleanlib: def GetLibraryBuildDirectoryList(self): DirList = [] for LibraryAutoGen in self._AutoGenObject.LibraryAutoGenList: - DirList.append(os.path.join(self._AutoGenObject.BuildDir, LibraryAutoGen.BuildDir)) + if not LibraryAutoGen.IsBinaryModule: + DirList.append(os.path.join(self._AutoGenObject.BuildDir, LibraryAutoGen.BuildDir)) return DirList _TemplateDict = property(_CreateTemplateDict) @@ -1200,7 +1208,7 @@ cleanlib: # class TopLevelMakefile(BuildFile): ## template used to generate toplevel makefile - _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}''') + _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}''') ## Constructor of TopLevelMakefile # @@ -1258,6 +1266,9 @@ class TopLevelMakefile(BuildFile): if GlobalData.gCaseInsensitive: ExtraOption += " -c" + if GlobalData.gIgnoreSource: + ExtraOption += " --ignore-sources" + MakefileName = self._FILE_NAME_[self._FileType] SubBuildCommandList = [] for A in PlatformInfo.ArchList: @@ -1272,6 +1283,7 @@ class TopLevelMakefile(BuildFile): "platform_guid" : PlatformInfo.Guid, "platform_version" : PlatformInfo.Version, "platform_build_directory" : PlatformInfo.BuildDir, + "conf_directory" : GlobalData.gConfDirectory, "toolchain_tag" : PlatformInfo.ToolChain, "build_target" : PlatformInfo.BuildTarget, @@ -1301,7 +1313,8 @@ class TopLevelMakefile(BuildFile): def GetModuleBuildDirectoryList(self): DirList = [] for ModuleAutoGen in self._AutoGenObject.ModuleAutoGenList: - DirList.append(os.path.join(self._AutoGenObject.BuildDir, ModuleAutoGen.BuildDir)) + if not ModuleAutoGen.IsBinaryModule: + DirList.append(os.path.join(self._AutoGenObject.BuildDir, ModuleAutoGen.BuildDir)) return DirList ## Get the root directory list for intermediate files of all libraries build @@ -1311,7 +1324,8 @@ class TopLevelMakefile(BuildFile): def GetLibraryBuildDirectoryList(self): DirList = [] for LibraryAutoGen in self._AutoGenObject.LibraryAutoGenList: - DirList.append(os.path.join(self._AutoGenObject.BuildDir, LibraryAutoGen.BuildDir)) + if not LibraryAutoGen.IsBinaryModule: + DirList.append(os.path.join(self._AutoGenObject.BuildDir, LibraryAutoGen.BuildDir)) return DirList _TemplateDict = property(_CreateTemplateDict) diff --git a/BaseTools/Source/Python/AutoGen/InfSectionParser.py b/BaseTools/Source/Python/AutoGen/InfSectionParser.py new file mode 100644 index 0000000000..7f78236548 --- /dev/null +++ b/BaseTools/Source/Python/AutoGen/InfSectionParser.py @@ -0,0 +1,107 @@ +## @file +# Parser a Inf file and Get specify section data. +# +# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.
+# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# + +## Import Modules +# + +import Common.EdkLogger as EdkLogger +from Common.BuildToolError import * +from Common.DataType import * + + +class InfSectionParser(): + def __init__(self, FilePath): + self._FilePath = FilePath + self._FileSectionDataList = [] + self._ParserInf() + + def _ParserInf(self): + Filename = self._FilePath + FileLinesList = [] + UserExtFind = False + FindEnd = True + FileLastLine = False + SectionLine = '' + SectionData = [] + + try: + FileLinesList = open(Filename, "r", 0).readlines() + except BaseException: + EdkLogger.error("build", AUTOGEN_ERROR, 'File %s is opened failed.' % Filename) + + for Index in range(0, len(FileLinesList)): + line = str(FileLinesList[Index]).strip() + if Index + 1 == len(FileLinesList): + FileLastLine = True + NextLine = '' + else: + NextLine = str(FileLinesList[Index + 1]).strip() + if UserExtFind and FindEnd == False: + if line: + SectionData.append(line) + if line.lower().startswith(TAB_SECTION_START) and line.lower().endswith(TAB_SECTION_END): + SectionLine = line + UserExtFind = True + FindEnd = False + + if (NextLine != '' and NextLine[0] == TAB_SECTION_START and \ + NextLine[-1] == TAB_SECTION_END) or FileLastLine: + UserExtFind = False + FindEnd = True + self._FileSectionDataList.append({SectionLine: SectionData[:]}) + SectionData = [] + SectionLine = '' + + + # Get depex expresion + # + # @return: a list include some dictionary that key is section and value is a list contain all data. + def GetDepexExpresionList(self): + DepexExpresionList = [] + if not self._FileSectionDataList: + return DepexExpresionList + for SectionDataDict in self._FileSectionDataList: + for key in SectionDataDict.keys(): + if key.lower() == "[depex]" or key.lower().startswith("[depex."): + SectionLine = key.lstrip(TAB_SECTION_START).rstrip(TAB_SECTION_END) + SubSectionList = [SectionLine] + if str(SectionLine).find(TAB_COMMA_SPLIT) > -1: + SubSectionList = str(SectionLine).split(TAB_COMMA_SPLIT) + for SubSection in SubSectionList: + SectionList = SubSection.split(TAB_SPLIT) + SubKey = () + if len(SectionList) == 1: + SubKey = (TAB_ARCH_COMMON, TAB_ARCH_COMMON) + elif len(SectionList) == 2: + SubKey = (SectionList[1], TAB_ARCH_COMMON) + elif len(SectionList) == 3: + SubKey = (SectionList[1], SectionList[2]) + else: + EdkLogger.error("build", AUTOGEN_ERROR, 'Section %s is invalid.' % key) + DepexExpresionList.append({SubKey: SectionDataDict[key]}) + return DepexExpresionList + + + + + + + + + + + + + + + diff --git a/BaseTools/Source/Python/AutoGen/StrGather.py b/BaseTools/Source/Python/AutoGen/StrGather.py index 20af015bcf..48c396a9aa 100644 --- a/BaseTools/Source/Python/AutoGen/StrGather.py +++ b/BaseTools/Source/Python/AutoGen/StrGather.py @@ -1,3 +1,7 @@ +## @file +# This file is used to parse a strings file and create or add to a string database +# file. +# # Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -7,10 +11,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. -# -#This file is used to parse a strings file and create or add to a string database file. -# - ## # Import Modules # diff --git a/BaseTools/Source/Python/AutoGen/UniClassObject.py b/BaseTools/Source/Python/AutoGen/UniClassObject.py index e676ad6ec8..58f865ed8b 100644 --- a/BaseTools/Source/Python/AutoGen/UniClassObject.py +++ b/BaseTools/Source/Python/AutoGen/UniClassObject.py @@ -1,3 +1,6 @@ +## @file +# This file is used to collect all defined strings in multiple uni files +# # Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -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. -# -#This file is used to collect all defined strings in multiple uni files -# - ## # Import Modules # diff --git a/BaseTools/Source/Python/Common/DataType.py b/BaseTools/Source/Python/Common/DataType.py index f1408569e0..57e5063ff2 100644 --- a/BaseTools/Source/Python/Common/DataType.py +++ b/BaseTools/Source/Python/Common/DataType.py @@ -373,7 +373,7 @@ TAB_INF_GUIDTYPE_TSG = 'TokenSpaceGuid' TAB_INF_GUIDTYPE_VAR = 'Variable' TAB_INF_GUIDTYPE_PROTOCOL = 'PROTOCOL' TAB_INF_GUIDTYPE_PPI = 'PPI' -TAB_INF_GUIDTYPE_UNDEFINED = 'UNDEFINED' +TAB_INF_USAGE_UNDEFINED = 'UNDEFINED' # # Dec Definitions diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Source/Python/Common/GlobalData.py index 1f9d91c5d8..218034ba33 100644 --- a/BaseTools/Source/Python/Common/GlobalData.py +++ b/BaseTools/Source/Python/Common/GlobalData.py @@ -1,7 +1,7 @@ ## @file # This file is used to define common static strings used by INF/DEC/DSC files # -# Copyright (c) 2007, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# 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 @@ -69,3 +69,11 @@ gIgnoreSource = False # FDF parser # gFdfParser = None + +# +# If a module is built more than once with different PCDs or library classes +# a temporary INF file with same content is created, the temporary file is removed +# when build exits. +# +gTempInfs = [] + diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Python/Common/Misc.py index e9e41de02e..01297cd0a9 100644 --- a/BaseTools/Source/Python/Common/Misc.py +++ b/BaseTools/Source/Python/Common/Misc.py @@ -23,6 +23,7 @@ import time import re import cPickle import array +import shutil from UserDict import IterableUserDict from UserList import UserList @@ -43,6 +44,90 @@ gFileTimeStampCache = {} # {file path : file time stamp} ## Dictionary used to store dependencies of files gDependencyDatabase = {} # arch : {file path : [dependent files list]} +## Routine to process duplicated INF +# +# This function is called by following two cases: +# Case 1 in DSC: +# [components.arch] +# Pkg/module/module.inf +# Pkg/module/module.inf { +# +# FILE_GUID = 0D1B936F-68F3-4589-AFCC-FB8B7AEBC836 +# } +# Case 2 in FDF: +# INF Pkg/module/module.inf +# INF FILE_GUID = 0D1B936F-68F3-4589-AFCC-FB8B7AEBC836 Pkg/module/module.inf +# +# This function copies Pkg/module/module.inf to +# Conf/.cache/0D1B936F-68F3-4589-AFCC-FB8B7AEBC836module.inf +# +# @param Path Original PathClass object +# @param BaseName New file base name +# +# @retval return the new PathClass object +# +def ProcessDuplicatedInf(Path, BaseName, Workspace): + Filename = os.path.split(Path.File)[1] + if '.' in Filename: + Filename = BaseName + Path.BaseName + Filename[Filename.rfind('.'):] + else: + Filename = BaseName + Path.BaseName + + # + # If -N is specified on command line, cache is disabled + # The directory has to be created + # + DbDir = os.path.split(GlobalData.gDatabasePath)[0] + if not os.path.exists(DbDir): + os.makedirs(DbDir) + # + # A temporary INF is copied to database path which must have write permission + # The temporary will be removed at the end of build + # In case of name conflict, the file name is + # FILE_GUIDBaseName (0D1B936F-68F3-4589-AFCC-FB8B7AEBC836module.inf) + # + TempFullPath = os.path.join(DbDir, + Filename) + RtPath = PathClass(Path.File, Workspace) + # + # Modify the full path to temporary path, keep other unchanged + # + # To build same module more than once, the module path with FILE_GUID overridden has + # the file name FILE_GUIDmodule.inf, but the relative path (self.MetaFile.File) is the real path + # in DSC which is used as relative path by C files and other files in INF. + # A trick was used: all module paths are PathClass instances, after the initialization + # of PathClass, the PathClass.Path is overridden by the temporary INF path. + # + # The reason for creating a temporary INF is: + # Platform.Modules which is the base to create ModuleAutoGen objects is a dictionary, + # the key is the full path of INF, the value is an object to save overridden library instances, PCDs. + # A different key for the same module is needed to create different output directory, + # retrieve overridden PCDs, library instances. + # + # The BaseName is the FILE_GUID which is also the output directory name. + # + # + RtPath.Path = TempFullPath + RtPath.BaseName = BaseName + # + # If file exists, compare contents + # + if os.path.exists(TempFullPath): + with open(str(Path), 'rb') as f1: Src = f1.read() + with open(TempFullPath, 'rb') as f2: Dst = f2.read() + if Src == Dst: + return RtPath + GlobalData.gTempInfs.append(TempFullPath) + shutil.copy2(str(Path), TempFullPath) + return RtPath + +## Remove temporary created INFs whose paths were saved in gTempInfs +# +def ClearDuplicatedInf(): + for File in GlobalData.gTempInfs: + if os.path.exists(File): + os.remove(File) + ## callback routine for processing variable option # # This function can be used to process variable number of option values. The @@ -1456,6 +1541,45 @@ def CommonPath(PathList): return os.path.sep.join(P1[:Index]) return os.path.sep.join(P1) +# +# Convert string to C format array +# +def ConvertStringToByteArray(Value): + Value = Value.strip() + if not Value: + return None + if Value[0] == '{': + if not Value.endswith('}'): + return None + Value = Value.replace(' ', '').replace('{', '').replace('}', '') + ValFields = Value.split(',') + try: + for Index in range(len(ValFields)): + ValFields[Index] = str(int(ValFields[Index], 0)) + except ValueError: + return None + Value = '{' + ','.join(ValFields) + '}' + return Value + + Unicode = False + if Value.startswith('L"'): + if not Value.endswith('"'): + return None + Value = Value[1:] + Unicode = True + elif not Value.startswith('"') or not Value.endswith('"'): + return None + + Value = eval(Value) # translate escape character + NewValue = '{' + for Index in range(0,len(Value)): + if Unicode: + NewValue = NewValue + str(ord(Value[Index]) % 0x10000) + ',' + else: + NewValue = NewValue + str(ord(Value[Index]) % 0x100) + ',' + Value = NewValue + '0}' + return Value + class PathClass(object): def __init__(self, File='', Root='', AlterRoot='', Type='', IsBinary=False, Arch='COMMON', ToolChainFamily='', Target='', TagName='', ToolCode=''): diff --git a/BaseTools/Source/Python/Common/TargetTxtClassObject.py b/BaseTools/Source/Python/Common/TargetTxtClassObject.py index 89e3937086..387e515230 100644 --- a/BaseTools/Source/Python/Common/TargetTxtClassObject.py +++ b/BaseTools/Source/Python/Common/TargetTxtClassObject.py @@ -21,7 +21,7 @@ from BuildToolError import * import GlobalData from Common.LongFilePathSupport import OpenLongFilePath as open -gDefaultTargetTxtFile = "Conf/target.txt" +gDefaultTargetTxtFile = "target.txt" ## TargetTxtClassObject # @@ -44,6 +44,7 @@ class TargetTxtClassObject(object): DataType.TAB_TAT_DEFINES_TARGET_ARCH : [], DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF : '', } + self.ConfDirectoryPath = "" if Filename != None: self.LoadTargetTxtFile(Filename) @@ -78,7 +79,8 @@ class TargetTxtClassObject(object): def ConvertTextFileToDict(self, FileName, CommentCharacter, KeySplitCharacter): F = None try: - F = open(FileName,'r') + F = open(FileName, 'r') + self.ConfDirectoryPath = os.path.dirname(FileName) except: EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=FileName) if F != None: @@ -99,6 +101,26 @@ class TargetTxtClassObject(object): if Key in [DataType.TAB_TAT_DEFINES_ACTIVE_PLATFORM, DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF, \ DataType.TAB_TAT_DEFINES_ACTIVE_MODULE, DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF]: self.TargetTxtDictionary[Key] = Value.replace('\\', '/') + if Key == DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF and self.TargetTxtDictionary[Key]: + if self.TargetTxtDictionary[Key].startswith("Conf/"): + Tools_Def = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].strip()) + if not os.path.exists(Tools_Def) or not os.path.isfile(Tools_Def): + # If Conf/Conf does not exist, try just the Conf/ directory + Tools_Def = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].replace("Conf/", "", 1).strip()) + else: + # The File pointed to by TOOL_CHAIN_CONF is not in a Conf/ directory + Tools_Def = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].strip()) + self.TargetTxtDictionary[Key] = Tools_Def + if Key == DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF and self.TargetTxtDictionary[Key]: + if self.TargetTxtDictionary[Key].startswith("Conf/"): + Build_Rule = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].strip()) + if not os.path.exists(Build_Rule) or not os.path.isfile(Build_Rule): + # If Conf/Conf does not exist, try just the Conf/ directory + Build_Rule = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].replace("Conf/", "", 1).strip()) + else: + # The File pointed to by BUILD_RULE_CONF is not in a Conf/ directory + Build_Rule = os.path.join(self.ConfDirectoryPath, self.TargetTxtDictionary[Key].strip()) + self.TargetTxtDictionary[Key] = Build_Rule elif Key in [DataType.TAB_TAT_DEFINES_TARGET, DataType.TAB_TAT_DEFINES_TARGET_ARCH, \ DataType.TAB_TAT_DEFINES_TOOL_CHAIN_TAG]: self.TargetTxtDictionary[Key] = Value.split() @@ -144,15 +166,15 @@ class TargetTxtClassObject(object): print Item ## TargetTxtDict # -# Load target.txt in input workspace dir +# Load target.txt in input Conf dir # -# @param WorkSpace: Workspace dir +# @param ConfDir: Conf dir # # @retval Target An instance of TargetTxtClassObject() with loaded target.txt # -def TargetTxtDict(WorkSpace): +def TargetTxtDict(ConfDir): Target = TargetTxtClassObject() - Target.LoadTargetTxtFile(os.path.normpath(os.path.join(WorkSpace, gDefaultTargetTxtFile))) + Target.LoadTargetTxtFile(os.path.normpath(os.path.join(ConfDir, gDefaultTargetTxtFile))) return Target ## diff --git a/BaseTools/Source/Python/Common/ToolDefClassObject.py b/BaseTools/Source/Python/Common/ToolDefClassObject.py index 583d51b513..4fefbd91e0 100644 --- a/BaseTools/Source/Python/Common/ToolDefClassObject.py +++ b/BaseTools/Source/Python/Common/ToolDefClassObject.py @@ -29,7 +29,7 @@ from Common.LongFilePathSupport import OpenLongFilePath as open gMacroRefPattern = re.compile('(DEF\([^\(\)]+\))') gEnvRefPattern = re.compile('(ENV\([^\(\)]+\))') gMacroDefPattern = re.compile("DEFINE\s+([^\s]+)") -gDefaultToolsDefFile = "Conf/tools_def.txt" +gDefaultToolsDefFile = "tools_def.txt" ## ToolDefClassObject # @@ -196,18 +196,23 @@ class ToolDefClassObject(object): ## ToolDefDict # -# Load tools_def.txt in input workspace dir +# Load tools_def.txt in input Conf dir # -# @param WorkSpace: Workspace dir +# @param ConfDir: Conf dir # # @retval ToolDef An instance of ToolDefClassObject() with loaded tools_def.txt # -def ToolDefDict(WorkSpace): - Target = TargetTxtDict(WorkSpace) +def ToolDefDict(ConfDir): + Target = TargetTxtDict(ConfDir) ToolDef = ToolDefClassObject() if DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF in Target.TargetTxtDictionary: - gDefaultToolsDefFile = Target.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF] - ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(WorkSpace, gDefaultToolsDefFile))) + ToolsDefFile = Target.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF] + if ToolsDefFile: + ToolDef.LoadToolDefFile(os.path.normpath(ToolsDefFile)) + else: + ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(ConfDir, gDefaultToolsDefFile))) + else: + ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(ConfDir, gDefaultToolsDefFile))) return ToolDef ## diff --git a/BaseTools/Source/Python/CommonDataClass/DataClass.py b/BaseTools/Source/Python/CommonDataClass/DataClass.py index 2cc09ff333..3f6c3c65a5 100644 --- a/BaseTools/Source/Python/CommonDataClass/DataClass.py +++ b/BaseTools/Source/Python/CommonDataClass/DataClass.py @@ -1,7 +1,7 @@ ## @file # This file is used to define class for data structure used in ECC # -# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.
+# Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.
# 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 @@ -29,6 +29,7 @@ MODEL_FILE_DSC = 1013 MODEL_FILE_FDF = 1014 MODEL_FILE_INC = 1015 MODEL_FILE_CIF = 1016 +MODEL_FILE_UNI = 1017 MODEL_FILE_OTHERS = 1099 MODEL_IDENTIFIER_FILE_HEADER = 2001 diff --git a/BaseTools/Source/Python/GenFds/CompressSection.py b/BaseTools/Source/Python/GenFds/CompressSection.py index 9d9c9cfdf7..fac58d14f8 100644 --- a/BaseTools/Source/Python/GenFds/CompressSection.py +++ b/BaseTools/Source/Python/GenFds/CompressSection.py @@ -18,7 +18,7 @@ from Ffs import Ffs import Section import subprocess -import os +import Common.LongFilePathOs as os from GenFdsGlobalVariable import GenFdsGlobalVariable from CommonDataClass.FdfClass import CompressSectionClassObject diff --git a/BaseTools/Source/Python/GenFds/DepexSection.py b/BaseTools/Source/Python/GenFds/DepexSection.py index c048efe478..8f78c0fad4 100644 --- a/BaseTools/Source/Python/GenFds/DepexSection.py +++ b/BaseTools/Source/Python/GenFds/DepexSection.py @@ -24,6 +24,7 @@ from CommonDataClass.FdfClass import DepexSectionClassObject from AutoGen.GenDepex import DependencyExpression from Common import EdkLogger from Common.BuildToolError import * +from Common.Misc import PathClass ## generate data section # @@ -38,10 +39,22 @@ class DepexSection (DepexSectionClassObject): def __FindGuidValue(self, CName): for Arch in GenFdsGlobalVariable.ArchList: - for PkgDb in GenFdsGlobalVariable.WorkSpace.GetPackageList(GenFdsGlobalVariable.ActivePlatform, - Arch, - GenFdsGlobalVariable.TargetName, - GenFdsGlobalVariable.ToolChainTag): + PkgList = GenFdsGlobalVariable.WorkSpace.GetPackageList(GenFdsGlobalVariable.ActivePlatform, + Arch, + GenFdsGlobalVariable.TargetName, + GenFdsGlobalVariable.ToolChainTag) + for Inf in GenFdsGlobalVariable.FdfParser.Profile.InfList: + ModuleFile = PathClass(Inf, GenFdsGlobalVariable.WorkSpaceDir) + ModuleData = GenFdsGlobalVariable.WorkSpace.BuildObject[ + ModuleFile, + Arch, + GenFdsGlobalVariable.TargetName, + GenFdsGlobalVariable.ToolChainTag + ] + for Pkg in ModuleData.Packages: + if Pkg not in PkgList: + PkgList.append(Pkg) + for PkgDb in PkgList: if CName in PkgDb.Ppis: return PkgDb.Ppis[CName] if CName in PkgDb.Protocols: diff --git a/BaseTools/Source/Python/GenFds/EfiSection.py b/BaseTools/Source/Python/GenFds/EfiSection.py index 15ebac5705..8f61c4d2db 100644 --- a/BaseTools/Source/Python/GenFds/EfiSection.py +++ b/BaseTools/Source/Python/GenFds/EfiSection.py @@ -1,7 +1,7 @@ ## @file # process rule section generation # -# Copyright (c) 2007, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -211,10 +211,10 @@ class EfiSection (EfiSectionClassObject): """If File List is empty""" if FileList == [] : if self.Optional == True: - GenFdsGlobalVariable.VerboseLogger( "Optional Section don't exist!") - return [], None + GenFdsGlobalVariable.VerboseLogger("Optional Section don't exist!") + return [], None else: - EdkLogger.error("GenFds", GENFDS_ERROR, "Output file for %s section could not be found for %s" % (SectionType, InfFileName)) + EdkLogger.error("GenFds", GENFDS_ERROR, "Output file for %s section could not be found for %s" % (SectionType, InfFileName)) else: """Convert the File to Section file one by one """ diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index 01dab7bdab..f4ccda9374 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -218,6 +218,7 @@ class FdfParser: self.CurrentFvName = None self.__Token = "" self.__SkippedChars = "" + GlobalData.gFdfParser = self # Used to section info self.__CurSection = [] @@ -2356,6 +2357,9 @@ class FdfParser: ffsInf.CurrentLineNum = self.CurrentLineNumber ffsInf.CurrentLineContent = self.__CurrentLine() + #Replace $(SAPCE) with real space + ffsInf.InfFileName = ffsInf.InfFileName.replace('$(SPACE)', ' ') + if ffsInf.InfFileName.replace('$(WORKSPACE)', '').find('$') == -1: #do case sensitive check for file path ErrorCode, ErrorInfo = PathClass(NormPath(ffsInf.InfFileName), GenFdsGlobalVariable.WorkSpaceDir).Validate() @@ -2391,6 +2395,12 @@ class FdfParser: # @param FfsInfObj for whom option is got # def __GetInfOptions(self, FfsInfObj): + if self.__IsKeyword("FILE_GUID"): + if not self.__IsToken("="): + raise Warning("expected '='", self.FileName, self.CurrentLineNumber) + if not self.__GetNextGuid(): + raise Warning("expected GUID value", self.FileName, self.CurrentLineNumber) + FfsInfObj.OverrideGuid = self.__Token if self.__IsKeyword( "RuleOverride"): if not self.__IsToken( "="): @@ -2426,8 +2436,8 @@ class FdfParser: if self.__GetNextToken(): - p = re.compile(r'([a-zA-Z0-9\-]+|\$\(TARGET\)|\*)_([a-zA-Z0-9\-]+|\$\(TOOL_CHAIN_TAG\)|\*)_([a-zA-Z0-9\-]+|\$\(ARCH\)|\*)') - if p.match(self.__Token): + p = re.compile(r'([a-zA-Z0-9\-]+|\$\(TARGET\)|\*)_([a-zA-Z0-9\-]+|\$\(TOOL_CHAIN_TAG\)|\*)_([a-zA-Z0-9\-]+|\$\(ARCH\))') + if p.match(self.__Token) and p.match(self.__Token).span()[1] == len(self.__Token): FfsInfObj.KeyStringList.append(self.__Token) if not self.__IsToken(","): return @@ -2576,7 +2586,7 @@ class FdfParser: else: FfsFileObj.CurrentLineNum = self.CurrentLineNumber FfsFileObj.CurrentLineContent = self.__CurrentLine() - FfsFileObj.FileName = self.__Token + FfsFileObj.FileName = self.__Token.replace('$(SPACE)', ' ') self.__VerifyFile(FfsFileObj.FileName) if not self.__IsToken( "}"): diff --git a/BaseTools/Source/Python/GenFds/FfsFileStatement.py b/BaseTools/Source/Python/GenFds/FfsFileStatement.py index a765f9e04a..cd099196d0 100644 --- a/BaseTools/Source/Python/GenFds/FfsFileStatement.py +++ b/BaseTools/Source/Python/GenFds/FfsFileStatement.py @@ -92,6 +92,8 @@ class FileStatement (FileStatementClassObject) : elif self.FileName != None: self.FileName = GenFdsGlobalVariable.ReplaceWorkspaceMacro(self.FileName) + #Replace $(SAPCE) with real space + self.FileName = self.FileName.replace('$(SPACE)', ' ') SectionFiles = [GenFdsGlobalVariable.MacroExtend(self.FileName, Dict)] else: diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py b/BaseTools/Source/Python/GenFds/FfsInfStatement.py index a7a65919d7..cc85a32796 100644 --- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py +++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py @@ -30,6 +30,7 @@ from CommonDataClass.FdfClass import FfsInfStatementClassObject from Common.String import * from Common.Misc import PathClass from Common.Misc import GuidStructureByteArrayToGuidString +from Common.Misc import ProcessDuplicatedInf from Common import EdkLogger from Common.BuildToolError import * from GuidSection import GuidSection @@ -64,6 +65,8 @@ class FfsInfStatement(FfsInfStatementClassObject): self.CurrentLineContent = None self.FileName = None self.InfFileName = None + self.OverrideGuid = None + self.PatchedBinFile = '' ## GetFinalTargetSuffixMap() method # @@ -145,7 +148,9 @@ class FfsInfStatement(FfsInfStatementClassObject): GenFdsGlobalVariable.VerboseLogger( " Begine parsing INf file : %s" %self.InfFileName) self.InfFileName = self.InfFileName.replace('$(WORKSPACE)', '') - if self.InfFileName[0] == '\\' or self.InfFileName[0] == '/' : + if len(self.InfFileName) > 1 and self.InfFileName[0] == '\\' and self.InfFileName[1] == '\\': + pass + elif self.InfFileName[0] == '\\' or self.InfFileName[0] == '/' : self.InfFileName = self.InfFileName[1:] if self.InfFileName.find('$') == -1: @@ -164,7 +169,9 @@ class FfsInfStatement(FfsInfStatementClassObject): ErrorCode, ErrorInfo = PathClassObj.Validate(".inf") if ErrorCode != 0: EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo) - + + if self.OverrideGuid: + PathClassObj = ProcessDuplicatedInf(PathClassObj, self.OverrideGuid, GenFdsGlobalVariable.WorkSpaceDir) if self.CurrentArch != None: Inf = GenFdsGlobalVariable.WorkSpace.BuildObject[PathClassObj, self.CurrentArch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] @@ -199,6 +206,9 @@ class FfsInfStatement(FfsInfStatementClassObject): "INF %s specified in FDF could not be found in build ARCH %s!" \ % (self.InfFileName, GenFdsGlobalVariable.ArchList)) + if self.OverrideGuid: + self.ModuleGuid = self.OverrideGuid + if len(self.SourceFileList) != 0 and not self.InDsc: EdkLogger.warn("GenFds", GENFDS_ERROR, "Module %s NOT found in DSC file; Is it really a binary module?" % (self.InfFileName)) @@ -285,8 +295,8 @@ class FfsInfStatement(FfsInfStatementClassObject): or PcdValueInImg > FfsInfStatement._MAX_SIZE_TYPE[Pcd.DatumType]: EdkLogger.error("GenFds", GENFDS_ERROR, "The size of %s type PCD '%s.%s' doesn't match its data type." \ % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName)) - Pcd.DefaultValue = DefaultValue - self.PatchPcds.append(Pcd) + self.PatchPcds.append((Pcd, DefaultValue)) + self.InfModule = Inf self.PcdIsDriver = Inf.PcdIsDriver self.IsBinaryModule = Inf.IsBinaryModule @@ -308,7 +318,7 @@ class FfsInfStatement(FfsInfStatementClassObject): self.EfiOutputPath = self.__GetEFIOutPutPath__() GenFdsGlobalVariable.VerboseLogger( "ModuelEFIPath: " + self.EfiOutputPath) -## PatchEfiFile + ## PatchEfiFile # # Patch EFI file with patch PCD # @@ -316,18 +326,25 @@ class FfsInfStatement(FfsInfStatementClassObject): # @retval: Full path of patched EFI file: self.OutputPath + EfiFile base name # If passed in file does not end with efi, return as is # - def PatchEfiFile(self, EfiFile): - if os.path.splitext(EfiFile)[1].lower() != '.efi': - return EfiFile + def PatchEfiFile(self, EfiFile, FileType): if not self.PatchPcds: return EfiFile + if FileType != 'PE32' and self.ModuleType != "USER_DEFINED": + return EfiFile + if self.PatchedBinFile: + EdkLogger.error("GenFds", GENFDS_ERROR, + 'Only one binary file can be patched:\n' + ' a binary file has been patched: %s\n' + ' current file: %s' % (self.PatchedBinFile, EfiFile), + File=self.InfFileName) Basename = os.path.basename(EfiFile) Output = os.path.join(self.OutputPath, Basename) CopyLongFilePath(EfiFile, Output) - for Pcd in self.PatchPcds: - RetVal, RetStr = PatchBinaryFile(Output, int(Pcd.Offset, 0), Pcd.DatumType, Pcd.DefaultValue, Pcd.MaxDatumSize) + for Pcd, Value in self.PatchPcds: + RetVal, RetStr = PatchBinaryFile(Output, int(Pcd.Offset, 0), Pcd.DatumType, Value, Pcd.MaxDatumSize) if RetVal: EdkLogger.error("GenFds", GENFDS_ERROR, RetStr, File=self.InfFileName) + self.PatchedBinFile = os.path.normpath(EfiFile) return Output ## GenFfs() method # @@ -349,7 +366,7 @@ class FfsInfStatement(FfsInfStatementClassObject): # # Allow binary type module not specify override rule in FDF file. # - if len(self.BinFileList) >0 and not self.InDsc: + if len(self.BinFileList) > 0: if self.Rule == None or self.Rule == "": self.Rule = "BINARY" @@ -568,6 +585,8 @@ class FfsInfStatement(FfsInfStatementClassObject): (ModulePath, FileName) = os.path.split(self.InfFileName) Index = FileName.rfind('.') FileName = FileName[0:Index] + if self.OverrideGuid: + FileName = self.OverrideGuid Arch = "NoneArch" if self.CurrentArch != None: Arch = self.CurrentArch diff --git a/BaseTools/Source/Python/GenFds/GenFds.py b/BaseTools/Source/Python/GenFds/GenFds.py index c5ccda677b..c4e433d425 100644 --- a/BaseTools/Source/Python/GenFds/GenFds.py +++ b/BaseTools/Source/Python/GenFds/GenFds.py @@ -36,6 +36,7 @@ from Common import EdkLogger from Common.String import * from Common.Misc import DirCache,PathClass from Common.Misc import SaveFileOnChange +from Common.Misc import ClearDuplicatedInf from Common.Misc import GuidStructureStringToGuidString from Common.BuildVersion import gBUILD_VERSION @@ -149,15 +150,36 @@ def main(): GenFdsGlobalVariable.ActivePlatform = PathClass(NormPath(ActivePlatform), Workspace) - BuildConfigurationFile = os.path.normpath(os.path.join(GenFdsGlobalVariable.WorkSpaceDir, "Conf/target.txt")) + if (Options.ConfDirectory): + # Get alternate Conf location, if it is absolute, then just use the absolute directory name + ConfDirectoryPath = os.path.normpath(Options.ConfDirectory) + if ConfDirectoryPath.startswith('"'): + ConfDirectoryPath = ConfDirectoryPath[1:] + if ConfDirectoryPath.endswith('"'): + ConfDirectoryPath = ConfDirectoryPath[:-1] + if not os.path.isabs(ConfDirectoryPath): + # Since alternate directory name is not absolute, the alternate directory is located within the WORKSPACE + # This also handles someone specifying the Conf directory in the workspace. Using --conf=Conf + ConfDirectoryPath = os.path.join(GenFdsGlobalVariable.WorkSpaceDir, ConfDirectoryPath) + else: + # Get standard WORKSPACE/Conf, use the absolute path to the WORKSPACE/Conf + ConfDirectoryPath = os.path.join(GenFdsGlobalVariable.WorkSpaceDir, 'Conf') + GenFdsGlobalVariable.ConfDir = ConfDirectoryPath + BuildConfigurationFile = os.path.normpath(os.path.join(ConfDirectoryPath, "target.txt")) if os.path.isfile(BuildConfigurationFile) == True: TargetTxtClassObject.TargetTxtClassObject(BuildConfigurationFile) else: EdkLogger.error("GenFds", FILE_NOT_FOUND, ExtraData=BuildConfigurationFile) + #Set global flag for build mode + GlobalData.gIgnoreSource = Options.IgnoreSources + if Options.Macros: for Pair in Options.Macros: - Pair = Pair.strip('"') + if Pair.startswith('"'): + Pair = Pair[1:] + if Pair.endswith('"'): + Pair = Pair[:-1] List = Pair.split('=') if len(List) == 2: if List[0].strip() == "EFI_SOURCE": @@ -177,7 +199,8 @@ def main(): os.environ["WORKSPACE"] = Workspace """call Workspace build create database""" - BuildWorkSpace = WorkspaceDatabase(None) + GlobalData.gDatabasePath = os.path.normpath(os.path.join(ConfDirectoryPath, GlobalData.gDatabasePath)) + BuildWorkSpace = WorkspaceDatabase(GlobalData.gDatabasePath) BuildWorkSpace.InitDatabase() # @@ -276,11 +299,13 @@ def main(): "\nPython", CODE_ERROR, "Tools code failure", - ExtraData="Please send email to edk2-buildtools-devel@lists.sourceforge.net for help, attaching following call stack trace!\n", + ExtraData="Please send email to edk2-devel@lists.sourceforge.net for help, attaching following call stack trace!\n", RaiseError=False ) EdkLogger.quiet(traceback.format_exc()) ReturnCode = CODE_ERROR + finally: + ClearDuplicatedInf() return ReturnCode gParamCheck = [] @@ -321,6 +346,9 @@ def myOptionParser(): action="callback", callback=SingleCheckCallback) Parser.add_option("-D", "--define", action="append", type="string", dest="Macros", help="Macro: \"Name [= Value]\".") Parser.add_option("-s", "--specifyaddress", dest="FixedAddress", action="store_true", type=None, help="Specify driver load address.") + Parser.add_option("--conf", action="store", type="string", dest="ConfDirectory", help="Specify the customized Conf directory.") + Parser.add_option("--ignore-sources", action="store_true", dest="IgnoreSources", default=False, help="Focus to a binary build and ignore all source files") + (Options, args) = Parser.parse_args() return Options diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py index f97b41b834..04bbc300ce 100644 --- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py +++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py @@ -45,6 +45,7 @@ class GenFdsGlobalVariable: LibDir = '' WorkSpace = None WorkSpaceDir = '' + ConfDir = '' EdkSourceDir = '' OutputDirFromDscDict = {} TargetName = '' @@ -88,7 +89,7 @@ class GenFdsGlobalVariable: def __LoadBuildRule(): if GenFdsGlobalVariable.__BuildRuleDatabase: return GenFdsGlobalVariable.__BuildRuleDatabase - BuildConfigurationFile = os.path.normpath(os.path.join(GenFdsGlobalVariable.WorkSpaceDir, "Conf/target.txt")) + BuildConfigurationFile = os.path.normpath(os.path.join(GenFdsGlobalVariable.ConfDir, "target.txt")) TargetTxt = TargetTxtClassObject() if os.path.isfile(BuildConfigurationFile) == True: TargetTxt.LoadTargetTxtFile(BuildConfigurationFile) @@ -201,11 +202,13 @@ class GenFdsGlobalVariable: TargetList = set() FileList = [] - for File in Inf.Sources: - if File.TagName in ("", "*", GenFdsGlobalVariable.ToolChainTag) and \ - File.ToolChainFamily in ("", "*", GenFdsGlobalVariable.ToolChainFamily): - FileList.append((File, DataType.TAB_UNKNOWN_FILE)) - + + if not Inf.IsBinaryModule: + for File in Inf.Sources: + if File.TagName in ("", "*", GenFdsGlobalVariable.ToolChainTag) and \ + File.ToolChainFamily in ("", "*", GenFdsGlobalVariable.ToolChainFamily): + FileList.append((File, DataType.TAB_UNKNOWN_FILE)) + for File in Inf.Binaries: if File.Target in ['COMMON', '*', GenFdsGlobalVariable.TargetName]: FileList.append((File, File.Type)) @@ -645,7 +648,8 @@ class GenFdsGlobalVariable: '$(EDK_SOURCE)' : GenFdsGlobalVariable.EdkSourceDir, # '$(OUTPUT_DIRECTORY)': GenFdsGlobalVariable.OutputDirFromDsc, '$(TARGET)' : GenFdsGlobalVariable.TargetName, - '$(TOOL_CHAIN_TAG)' : GenFdsGlobalVariable.ToolChainTag + '$(TOOL_CHAIN_TAG)' : GenFdsGlobalVariable.ToolChainTag, + '$(SPACE)' : ' ' } OutputDir = GenFdsGlobalVariable.OutputDirFromDscDict[GenFdsGlobalVariable.ArchList[0]] if Arch != 'COMMON' and Arch in GenFdsGlobalVariable.ArchList: diff --git a/BaseTools/Source/Python/GenFds/GuidSection.py b/BaseTools/Source/Python/GenFds/GuidSection.py index 97d8ba8f76..0e5bb3b270 100644 --- a/BaseTools/Source/Python/GenFds/GuidSection.py +++ b/BaseTools/Source/Python/GenFds/GuidSection.py @@ -198,7 +198,7 @@ class GuidSection(GuidSectionClassObject) : HeaderLength = str(self.ExtraHeaderSize) if self.ProcessRequired == "NONE" and HeaderLength == None: - if TempFileSize > InputFileSize and TempFileSize % 4 == 0: + if TempFileSize > InputFileSize: FileHandleIn.seek(0) BufferIn = FileHandleIn.read() FileHandleOut.seek(0) @@ -247,15 +247,15 @@ class GuidSection(GuidSectionClassObject) : if self.KeyStringList == None or self.KeyStringList == []: Target = GenFdsGlobalVariable.TargetName ToolChain = GenFdsGlobalVariable.ToolChainTag - ToolDb = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.WorkSpaceDir).ToolsDefTxtDatabase + ToolDb = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDatabase if ToolChain not in ToolDb['TOOL_CHAIN_TAG']: EdkLogger.error("GenFds", GENFDS_ERROR, "Can not find external tool because tool tag %s is not defined in tools_def.txt!" % ToolChain) self.KeyStringList = [Target+'_'+ToolChain+'_'+self.CurrentArchList[0]] for Arch in self.CurrentArchList: - if Target+'_'+ToolChain+'_'+Arch not in self.KeyStringList: - self.KeyStringList.append(Target+'_'+ToolChain+'_'+Arch) - - ToolDefinition = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.WorkSpaceDir).ToolsDefTxtDictionary + if Target + '_' + ToolChain + '_' + Arch not in self.KeyStringList: + self.KeyStringList.append(Target + '_' + ToolChain + '_' + Arch) + + ToolDefinition = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDictionary ToolPathTmp = None for ToolDef in ToolDefinition.items(): if self.NameGuid == ToolDef[1]: diff --git a/BaseTools/Source/Python/GenFds/Section.py b/BaseTools/Source/Python/GenFds/Section.py index e32041d6a5..c67177bb17 100644 --- a/BaseTools/Source/Python/GenFds/Section.py +++ b/BaseTools/Source/Python/GenFds/Section.py @@ -129,9 +129,11 @@ class Section (SectionClassObject): if FileType != None: for File in FfsInf.BinFileList: if File.Arch == "COMMON" or FfsInf.CurrentArch == File.Arch: - if File.Type == FileType or (int(FfsInf.PiSpecVersion, 16) >= 0x0001000A and FileType == 'DXE_DPEX'and File.Type == 'SMM_DEPEX'): + if File.Type == FileType or (int(FfsInf.PiSpecVersion, 16) >= 0x0001000A \ + and FileType == 'DXE_DPEX'and File.Type == 'SMM_DEPEX') \ + or (FileType == 'TE'and File.Type == 'PE32'): if '*' in FfsInf.TargetOverrideList or File.Target == '*' or File.Target in FfsInf.TargetOverrideList or FfsInf.TargetOverrideList == []: - FileList.append(FfsInf.PatchEfiFile(File.Path)) + FileList.append(FfsInf.PatchEfiFile(File.Path, File.Type)) else: 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)) else: diff --git a/BaseTools/Source/Python/TargetTool/TargetTool.py b/BaseTools/Source/Python/TargetTool/TargetTool.py index 7a366db5fb..bfdf763a7a 100644 --- a/BaseTools/Source/Python/TargetTool/TargetTool.py +++ b/BaseTools/Source/Python/TargetTool/TargetTool.py @@ -1,3 +1,5 @@ +## @file +# Target Tool Parser # # Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# diff --git a/BaseTools/Source/Python/Trim/Trim.py b/BaseTools/Source/Python/Trim/Trim.py index 13485c72da..7df83649d0 100644 --- a/BaseTools/Source/Python/Trim/Trim.py +++ b/BaseTools/Source/Python/Trim/Trim.py @@ -594,7 +594,7 @@ def Main(): "\nTrim", CODE_ERROR, "Unknown fatal error when trimming [%s]" % InputFile, - ExtraData="\n(Please send email to edk2-buildtools-devel@lists.sourceforge.net for help, attaching following call stack trace!)\n", + ExtraData="\n(Please send email to edk2-devel@lists.sourceforge.net for help, attaching following call stack trace!)\n", RaiseError=False ) EdkLogger.quiet("(Python %s on %s) " % (platform.python_version(), sys.platform) + traceback.format_exc()) diff --git a/BaseTools/Source/Python/UPT/Logger/StringTable.py b/BaseTools/Source/Python/UPT/Logger/StringTable.py index 5b6973c944..54993f26fe 100644 --- a/BaseTools/Source/Python/UPT/Logger/StringTable.py +++ b/BaseTools/Source/Python/UPT/Logger/StringTable.py @@ -320,7 +320,7 @@ MSG_NEW_FILE_NAME_FOR_DIST = _( MSG_UPDATE_PACKAGE_DATABASE = _("Update Distribution Package Database ...") MSG_PYTHON_ON = _("(Python %s on %s) ") MSG_SEARCH_FOR_HELP = _( - "\n(Please send email to edk2-buildtools-devel@lists.sourceforge.net for\n" + "\n(Please send email to edk2-devel@lists.sourceforge.net for\n" " help, attach the following call stack trace.)\n") MSG_REMOVE_TEMP_FILE_STARTED = _("Removing temp files started ... ") MSG_REMOVE_TEMP_FILE_DONE = _("Removing temp files ... Done.") diff --git a/BaseTools/Source/Python/Workspace/MetaFileCommentParser.py b/BaseTools/Source/Python/Workspace/MetaFileCommentParser.py index ee6f5ac2b8..df1e90faf5 100644 --- a/BaseTools/Source/Python/Workspace/MetaFileCommentParser.py +++ b/BaseTools/Source/Python/Workspace/MetaFileCommentParser.py @@ -25,4 +25,27 @@ import Common.EdkLogger as EdkLogger UsageList = ("PRODUCES", "PRODUCED", "ALWAYS_PRODUCES", "ALWAYS_PRODUCED", "SOMETIMES_PRODUCES", "SOMETIMES_PRODUCED", "CONSUMES", "CONSUMED", "ALWAYS_CONSUMES", "ALWAYS_CONSUMED", "SOMETIMES_CONSUMES", "SOMETIMES_CONSUMED", "SOMETIME_CONSUMES") +ErrorMsgMap = { + MODEL_EFI_GUID : "The usage for this GUID is not listed in this INF: %s[%d]:%s", + MODEL_EFI_PPI : "The usage for this PPI is not listed in this INF: %s[%d]:%s.", + MODEL_EFI_PROTOCOL : "The usage for this Protocol is not listed in this INF: %s[%d]:%s.", + MODEL_PCD_DYNAMIC : "The usage for this PCD is not listed in this INF: %s[%d]:%s." +} +def CheckInfComment(SectionType, Comments, InfFile, LineNo, ValueList): + if SectionType in [MODEL_PCD_PATCHABLE_IN_MODULE, MODEL_PCD_DYNAMIC_EX, MODEL_PCD_DYNAMIC]: + CheckUsage(Comments, UsageList, InfFile, LineNo, ValueList[0]+'.'+ValueList[1], ErrorMsgMap[MODEL_PCD_DYNAMIC]) + elif SectionType in [MODEL_EFI_GUID, MODEL_EFI_PPI]: + CheckUsage(Comments, UsageList, InfFile, LineNo, ValueList[0], ErrorMsgMap[SectionType]) + elif SectionType == MODEL_EFI_PROTOCOL: + CheckUsage(Comments, UsageList + ("TO_START", "BY_START"), InfFile, LineNo, ValueList[0], ErrorMsgMap[SectionType]) + +def CheckUsage(Comments, Usages, InfFile, LineNo, Value, ErrorMsg): + for Comment in Comments: + for Word in Comment[0].replace('#', ' ').split(): + if Word in Usages: + return + EdkLogger.error( + "Parser", FORMAT_INVALID, + ErrorMsg % (InfFile, LineNo, Value) + ) diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py index 98939093d3..53b44f4403 100644 --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py @@ -31,6 +31,7 @@ from CommonDataClass.Exceptions import * from Common.LongFilePathSupport import OpenLongFilePath as open from MetaFileTable import MetaFileStorage +from MetaFileCommentParser import CheckInfComment ## A decorator used to parse macro definition def ParseMacro(Parser): @@ -595,6 +596,8 @@ class InfParser(MetaFileParser): continue if Comment: Comments.append((Comment, Index + 1)) + if GlobalData.gOptions and GlobalData.gOptions.CheckUsage: + CheckInfComment(self._SectionType, Comments, str(self.MetaFile), Index + 1, self._ValueList) # # Model, Value1, Value2, Value3, Arch, Platform, BelongsToItem=-1, # LineBegin=-1, ColumnBegin=-1, LineEnd=-1, ColumnEnd=-1, Enabled=-1 @@ -823,6 +826,10 @@ class DscParser(MetaFileParser): "FIX_LOAD_TOP_MEMORY_ADDRESS" ] + SubSectionDefineKeywords = [ + "FILE_GUID" + ] + SymbolPattern = ValueExpression.SymbolPattern ## Constructor of DscParser @@ -1041,13 +1048,15 @@ class DscParser(MetaFileParser): if not self._ValueList[2]: EdkLogger.error('Parser', FORMAT_INVALID, "No value specified", ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1) - if not self._ValueList[1] in self.DefineKeywords: + if (not self._ValueList[1] in self.DefineKeywords and + (self._InSubsection and self._ValueList[1] not in self.SubSectionDefineKeywords)): EdkLogger.error('Parser', FORMAT_INVALID, "Unknown keyword found: %s. " "If this is a macro you must " "add it as a DEFINE in the DSC" % self._ValueList[1], ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1) - self._Defines[self._ValueList[1]] = self._ValueList[2] + if not self._InSubsection: + self._Defines[self._ValueList[1]] = self._ValueList[2] self._ItemType = self.DataType[TAB_DSC_DEFINES.upper()] @ParseMacro @@ -1226,6 +1235,7 @@ class DscParser(MetaFileParser): self.__RetrievePcdValue() self._Content = self._RawTable.GetAll() self._ContentIndex = 0 + self._InSubsection = False while self._ContentIndex < len(self._Content) : Id, self._ItemType, V1, V2, V3, S1, S2, Owner, self._From, \ LineStart, ColStart, LineEnd, ColEnd, Enabled = self._Content[self._ContentIndex] @@ -1254,6 +1264,10 @@ class DscParser(MetaFileParser): self._LineIndex = LineStart - 1 self._ValueList = [V1, V2, V3] + if Owner > 0 and Owner in self._IdMapping: + self._InSubsection = True + else: + self._InSubsection = False try: Processer[self._ItemType]() except EvaluationException, Excpt: @@ -1356,6 +1370,13 @@ class DscParser(MetaFileParser): Type, Name, Value = self._ValueList Value = ReplaceMacro(Value, self._Macros, False) + # + # If it is , return + # + if self._InSubsection: + self._ValueList = [Type, Name, Value] + return + if self._ItemType == MODEL_META_DATA_DEFINE: if self._SectionType == MODEL_META_DATA_HEADER: self._FileLocalMacros[Name] = Value diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py index 638df1f6ed..83f730e629 100644 --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py @@ -35,9 +35,12 @@ from MetaFileParser import * from BuildClassObject import * from WorkspaceCommon import GetDeclaredPcd from Common.Misc import AnalyzeDscPcd +from Common.Misc import ProcessDuplicatedInf import re from Common.Parsing import IsValidWord +import Common.GlobalData as GlobalData + ## Platform build information from DSC file # # This class is used to retrieve information stored in database and convert them @@ -103,6 +106,7 @@ class DscBuildData(PlatformBuildClassObject): self._Target = Target self._Toolchain = Toolchain self._Clear() + self._HandleOverridePath() ## XXX[key] = value def __setitem__(self, key, value): @@ -147,6 +151,27 @@ class DscBuildData(PlatformBuildClassObject): self._VpdToolGuid = None self.__Macros = None + + ## handle Override Path of Module + def _HandleOverridePath(self): + RecordList = self._RawData[MODEL_META_DATA_COMPONENT, self._Arch] + Macros = self._Macros + Macros["EDK_SOURCE"] = GlobalData.gEcpSource + for Record in RecordList: + ModuleId = Record[5] + LineNo = Record[6] + ModuleFile = PathClass(NormPath(Record[0]), GlobalData.gWorkspace, Arch=self._Arch) + RecordList = self._RawData[MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH, self._Arch, None, ModuleId] + if RecordList != []: + SourceOverridePath = os.path.join(GlobalData.gWorkspace, NormPath(RecordList[0][0])) + + # Check if the source override path exists + if not os.path.isdir(SourceOverridePath): + EdkLogger.error('build', FILE_NOT_FOUND, Message='Source override path does not exist:', File=self.MetaFile, ExtraData=SourceOverridePath, Line=LineNo) + + #Add to GlobalData Variables + GlobalData.gOverrideDir[ModuleFile.Key] = SourceOverridePath + ## Get current effective macros def _GetMacros(self): if self.__Macros == None: @@ -478,6 +503,7 @@ class DscBuildData(PlatformBuildClassObject): Macros = self._Macros Macros["EDK_SOURCE"] = GlobalData.gEcpSource for Record in RecordList: + DuplicatedFile = False ModuleFile = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch) ModuleId = Record[5] LineNo = Record[6] @@ -490,23 +516,11 @@ class DscBuildData(PlatformBuildClassObject): # Check duplication # If arch is COMMON, no duplicate module is checked since all modules in all component sections are selected if self._Arch != 'COMMON' and ModuleFile in self._Modules: - EdkLogger.error('build', FILE_DUPLICATED, File=self.MetaFile, ExtraData=str(ModuleFile), Line=LineNo) + DuplicatedFile = True Module = ModuleBuildClassObject() Module.MetaFile = ModuleFile - # get module override path - RecordList = self._RawData[MODEL_META_DATA_COMPONENT_SOURCE_OVERRIDE_PATH, self._Arch, None, ModuleId] - if RecordList != []: - Module.SourceOverridePath = os.path.join(GlobalData.gWorkspace, NormPath(RecordList[0][0], Macros)) - - # Check if the source override path exists - if not os.path.isdir(Module.SourceOverridePath): - EdkLogger.error('build', FILE_NOT_FOUND, Message = 'Source override path does not exist:', File=self.MetaFile, ExtraData=Module.SourceOverridePath, Line=LineNo) - - #Add to GlobalData Variables - GlobalData.gOverrideDir[ModuleFile.Key] = Module.SourceOverridePath - # get module private library instance RecordList = self._RawData[MODEL_EFI_LIBRARY_CLASS, self._Arch, None, ModuleId] for Record in RecordList: @@ -563,6 +577,16 @@ class DscBuildData(PlatformBuildClassObject): OptionString = Module.BuildOptions[ToolChainFamily, ToolChain] Module.BuildOptions[ToolChainFamily, ToolChain] = OptionString + " " + Option + RecordList = self._RawData[MODEL_META_DATA_HEADER, self._Arch, None, ModuleId] + if DuplicatedFile and not RecordList: + EdkLogger.error('build', FILE_DUPLICATED, File=self.MetaFile, ExtraData=str(ModuleFile), Line=LineNo) + if RecordList: + if len(RecordList) != 1: + EdkLogger.error('build', OPTION_UNKNOWN, 'Only FILE_GUID can be listed in section.', + File=self.MetaFile, ExtraData=str(ModuleFile), Line=LineNo) + ModuleFile = ProcessDuplicatedInf(ModuleFile, RecordList[0][2], GlobalData.gWorkspace) + ModuleFile.Arch = self._Arch + self._Modules[ModuleFile] = Module return self._Modules @@ -641,9 +665,26 @@ class DscBuildData(PlatformBuildClassObject): def _ValidatePcd(self, PcdCName, TokenSpaceGuid, Setting, PcdType, LineNo): if self._DecPcds == None: self._DecPcds = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain) + FdfInfList = [] + if GlobalData.gFdfParser: + FdfInfList = GlobalData.gFdfParser.Profile.InfList + + PkgSet = set() + for Inf in FdfInfList: + ModuleFile = PathClass(NormPath(Inf), GlobalData.gWorkspace, Arch=self._Arch) + if ModuleFile in self._Modules: + continue + ModuleData = self._Bdb[ModuleFile, self._Arch, self._Target, self._Toolchain] + PkgSet.update(ModuleData.Packages) + DecPcds = {} + for Pkg in PkgSet: + for Pcd in Pkg.Pcds: + DecPcds[Pcd[0], Pcd[1]] = Pkg.Pcds[Pcd] + self._DecPcds.update(DecPcds) + if (PcdCName, TokenSpaceGuid) not in self._DecPcds: EdkLogger.error('build', PARSER_ERROR, - "Pcd (%s.%s) defined in DSC is not declared in DEC files." % (TokenSpaceGuid, PcdCName), + "Pcd (%s.%s) defined in DSC is not declared in DEC files. Arch: ['%s']" % (TokenSpaceGuid, PcdCName, self._Arch), File=self.MetaFile, Line=LineNo) ValueList, IsValid, Index = AnalyzeDscPcd(Setting, PcdType, self._DecPcds[PcdCName, TokenSpaceGuid].DatumType) if not IsValid and PcdType not in [MODEL_PCD_FEATURE_FLAG, MODEL_PCD_FIXED_AT_BUILD]: @@ -1676,6 +1717,9 @@ class InfBuildData(ModuleBuildClassObject): # items defined _PROPERTY_ don't need additional processing if Name in self: self[Name] = Value + if self._Defs == None: + self._Defs = sdict() + self._Defs[Name] = Value # some special items in [Defines] section need special treatment elif Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION', 'EDK_RELEASE_VERSION', 'PI_SPECIFICATION_VERSION'): if Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION'): @@ -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" \ % self.ModuleType, File=self.MetaFile) + if len(RecordList) != 0 and self.ModuleType == 'USER_DEFINED': + for Record in RecordList: + if Record[4] not in ['PEIM', 'DXE_DRIVER', 'DXE_SMM_DRIVER']: + EdkLogger.error('build', FORMAT_INVALID, + "'%s' module must specify the type of [Depex] section" % self.ModuleType, + File=self.MetaFile) + Depex = sdict() for Record in RecordList: DepexStr = ReplaceMacro(Record[0], self._Macros, False) @@ -2570,8 +2621,6 @@ class InfBuildData(ModuleBuildClassObject): # class WorkspaceDatabase(object): - # default database file path - _DB_PATH_ = "Conf/.cache/build.db" # # internal class used for call corresponding file parser and caching the result @@ -2682,7 +2731,7 @@ class WorkspaceDatabase(object): def __init__(self, DbPath, RenewDb=False): self._DbClosedFlag = False if not DbPath: - DbPath = os.path.normpath(os.path.join(GlobalData.gWorkspace, self._DB_PATH_)) + DbPath = os.path.normpath(os.path.join(GlobalData.gWorkspace, 'Conf', GlobalData.gDatabasePath)) # don't create necessary path for db in memory if DbPath != ':memory:': diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py index 2f8bfb42b1..a5bb70d456 100644 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -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'] ## build configuration file -gBuildConfiguration = "Conf/target.txt" -gBuildCacheDir = "Conf/.cache" -gToolsDefinition = "Conf/tools_def.txt" +gBuildConfiguration = "target.txt" +gToolsDefinition = "tools_def.txt" TemporaryTablePattern = re.compile(r'^_\d+_\d+_[a-fA-F0-9]+$') TmpTableDict = {} @@ -630,7 +629,8 @@ class BuildTask: # def AddDependency(self, Dependency): for Dep in Dependency: - self.DependencyList.append(BuildTask.New(Dep)) # BuildTask list + if not Dep.BuildObject.IsBinaryModule: + self.DependencyList.append(BuildTask.New(Dep)) # BuildTask list ## The thread wrapper of LaunchCommand function # @@ -732,18 +732,34 @@ class Build(): self.SkipAutoGen = BuildOptions.SkipAutoGen self.Reparse = BuildOptions.Reparse self.SkuId = BuildOptions.SkuId + self.ConfDirectory = BuildOptions.ConfDirectory self.SpawnMode = True self.BuildReport = BuildReport(BuildOptions.ReportFile, BuildOptions.ReportType) self.TargetTxt = TargetTxtClassObject() self.ToolDef = ToolDefClassObject() #Set global flag for build mode GlobalData.gIgnoreSource = BuildOptions.IgnoreSources + + if self.ConfDirectory: + # Get alternate Conf location, if it is absolute, then just use the absolute directory name + ConfDirectoryPath = os.path.normpath(self.ConfDirectory) + + if not os.path.isabs(ConfDirectoryPath): + # Since alternate directory name is not absolute, the alternate directory is located within the WORKSPACE + # This also handles someone specifying the Conf directory in the workspace. Using --conf=Conf + ConfDirectoryPath = os.path.join(self.WorkspaceDir, ConfDirectoryPath) + else: + # Get standard WORKSPACE/Conf use the absolute path to the WORKSPACE/Conf + ConfDirectoryPath = os.path.join(self.WorkspaceDir, 'Conf') + GlobalData.gConfDirectory = ConfDirectoryPath + GlobalData.gDatabasePath = os.path.normpath(os.path.join(ConfDirectoryPath, GlobalData.gDatabasePath)) + if BuildOptions.DisableCache: self.Db = WorkspaceDatabase(":memory:") else: - self.Db = WorkspaceDatabase(None, self.Reparse) - self.BuildDatabase = self.Db.BuildObject - self.Platform = None + self.Db = WorkspaceDatabase(GlobalData.gDatabasePath, self.Reparse) + self.BuildDatabase = self.Db.BuildObject + self.Platform = None self.LoadFixAddress = 0 self.UniFlag = BuildOptions.Flag self.BuildModules = [] @@ -772,14 +788,14 @@ class Build(): # # Check target.txt and tools_def.txt and Init them # - BuildConfigurationFile = os.path.normpath(os.path.join(self.WorkspaceDir, gBuildConfiguration)) + BuildConfigurationFile = os.path.normpath(os.path.join(GlobalData.gConfDirectory, gBuildConfiguration)) if os.path.isfile(BuildConfigurationFile) == True: StatusCode = self.TargetTxt.LoadTargetTxtFile(BuildConfigurationFile) ToolDefinitionFile = self.TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF] if ToolDefinitionFile == '': ToolDefinitionFile = gToolsDefinition - ToolDefinitionFile = os.path.normpath(os.path.join(self.WorkspaceDir, ToolDefinitionFile)) + ToolDefinitionFile = os.path.normpath(os.path.join(self.WorkspaceDir, 'Conf', ToolDefinitionFile)) if os.path.isfile(ToolDefinitionFile) == True: StatusCode = self.ToolDef.LoadToolDefFile(ToolDefinitionFile) else: @@ -1079,7 +1095,7 @@ class Build(): # First should close DB. # self.Db.Close() - RemoveDirectory(gBuildCacheDir, True) + RemoveDirectory(os.path.dirname(GlobalData.gDatabasePath), True) except WindowsError, X: EdkLogger.error("build", FILE_DELETE_FAILURE, ExtraData=str(X)) return True @@ -1804,19 +1820,19 @@ class Build(): EdkLogger.SetLevel(OldLogLevel) def DumpBuildData(self): - CacheDirectory = os.path.join(self.WorkspaceDir, gBuildCacheDir) + CacheDirectory = os.path.dirname(GlobalData.gDatabasePath) Utils.CreateDirectory(CacheDirectory) Utils.DataDump(Utils.gFileTimeStampCache, os.path.join(CacheDirectory, "gFileTimeStampCache")) Utils.DataDump(Utils.gDependencyDatabase, os.path.join(CacheDirectory, "gDependencyDatabase")) def RestoreBuildData(self): - FilePath = os.path.join(self.WorkspaceDir, gBuildCacheDir, "gFileTimeStampCache") + FilePath = os.path.join(os.path.dirname(GlobalData.gDatabasePath), "gFileTimeStampCache") if Utils.gFileTimeStampCache == {} and os.path.isfile(FilePath): Utils.gFileTimeStampCache = Utils.DataRestore(FilePath) if Utils.gFileTimeStampCache == None: Utils.gFileTimeStampCache = {} - FilePath = os.path.join(self.WorkspaceDir, gBuildCacheDir, "gDependencyDatabase") + FilePath = os.path.join(os.path.dirname(GlobalData.gDatabasePath), "gDependencyDatabase") if Utils.gDependencyDatabase == {} and os.path.isfile(FilePath): Utils.gDependencyDatabase = Utils.DataRestore(FilePath) if Utils.gDependencyDatabase == None: @@ -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 "\ "will override the setting in [BuildOptions] section of platform DSC.") Parser.add_option("-N", "--no-cache", action="store_true", dest="DisableCache", default=False, help="Disable build cache mechanism") + Parser.add_option("--conf", action="store", type="string", dest="ConfDirectory", help="Specify the customized Conf directory.") + Parser.add_option("--check-usage", action="store_true", dest="CheckUsage", default=False, help="Check usage content of entries listed in INF file.") Parser.add_option("--ignore-sources", action="store_true", dest="IgnoreSources", default=False, help="Focus to a binary build and ignore all source files") (Opt, Args)=Parser.parse_args() @@ -2064,13 +2082,14 @@ def Main(): "\nbuild", CODE_ERROR, "Unknown fatal error when processing [%s]" % MetaFile, - ExtraData="\n(Please send email to edk2-buildtools-devel@lists.sourceforge.net for help, attaching following call stack trace!)\n", + ExtraData="\n(Please send email to edk2-devel@lists.sourceforge.net for help, attaching following call stack trace!)\n", RaiseError=False ) EdkLogger.quiet("(Python %s on %s) " % (platform.python_version(), sys.platform) + traceback.format_exc()) ReturnCode = CODE_ERROR finally: Utils.Progressor.Abort() + Utils.ClearDuplicatedInf() if ReturnCode == 0: Conclusion = "Done" diff --git a/BaseTools/Source/Python/sitecustomize.py b/BaseTools/Source/Python/sitecustomize.py index ec463ea5fa..4ea84c5129 100644 --- a/BaseTools/Source/Python/sitecustomize.py +++ b/BaseTools/Source/Python/sitecustomize.py @@ -1,5 +1,7 @@ +## @file # -# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.
+# +# Copyright (c) 2009 - 2014, Apple Inc. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License -- 2.39.2