Sync BaseTool trunk (version r2397) into EDKII BaseTools. The change mainly includes
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 9 Nov 2011 04:32:08 +0000 (04:32 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 9 Nov 2011 04:32:08 +0000 (04:32 +0000)
1. Fix the issue that root directory of disk can’t be used as WORKSPACE.
2. Update AutoGen code style to pass C++ compiler.

Signed-off-by: lgao4
Reviewed-by: jsu1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12676 6f19259b-4bc3-4df7-8a09-765794883524

45 files changed:
BaseTools/Bin/Win32/BPDG.exe
BaseTools/Bin/Win32/BootSectImage.exe
BaseTools/Bin/Win32/EfiLdrImage.exe
BaseTools/Bin/Win32/EfiRom.exe
BaseTools/Bin/Win32/Fpd2Dsc.exe
BaseTools/Bin/Win32/GenBootSector.exe
BaseTools/Bin/Win32/GenCrc32.exe
BaseTools/Bin/Win32/GenDepex.exe
BaseTools/Bin/Win32/GenFds.exe
BaseTools/Bin/Win32/GenFfs.exe
BaseTools/Bin/Win32/GenFv.exe
BaseTools/Bin/Win32/GenFw.exe
BaseTools/Bin/Win32/GenPage.exe
BaseTools/Bin/Win32/GenPatchPcdTable.exe
BaseTools/Bin/Win32/GenSec.exe
BaseTools/Bin/Win32/GenVtf.exe
BaseTools/Bin/Win32/LzmaCompress.exe
BaseTools/Bin/Win32/MigrationMsa2Inf.exe
BaseTools/Bin/Win32/PatchPcdValue.exe
BaseTools/Bin/Win32/Spd2Dec.exe
BaseTools/Bin/Win32/Split.exe
BaseTools/Bin/Win32/TargetTool.exe
BaseTools/Bin/Win32/TianoCompress.exe
BaseTools/Bin/Win32/Trim.exe
BaseTools/Bin/Win32/UPT.exe
BaseTools/Bin/Win32/VfrCompile.exe
BaseTools/Bin/Win32/VolInfo.exe
BaseTools/Bin/Win32/build.exe
BaseTools/Conf/tools_def.template
BaseTools/Source/C/Include/Common/BuildVersion.h
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/AutoGen/GenC.py
BaseTools/Source/Python/AutoGen/GenMake.py
BaseTools/Source/Python/Common/BuildVersion.py
BaseTools/Source/Python/Common/DecClassObject.py
BaseTools/Source/Python/Common/DecClassObjectLight.py
BaseTools/Source/Python/Common/DscClassObject.py
BaseTools/Source/Python/Common/InfClassObject.py
BaseTools/Source/Python/Common/InfClassObjectLight.py
BaseTools/Source/Python/Common/String.py
BaseTools/Source/Python/Ecc/Check.py
BaseTools/Source/Python/Eot/Parser.py
BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools/Source/Python/UPT/Library/String.py
BaseTools/Source/Python/UPT/Object/Parser/InfDefineObject.py

index 1628a4f4536593be33f015fc1a5db048718f54f4..b198906dbc04f1c4ab710dcbea9de4ebcef7cde5 100644 (file)
Binary files a/BaseTools/Bin/Win32/BPDG.exe and b/BaseTools/Bin/Win32/BPDG.exe differ
index 096048f812960588aab9d5fe6ad325c150b2e3bd..7c0278dce719b419905b016fa165a24f60425c0c 100755 (executable)
Binary files a/BaseTools/Bin/Win32/BootSectImage.exe and b/BaseTools/Bin/Win32/BootSectImage.exe differ
index 574713ff1ca37c003f21c5e6a8707f6d5715cfc7..a84e8c6be39f83410c37cefacb9c56ca5640eaf0 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiLdrImage.exe and b/BaseTools/Bin/Win32/EfiLdrImage.exe differ
index 1b5831ff2b4a89e5080d2cd12639e4e5d619dac8..8b5ff4b4bfdcc2882ec91e2d0129a31065e752cf 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiRom.exe and b/BaseTools/Bin/Win32/EfiRom.exe differ
index d2d509c7609aa6d695bdc48b88ba488d67b41fa8..fdd78439c706c5c6090b4812a4fa9e855ad0cdcf 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Fpd2Dsc.exe and b/BaseTools/Bin/Win32/Fpd2Dsc.exe differ
index 2ed07e3964c3c7adc01fbcbfffcdf4f23f5c86cf..7b640e928368e17f67e210b2c86fed2a18fe2dca 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenBootSector.exe and b/BaseTools/Bin/Win32/GenBootSector.exe differ
index f76616f1d8a7804471c13edbaa28744bb7b9f6fa..ee7237ad1e796044532949e67b6b33fa55738d27 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenCrc32.exe and b/BaseTools/Bin/Win32/GenCrc32.exe differ
index 4ffd690528221a099e4411c204655578a09bfbda..1143ee73550570c3e72ed8435a70697c1aac50d9 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenDepex.exe and b/BaseTools/Bin/Win32/GenDepex.exe differ
index d32f23963e2a8bd657e1f88102a4a6b57013791e..c6cdeb90498111d66337b7c4c93417b90cb4b71b 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFds.exe and b/BaseTools/Bin/Win32/GenFds.exe differ
index fe7f993d44c01906c7f82fa8b38f8cdcfb1977dc..21294a6d57e6e31f6faac44d25633981c2e14653 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFfs.exe and b/BaseTools/Bin/Win32/GenFfs.exe differ
index abf5cbd2238a4119130d6587ecb2b2a15bb41899..a362959994b26101e71ad924b256dbfb791227f1 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFv.exe and b/BaseTools/Bin/Win32/GenFv.exe differ
index 4c0fb41170746b5d7f675a62ccca7cd293ee91d8..5295d76d9c2664ed999e6755c6c7e766d923b41c 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFw.exe and b/BaseTools/Bin/Win32/GenFw.exe differ
index 639b88ad21c1a59279a9e17b5b61ed3a213117a3..24ba6770ac0e0ea169d235c59ae48b15f0db58af 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPage.exe and b/BaseTools/Bin/Win32/GenPage.exe differ
index 01824c531e36ff53252cea2fe10323424422462d..82f6f56b243f4d2a40713be38466db80f4eaa222 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPatchPcdTable.exe and b/BaseTools/Bin/Win32/GenPatchPcdTable.exe differ
index 035dcc6ae58827f7c5592d27fe8be64ddce0326b..9bc9a68451cf43f83af53eb0d7e199d86e6637e3 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenSec.exe and b/BaseTools/Bin/Win32/GenSec.exe differ
index ea7ccf135068c55a500125e9ed31c5bd83e0036f..5cf1a0a5d78026e7f092c0e9fb6c040020841267 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenVtf.exe and b/BaseTools/Bin/Win32/GenVtf.exe differ
index 506ecb19afba5534c5894d4fb9ac1c5c2c9e3e91..fc9db77b8edc3c9b15f2e8c4daa5b8e69c7bea19 100755 (executable)
Binary files a/BaseTools/Bin/Win32/LzmaCompress.exe and b/BaseTools/Bin/Win32/LzmaCompress.exe differ
index 65ecae11ebd5ae37fdc4e7e8ba294a250d7a7e3c..78864940bb8602c8efbc7c0ff49a84d2f5721954 100755 (executable)
Binary files a/BaseTools/Bin/Win32/MigrationMsa2Inf.exe and b/BaseTools/Bin/Win32/MigrationMsa2Inf.exe differ
index ed1a92e77464d8915e79b5b3785eebd89aee386a..2cbd95fc63129abadcdf9ce2ab932346184acee5 100755 (executable)
Binary files a/BaseTools/Bin/Win32/PatchPcdValue.exe and b/BaseTools/Bin/Win32/PatchPcdValue.exe differ
index 31b0aae270d192952915454bb8ea2040b218cc35..59b28174c6372cb78c5a1483667a8ce02860d1a6 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Spd2Dec.exe and b/BaseTools/Bin/Win32/Spd2Dec.exe differ
index 9ef3e122818d3717ab0d92350b4fb75f8f8dfc51..8bd2ebc48a5925ccd797268ef473585c685d9e75 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Split.exe and b/BaseTools/Bin/Win32/Split.exe differ
index 36b1c3e8d26f6359392ffe88d292fe308e17c6fd..776feb588114e118a9a4b0f5a477d88df641605d 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TargetTool.exe and b/BaseTools/Bin/Win32/TargetTool.exe differ
index 020ed1e50a3085b1d0f3a2eb4a1ffdd4fb9cf807..66b559b58de37fed72069e9657b11b25ff01edd4 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TianoCompress.exe and b/BaseTools/Bin/Win32/TianoCompress.exe differ
index 8684aa46b80a68bb943e4f191b200bb45c98bb6d..36e1e7ac614ea72c0558505f10d9490d0841c709 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Trim.exe and b/BaseTools/Bin/Win32/Trim.exe differ
index ad67a6a8ccd7e77772b7cff1caa3bfa741a69ed8..da4da6f8e13a6cf67074a0f3086d8a62420fae83 100644 (file)
Binary files a/BaseTools/Bin/Win32/UPT.exe and b/BaseTools/Bin/Win32/UPT.exe differ
index 5647e50a4d348dd8e95db6e8333be088cf9b1a96..a5c25b554ba937ef480eaab0fd61ad01d06f569e 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VfrCompile.exe and b/BaseTools/Bin/Win32/VfrCompile.exe differ
index ef33d1e1d90b1240084a1becc0f8e40e8054eea0..4dc1693ff35bb3d8586fcce065f3003c552dfce5 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VolInfo.exe and b/BaseTools/Bin/Win32/VolInfo.exe differ
index 16404a22521a6baad48c6e785b7482a662e28978..88069448c4d8a4e63065ffad523a2fabd8c9df87 100755 (executable)
Binary files a/BaseTools/Bin/Win32/build.exe and b/BaseTools/Bin/Win32/build.exe differ
index f1176d62146994e8b94328d2e9a3482fc1bdf8d3..5b9cff464e13145304080c2f2919304f7e75253e 100644 (file)
@@ -482,7 +482,7 @@ DEFINE CLANG_BIN = /usr/bin/
 # *_*_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
 # *_*_EBC_PP_FLAGS                   = /nologo /E /TC /FI$(DEST_DIR_DEBUG)/AutoGen.h\r
 # *_*_EBC_CC_FLAGS                   = /nologo /FAcs /c /W3 /WX /FI$(DEST_DIR_DEBUG)/AutoGen.h\r
-# *_*_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /MACHINE:EBC /OPT:REF /NODEFAULTLIB /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER\r
+# *_*_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /MACHINE:EBC /OPT:REF /NODEFAULTLIB /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /ALIGN:32 /DRIVER\r
 #\r
 ####################################################################################\r
 #\r
@@ -578,7 +578,7 @@ NOOPT_VS2003_IA32_DLINK_FLAGS       = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2003_EBC_CC_FLAGS               = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_VS2003_EBC_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_VS2003_EBC_SLINK_FLAGS            = /lib /NOLOGO /MACHINE:EBC\r
-*_VS2003_EBC_DLINK_FLAGS            = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_VS2003_EBC_DLINK_FLAGS            = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -652,7 +652,7 @@ NOOPT_VS2003xASL_IA32_DLINK_FLAGS       = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OP
 *_VS2003xASL_EBC_CC_FLAGS               = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_VS2003xASL_EBC_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_VS2003xASL_EBC_SLINK_FLAGS            = /lib /NOLOGO /MACHINE:EBC\r
-*_VS2003xASL_EBC_DLINK_FLAGS            = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_VS2003xASL_EBC_DLINK_FLAGS            = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -789,7 +789,7 @@ NOOPT_VS2005_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 *_VS2005_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_VS2005_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_VS2005_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
-*_VS2005_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_VS2005_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -926,7 +926,7 @@ NOOPT_VS2005xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,
 *_VS2005xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_VS2005xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_VS2005xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
-*_VS2005xASL_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_VS2005xASL_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -1063,7 +1063,7 @@ NOOPT_VS2005x86_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I
 *_VS2005x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_VS2005x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_VS2005x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
-*_VS2005x86_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_VS2005x86_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -1200,7 +1200,7 @@ NOOPT_VS2005x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 *_VS2005x86xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_VS2005x86xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_VS2005x86xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
-*_VS2005x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_VS2005x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 \r
@@ -1339,7 +1339,7 @@ NOOPT_VS2008_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 *_VS2008_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_VS2008_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_VS2008_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
-*_VS2008_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_VS2008_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -1476,7 +1476,7 @@ NOOPT_VS2008xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,
 *_VS2008xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_VS2008xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_VS2008xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
-*_VS2008xASL_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_VS2008xASL_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
@@ -1833,7 +1833,7 @@ NOOPT_DDK3790_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 \r
 *_DDK3790_EBC_CC_FLAGS           = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_DDK3790_EBC_SLINK_FLAGS        = /lib /NOLOGO /MACHINE:EBC\r
-*_DDK3790_EBC_DLINK_FLAGS        = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER\r
+*_DDK3790_EBC_DLINK_FLAGS        = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -1958,7 +1958,7 @@ NOOPT_DDK3790xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF
 \r
 *_DDK3790xASL_EBC_CC_FLAGS           = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_DDK3790xASL_EBC_SLINK_FLAGS        = /lib /NOLOGO /MACHINE:EBC\r
-*_DDK3790xASL_EBC_DLINK_FLAGS        = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER\r
+*_DDK3790xASL_EBC_DLINK_FLAGS        = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
@@ -2330,7 +2330,7 @@ DEFINE GCC45_ASM_FLAGS               = DEF(GCC44_ASM_FLAGS)
 \r
 *_CYGGCC_EBC_CC_FLAGS           = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_CYGGCC_EBC_SLINK_FLAGS        = /lib /NOLOGO /MACHINE:EBC\r
-*_CYGGCC_EBC_DLINK_FLAGS        = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER\r
+*_CYGGCC_EBC_DLINK_FLAGS        = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -2433,7 +2433,7 @@ DEFINE GCC45_ASM_FLAGS               = DEF(GCC44_ASM_FLAGS)
 \r
 *_CYGGCCxASL_EBC_CC_FLAGS           = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_CYGGCCxASL_EBC_SLINK_FLAGS        = /lib /NOLOGO /MACHINE:EBC\r
-*_CYGGCCxASL_EBC_DLINK_FLAGS        = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER\r
+*_CYGGCCxASL_EBC_DLINK_FLAGS        = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -2669,7 +2669,7 @@ NOOPT_ICC_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 *_ICC_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_ICC_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICC_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_ICC_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_ICC_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -2813,7 +2813,7 @@ NOOPT_ICCxASL_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 *_ICCxASL_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_ICCxASL_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICCxASL_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_ICCxASL_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_ICCxASL_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
@@ -2958,7 +2958,7 @@ NOOPT_ICCx86_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL /
 *_ICCx86_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_ICCx86_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICCx86_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_ICCx86_EBC_DLINK_FLAGS                = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_ICCx86_EBC_DLINK_FLAGS                = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
@@ -3103,7 +3103,7 @@ NOOPT_ICCx86xASL_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /D
 *_ICCx86xASL_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_ICCx86xASL_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICCx86xASL_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_ICCx86xASL_EBC_DLINK_FLAGS                = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_ICCx86xASL_EBC_DLINK_FLAGS                = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
@@ -3246,7 +3246,7 @@ NOOPT_ICC11_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL /O
 *_ICC11_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_ICC11_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICC11_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_ICC11_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_ICC11_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 ####################################################################################\r
 #\r
@@ -3390,7 +3390,7 @@ NOOPT_ICC11xASL_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DL
 *_ICC11xASL_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_ICC11xASL_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICC11xASL_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_ICC11xASL_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_ICC11xASL_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
@@ -3532,7 +3532,7 @@ NOOPT_ICC11x86_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 *_ICC11x86_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_ICC11x86_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICC11x86_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_ICC11x86_EBC_DLINK_FLAGS                = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_ICC11x86_EBC_DLINK_FLAGS                = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
@@ -3674,7 +3674,7 @@ NOOPT_ICC11x86xASL_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG
 *_ICC11x86xASL_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_ICC11x86xASL_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICC11x86xASL_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_ICC11x86xASL_EBC_DLINK_FLAGS                = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_ICC11x86xASL_EBC_DLINK_FLAGS                = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
@@ -3810,7 +3810,7 @@ NOOPT_MYTOOLS_IPF_DLINK_FLAGS            = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 *_MYTOOLS_EBC_CC_FLAGS                   = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
 *_MYTOOLS_EBC_VFRPP_FLAGS                = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_MYTOOLS_EBC_SLINK_FLAGS                = /lib /NOLOGO /MACHINE:EBC\r
-*_MYTOOLS_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
+*_MYTOOLS_EBC_DLINK_FLAGS                = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
 ####################################################################################\r
index 66197802392072e62e2b02c83d9a21f6164f3db1..f19e9007d9d9a2c86b120f30c433aa097a80d22c 100644 (file)
@@ -1,3 +1,3 @@
 //This file is for build version number auto generation\r
 //\r
-#define __BUILD_VERSION "Build 2386"\r
+#define __BUILD_VERSION "Build 2396"\r
index 2def474b17997bbd00b73ff1ee797267579d3ffc..700b689a54fbda3f57c14a32498eecd4c4defd7f 100644 (file)
@@ -2184,13 +2184,19 @@ class ModuleAutoGen(AutoGen):
     def _GetBuildOptionIncPathList(self):\r
         if self._BuildOptionIncPathList == None:\r
             #\r
-            # Regular expression for finding Include Directories, the difference between MSFT and INTEL/GCC\r
+            # Regular expression for finding Include Directories, the difference between MSFT and INTEL/GCC/RVCT\r
             # is the former use /I , the Latter used -I to specify include directories\r
             #\r
             if self.PlatformInfo.ToolChainFamily in ('MSFT'):\r
                 gBuildOptIncludePattern = re.compile(r"(?:.*?)/I[ \t]*([^ ]*)", re.MULTILINE|re.DOTALL)\r
-            elif self.PlatformInfo.ToolChainFamily in ('INTEL', 'GCC'):\r
+            elif self.PlatformInfo.ToolChainFamily in ('INTEL', 'GCC', 'RVCT'):\r
                 gBuildOptIncludePattern = re.compile(r"(?:.*?)-I[ \t]*([^ ]*)", re.MULTILINE|re.DOTALL)\r
+            else:\r
+                #\r
+                # New ToolChainFamily, don't known whether there is option to specify include directories\r
+                #\r
+                self._BuildOptionIncPathList = []\r
+                return self._BuildOptionIncPathList\r
             \r
             BuildOptionIncPathList = []\r
             for Tool in ('CC', 'PP', 'VFRPP', 'ASLPP', 'ASLCC', 'APP', 'ASM'):\r
@@ -2200,7 +2206,17 @@ class ModuleAutoGen(AutoGen):
                 except KeyError:\r
                     FlagOption = ''\r
                 \r
-                IncPathList = [NormPath(Path, self.Macros) for Path in gBuildOptIncludePattern.findall(FlagOption)]\r
+                if self.PlatformInfo.ToolChainFamily != 'RVCT':\r
+                    IncPathList = [NormPath(Path, self.Macros) for Path in gBuildOptIncludePattern.findall(FlagOption)]\r
+                else:\r
+                    #\r
+                    # RVCT may specify a list of directory seperated by commas\r
+                    #\r
+                    IncPathList = []\r
+                    for Path in gBuildOptIncludePattern.findall(FlagOption):\r
+                        PathList = GetSplitList(Path, TAB_COMMA_SPLIT)\r
+                        IncPathList += [NormPath(PathEntry, self.Macros) for PathEntry in PathList]\r
+\r
                 #\r
                 # EDK II modules must not reference header files outside of the packages they depend on or \r
                 # within the module's directory tree. Report error if violation.\r
index c6b65f49245f46b0b1e611a660cbb8793352b0db..561114d14173e5a1162b402097b6e1f548e26bdf 100644 (file)
@@ -310,9 +310,18 @@ gAutoGenHPrologueString = TemplateString("""
 #ifndef _${File}_${Guid}
 #define _${File}_${Guid}
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 """)
 
 gAutoGenHEpilogueString = """
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif
 """
 
@@ -917,7 +926,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                             "No generated token number for %s.%s\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
                             ExtraData="[%s]" % str(Info))
         TokenNumber = PcdTokenNumber[Pcd.TokenCName, Pcd.TokenSpaceGuidCName]
-    AutoGenH.Append('\n#define %s  %d\n' % (PcdTokenName, TokenNumber))
+    AutoGenH.Append('\n#define %s  %dU\n' % (PcdTokenName, TokenNumber))
 
     EdkLogger.debug(EdkLogger.DEBUG_3, "Creating code for " + Pcd.TokenCName + "." + Pcd.TokenSpaceGuidCName)
     if Pcd.Type not in gItemTypeStringDatabase:
@@ -960,9 +969,9 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
         if Pcd.DatumType == 'BOOLEAN':
             BoolValue = Value.upper()
             if BoolValue == 'TRUE':
-                Value = 1
+                Value = '1U'
             elif BoolValue == 'FALSE':
-                Value = 0
+                Value = '0U'
 
         if Pcd.DatumType in ['UINT64', 'UINT32', 'UINT16', 'UINT8']:
             try:
@@ -994,6 +1003,8 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                     EdkLogger.error("build", AUTOGEN_ERROR,
                                     "Too large PCD value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
                                     ExtraData="[%s]" % str(Info))
+                if not Value.endswith('U'):
+                    Value += 'U'
             elif Pcd.DatumType == 'UINT16':
                 if ValueNumber < 0:
                     EdkLogger.error("build", AUTOGEN_ERROR,
@@ -1003,6 +1014,8 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                     EdkLogger.error("build", AUTOGEN_ERROR,
                                     "Too large PCD value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
                                     ExtraData="[%s]" % str(Info))
+                if not Value.endswith('U'):
+                    Value += 'U'                    
             elif Pcd.DatumType == 'UINT8':
                 if ValueNumber < 0:
                     EdkLogger.error("build", AUTOGEN_ERROR,
@@ -1012,6 +1025,8 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                     EdkLogger.error("build", AUTOGEN_ERROR,
                                     "Too large PCD value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
                                     ExtraData="[%s]" % str(Info))
+                if not Value.endswith('U'):
+                    Value += 'U'
         if Pcd.DatumType == 'VOID*':
             if Pcd.MaxDatumSize == None or Pcd.MaxDatumSize == '':
                 EdkLogger.error("build", AUTOGEN_ERROR,
@@ -1131,7 +1146,7 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
         Type = '(VOID *)'
         Array = '[]'
 
-    AutoGenH.Append('#define _PCD_TOKEN_%s  %d\n' % (TokenCName, TokenNumber))
+    AutoGenH.Append('#define _PCD_TOKEN_%s  %dU\n' % (TokenCName, TokenNumber))
 
     PcdItemType = Pcd.Type
     #if PcdItemType in gDynamicPcd:
@@ -1405,6 +1420,8 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, Phase):
                 #
                 if Pcd.DatumType == "UINT64":
                     ValueList.append(Sku.DefaultValue + "ULL")
+                elif Pcd.DatumType in ("UINT32", "UINT16", "UINT8"):
+                    ValueList.append(Sku.DefaultValue + "U")
                 else:
                     ValueList.append(Sku.DefaultValue)
 
index 478ab0f01b99d472f04e616dfc349eca7f99b143..b34977d7a93494254703ad567dad12607d775313 100644 (file)
@@ -1312,17 +1312,16 @@ ${END}\t@cd $(BUILD_DIR)\n
         if PlatformInfo.FdfFile != None and PlatformInfo.FdfFile != "":
             FdfFileList = [PlatformInfo.FdfFile]
             # macros passed to GenFds
-            # MacroList.append('"%s=%s"' % ("WORKSPACE", GlobalData.gWorkspace))
-            MacroList.append('"%s=%s"' % ("EFI_SOURCE", GlobalData.gEfiSource))
-            MacroList.append('"%s=%s"' % ("EDK_SOURCE", GlobalData.gEdkSource))
+            MacroList.append('"%s=%s"' % ("EFI_SOURCE", GlobalData.gEfiSource.replace('\\', '\\\\')))
+            MacroList.append('"%s=%s"' % ("EDK_SOURCE", GlobalData.gEdkSource.replace('\\', '\\\\')))
             for MacroName in GlobalData.gGlobalDefines:
                 if GlobalData.gGlobalDefines[MacroName] != "":
-                    MacroList.append('"%s=%s"' % (MacroName, GlobalData.gGlobalDefines[MacroName]))
+                    MacroList.append('"%s=%s"' % (MacroName, GlobalData.gGlobalDefines[MacroName].replace('\\', '\\\\')))
                 else:
                     MacroList.append('"%s"' % MacroName)
             for MacroName in GlobalData.gCommandLineDefines:
                 if GlobalData.gCommandLineDefines[MacroName] != "":
-                    MacroList.append('"%s=%s"' % (MacroName, GlobalData.gCommandLineDefines[MacroName]))
+                    MacroList.append('"%s=%s"' % (MacroName, GlobalData.gCommandLineDefines[MacroName].replace('\\', '\\\\')))
                 else:
                     MacroList.append('"%s"' % MacroName)                
         else:
index 82597c094563dd9be8499e14e20cabe2d081350a..97c1094205deed05f3d592f04a81545dafc9c352 100644 (file)
@@ -1,3 +1,3 @@
 #This file is for build version number auto generation\r
 #\r
-gBUILD_VERSION = "Build 2386"\r
+gBUILD_VERSION = "Build 2396"\r
index 18816806f2a4dd8c11ba17d925160139ef0ffac1..5b39bcd4cee8fa7058a0bad2b65ae5258e9654b6 100644 (file)
@@ -82,14 +82,14 @@ class DecObject(object):
 # @var KeyList:             To store value for KeyList, a list for all Keys used in Dec\r
 #\r
 class Dec(DecObject):\r
-    def __init__(self, Filename = None, IsToDatabase = False, IsToPackage = False, WorkspaceDir = None, Database = None, SupArchList = DataType.ARCH_LIST):\r
+    def __init__(self, Filename=None, IsToDatabase=False, IsToPackage=False, WorkspaceDir=None, Database=None, SupArchList=DataType.ARCH_LIST):\r
         self.Identification = Identification()\r
         self.Package = PackageClass()\r
         self.UserExtensions = ''\r
         self.WorkspaceDir = WorkspaceDir\r
         self.SupArchList = SupArchList\r
         self.IsToDatabase = IsToDatabase\r
-        \r
+\r
         self.Cur = Database.Cur\r
         self.TblFile = Database.TblFile\r
         self.TblDec = Database.TblDec\r
@@ -104,26 +104,26 @@ class Dec(DecObject):
         # Upper all KEYs to ignore case sensitive when parsing\r
         #\r
         self.KeyList = map(lambda c: c.upper(), self.KeyList)\r
-        \r
+\r
         #\r
         # Init RecordSet\r
         #\r
-        self.RecordSet = {}        \r
+        self.RecordSet = {}\r
         for Key in self.KeyList:\r
             self.RecordSet[Section[Key]] = []\r
-        \r
+\r
         #\r
         # Load Dec file if filename is not None\r
         #\r
         if Filename != None:\r
             self.LoadDecFile(Filename)\r
-        \r
+\r
         #\r
         # Transfer to Package Object if IsToPackage is True\r
         #\r
         if IsToPackage:\r
             self.DecToPackage()\r
-    \r
+\r
     ## Load Dec file\r
     #\r
     # Load the file if it exists\r
@@ -138,20 +138,20 @@ class Dec(DecObject):
         self.Identification.FileFullPath = Filename\r
         (self.Identification.FileRelativePath, self.Identification.FileName) = os.path.split(Filename)\r
         self.FileID = self.TblFile.InsertFile(Filename, MODEL_FILE_DEC)\r
-        \r
+\r
         #\r
         # Init DecTable\r
         #\r
         #self.TblDec.Table = "Dec%s" % self.FileID\r
         #self.TblDec.Create()\r
-        \r
+\r
         #\r
         # Init common datas\r
         #\r
         IfDefList, SectionItemList, CurrentSection, ArchList, ThirdList, IncludeFiles = \\r
         [], [], TAB_UNKNOWN, [], [], []\r
         LineNo = 0\r
-        \r
+\r
         #\r
         # Parse file content\r
         #\r
@@ -163,10 +163,10 @@ class Dec(DecObject):
             # Remove comment block\r
             #\r
             if Line.find(TAB_COMMENT_EDK_START) > -1:\r
-                ReservedLine = GetSplitValueList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
+                ReservedLine = GetSplitList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
                 IsFindBlockComment = True\r
             if Line.find(TAB_COMMENT_EDK_END) > -1:\r
-                Line = ReservedLine + GetSplitValueList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
+                Line = ReservedLine + GetSplitList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
                 ReservedLine = ''\r
                 IsFindBlockComment = False\r
             if IsFindBlockComment:\r
@@ -178,7 +178,7 @@ class Dec(DecObject):
             Line = CleanString(Line)\r
             if Line == '':\r
                 continue\r
-            \r
+\r
             #\r
             # Find a new section tab\r
             # First insert previous section items\r
@@ -197,7 +197,7 @@ class Dec(DecObject):
                 SectionItemList = []\r
                 ArchList = []\r
                 ThirdList = []\r
-                \r
+\r
                 CurrentSection = ''\r
                 LineList = GetSplitValueList(Line[len(TAB_SECTION_START):len(Line) - len(TAB_SECTION_END)], TAB_COMMA_SPLIT)\r
                 for Item in LineList:\r
@@ -206,7 +206,7 @@ class Dec(DecObject):
                         CurrentSection = ItemList[0]\r
                     else:\r
                         if CurrentSection != ItemList[0]:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                     if CurrentSection.upper() not in self.KeyList:\r
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     ItemList.append('')\r
@@ -215,18 +215,18 @@ class Dec(DecObject):
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     else:\r
                         if ItemList[1] != '' and ItemList[1].upper() not in ARCH_LIST_FULL:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                         ArchList.append(ItemList[1].upper())\r
                         ThirdList.append(ItemList[2])\r
 \r
                 continue\r
-            \r
+\r
             #\r
             # Not in any defined section\r
             #\r
             if CurrentSection == TAB_UNKNOWN:\r
                 ErrorMsg = "%s is not in any defined section" % Line\r
-                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
 \r
             #\r
             # Add a section item\r
@@ -234,13 +234,13 @@ class Dec(DecObject):
             SectionItemList.append([Line, LineNo])\r
             # End of parse\r
         #End of For\r
-        \r
+\r
         #\r
         # Insert items data of last section\r
         #\r
         Model = Section[CurrentSection.upper()]\r
         InsertSectionItemsIntoDatabase(self.TblDec, self.FileID, Filename, Model, CurrentSection, SectionItemList, ArchList, ThirdList, IfDefList, self.RecordSet)\r
-        \r
+\r
         #\r
         # Replace all DEFINE macros with its actual values\r
         #\r
@@ -255,12 +255,12 @@ class Dec(DecObject):
         # Init global information for the file\r
         #\r
         ContainerFile = self.Identification.FileFullPath\r
-        \r
+\r
         #\r
         # Generate Package Header\r
         #\r
         self.GenPackageHeader(ContainerFile)\r
-        \r
+\r
         #\r
         # Generate Includes\r
         #\r
@@ -280,17 +280,17 @@ class Dec(DecObject):
         # Generate Ppis\r
         #\r
         self.GenGuidProtocolPpis(DataType.TAB_PPIS, ContainerFile)\r
-        \r
+\r
         #\r
         # Generate LibraryClasses\r
         #\r
         self.GenLibraryClasses(ContainerFile)\r
-        \r
+\r
         #\r
         # Generate Pcds\r
         #\r
         self.GenPcds(ContainerFile)\r
-    \r
+\r
     ## Get Package Header\r
     #\r
     # Gen Package Header of Dec as <Key> = <Value>\r
@@ -311,22 +311,22 @@ class Dec(DecObject):
             SqlCommand = """update %s set Value1 = '%s', Value2 = '%s'\r
                             where ID = %s""" % (self.TblDec.Table, ConvertToSqlString2(Value1), ConvertToSqlString2(Value2), ID)\r
             self.TblDec.Exec(SqlCommand)\r
-        \r
+\r
         #\r
         # Get detailed information\r
         #\r
         for Arch in self.SupArchList:\r
             PackageHeader = PackageHeaderClass()\r
-            \r
+\r
             PackageHeader.Name = QueryDefinesItem(self.TblDec, TAB_DEC_DEFINES_PACKAGE_NAME, Arch, self.FileID)[0]\r
             PackageHeader.Guid = QueryDefinesItem(self.TblDec, TAB_DEC_DEFINES_PACKAGE_GUID, Arch, self.FileID)[0]\r
             PackageHeader.Version = QueryDefinesItem(self.TblDec, TAB_DEC_DEFINES_PACKAGE_VERSION, Arch, self.FileID)[0]\r
             PackageHeader.FileName = self.Identification.FileName\r
             PackageHeader.FullPath = self.Identification.FileFullPath\r
             PackageHeader.DecSpecification = QueryDefinesItem(self.TblDec, TAB_DEC_DEFINES_DEC_SPECIFICATION, Arch, self.FileID)[0]\r
-            \r
+\r
             self.Package.Header[Arch] = PackageHeader\r
-    \r
+\r
     ## GenIncludes\r
     #\r
     # Gen Includes of Dec\r
@@ -341,7 +341,7 @@ class Dec(DecObject):
         # Get all Includes\r
         #\r
         RecordSet = self.RecordSet[MODEL_EFI_INCLUDE]\r
-        \r
+\r
         #\r
         # Go through each arch\r
         #\r
@@ -355,7 +355,7 @@ class Dec(DecObject):
             Include.FilePath = NormPath(Key)\r
             Include.SupArchList = Includes[Key]\r
             self.Package.Includes.append(Include)\r
-    \r
+\r
     ## GenPpis\r
     #\r
     # Gen Ppis of Dec\r
@@ -370,7 +370,7 @@ class Dec(DecObject):
         # Get all Items\r
         #\r
         RecordSet = self.RecordSet[Section[Type.upper()]]\r
-        \r
+\r
         #\r
         # Go through each arch\r
         #\r
@@ -383,7 +383,7 @@ class Dec(DecObject):
                         SqlCommand = """update %s set Value1 = '%s', Value2 = '%s'\r
                                         where ID = %s""" % (self.TblDec.Table, ConvertToSqlString2(Name), ConvertToSqlString2(Value), Record[3])\r
                         self.TblDec.Exec(SqlCommand)\r
-        \r
+\r
         ListMember = None\r
         if Type == TAB_GUIDS:\r
             ListMember = self.Package.GuidDeclarations\r
@@ -391,15 +391,15 @@ class Dec(DecObject):
             ListMember = self.Package.ProtocolDeclarations\r
         elif Type == TAB_PPIS:\r
             ListMember = self.Package.PpiDeclarations\r
-        \r
+\r
         for Key in Lists.keys():\r
             ListClass = GuidProtocolPpiCommonClass()\r
             ListClass.CName = Key[0]\r
             ListClass.Guid = Key[1]\r
             ListClass.SupArchList = Lists[Key]\r
             ListMember.append(ListClass)\r
-            \r
-    \r
+\r
+\r
     ## GenLibraryClasses\r
     #\r
     # Gen LibraryClasses of Dec\r
@@ -414,7 +414,7 @@ class Dec(DecObject):
         # Get all Guids\r
         #\r
         RecordSet = self.RecordSet[MODEL_EFI_LIBRARY_CLASS]\r
-        \r
+\r
         #\r
         # Go through each arch\r
         #\r
@@ -432,7 +432,7 @@ class Dec(DecObject):
                                         where ID = %s""" % (self.TblDec.Table, ConvertToSqlString2(List[0]), ConvertToSqlString2(List[1]), SUP_MODULE_LIST_STRING, Record[3])\r
                         self.TblDec.Exec(SqlCommand)\r
 \r
-        \r
+\r
         for Key in LibraryClasses.keys():\r
             LibraryClass = LibraryClassClass()\r
             LibraryClass.LibraryClass = Key[0]\r
@@ -440,7 +440,7 @@ class Dec(DecObject):
             LibraryClass.SupModuleList = SUP_MODULE_LIST\r
             LibraryClass.SupArchList = LibraryClasses[Key]\r
             self.Package.LibraryClassDeclarations.append(LibraryClass)\r
-    \r
+\r
     ## GenPcds\r
     #\r
     # Gen Pcds of Dec\r
@@ -460,7 +460,7 @@ class Dec(DecObject):
         RecordSet3 = self.RecordSet[MODEL_PCD_FEATURE_FLAG]\r
         RecordSet4 = self.RecordSet[MODEL_PCD_DYNAMIC_EX]\r
         RecordSet5 = self.RecordSet[MODEL_PCD_DYNAMIC]\r
-        \r
+\r
         #\r
         # Go through each arch\r
         #\r
@@ -508,7 +508,7 @@ class Dec(DecObject):
             Pcd.ItemType = Key[5]\r
             Pcd.SupArchList = Pcds[Key]\r
             self.Package.PcdDeclarations.append(Pcd)\r
-    \r
+\r
     ## Show detailed information of Package\r
     #\r
     # Print all members and their values of Package class\r
@@ -550,14 +550,14 @@ class Dec(DecObject):
 if __name__ == '__main__':\r
     EdkLogger.Initialize()\r
     EdkLogger.SetLevel(EdkLogger.DEBUG_0)\r
-    \r
+\r
     W = os.getenv('WORKSPACE')\r
     F = os.path.join(W, 'Nt32Pkg/Nt32Pkg.dec')\r
 \r
     Db = Database.Database('Dec.db')\r
     Db.InitDatabase()\r
-    \r
+\r
     P = Dec(os.path.normpath(F), True, True, W, Db)\r
     P.ShowPackage()\r
-    \r
+\r
     Db.Close()\r
index cba88b64f22e431721e60a756fc71a43387e7784..7fb41a23590246bc439643a2b3d746d9d2d42815 100644 (file)
@@ -75,7 +75,7 @@ class DecObject(object):
 # @var KeyList:             To store value for KeyList, a list for all Keys used in Dec\r
 #\r
 class Dec(DecObject):\r
-    def __init__(self, Filename = None, IsToPackage = False, WorkspaceDir = None, AllGuidVersionDict = None, SupArchList = DataType.ARCH_LIST):\r
+    def __init__(self, Filename=None, IsToPackage=False, WorkspaceDir=None, AllGuidVersionDict=None, SupArchList=DataType.ARCH_LIST):\r
         self.Identification = IdentificationClass()\r
         self.Package = PackageClass()\r
         self.UserExtensions = ''\r
@@ -92,23 +92,23 @@ class Dec(DecObject):
         ]\r
         # Upper all KEYs to ignore case sensitive when parsing\r
         self.KeyList = map(lambda c: c.upper(), self.KeyList)\r
-        \r
+\r
         # Init RecordSet\r
-        self.RecordSet = {}        \r
+        self.RecordSet = {}\r
         for Key in self.KeyList:\r
             self.RecordSet[Section[Key]] = []\r
-        \r
+\r
         # Init Comment\r
         self.SectionHeaderCommentDict = {}\r
-        \r
+\r
         # Load Dec file if filename is not None\r
         if Filename != None:\r
             self.LoadDecFile(Filename)\r
-        \r
+\r
         # Transfer to Package Object if IsToPackage is True\r
         if IsToPackage:\r
             self.DecToPackage()\r
-    \r
+\r
     ## Load Dec file\r
     #\r
     # Load the file if it exists\r
@@ -121,13 +121,13 @@ class Dec(DecObject):
         self.Identification.FullPath = Filename\r
         (self.Identification.RelaPath, self.Identification.FileName) = os.path.split(Filename)\r
         if self.Identification.FullPath.find(self.WorkspaceDir) > -1:\r
-            self.Identification.PackagePath = os.path.dirname(self.Identification.FullPath[len(self.WorkspaceDir) + 1:])        \r
-       \r
+            self.Identification.PackagePath = os.path.dirname(self.Identification.FullPath[len(self.WorkspaceDir) + 1:])\r
+\r
         # Init common datas\r
         IfDefList, SectionItemList, CurrentSection, ArchList, ThirdList, IncludeFiles = \\r
         [], [], TAB_UNKNOWN, [], [], []\r
         LineNo = 0\r
-        \r
+\r
         # Parse file content\r
         IsFindBlockComment = False\r
         ReservedLine = ''\r
@@ -136,7 +136,7 @@ class Dec(DecObject):
             LineNo = LineNo + 1\r
             # Remove comment block\r
             if Line.find(TAB_COMMENT_EDK_START) > -1:\r
-                ReservedLine = GetSplitValueList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
+                ReservedLine = GetSplitList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
                 if ReservedLine.strip().startswith(TAB_COMMENT_SPLIT):\r
                     Comment = Comment + Line.strip() + '\n'\r
                     ReservedLine = ''\r
@@ -147,7 +147,7 @@ class Dec(DecObject):
                     continue\r
             if Line.find(TAB_COMMENT_EDK_END) > -1:\r
                 Comment = Comment + Line[:Line.find(TAB_COMMENT_EDK_END) + len(TAB_COMMENT_EDK_END)] + '\n'\r
-                Line = ReservedLine + GetSplitValueList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
+                Line = ReservedLine + GetSplitList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
                 ReservedLine = ''\r
                 IsFindBlockComment = False\r
             if IsFindBlockComment:\r
@@ -160,7 +160,7 @@ class Dec(DecObject):
             Line = CleanString(Line)\r
             if Line == '':\r
                 continue\r
-            \r
+\r
             ## Find a new section tab\r
             # First insert previous section items\r
             # And then parse the content of the new section\r
@@ -173,7 +173,7 @@ class Dec(DecObject):
                 SectionItemList = []\r
                 ArchList = []\r
                 ThirdList = []\r
-                \r
+\r
                 CurrentSection = ''\r
                 LineList = GetSplitValueList(Line[len(TAB_SECTION_START):len(Line) - len(TAB_SECTION_END)], TAB_COMMA_SPLIT)\r
                 for Item in LineList:\r
@@ -182,7 +182,7 @@ class Dec(DecObject):
                         CurrentSection = ItemList[0]\r
                     else:\r
                         if CurrentSection != ItemList[0]:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                     if CurrentSection.upper() not in self.KeyList:\r
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     ItemList.append('')\r
@@ -191,28 +191,28 @@ class Dec(DecObject):
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     else:\r
                         if ItemList[1] != '' and ItemList[1].upper() not in ARCH_LIST_FULL:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                         ArchList.append(ItemList[1].upper())\r
                         ThirdList.append(ItemList[2])\r
-                \r
+\r
                 if Comment:\r
                     if Comment.endswith('\n'):\r
                         Comment = Comment[:len(Comment) - len('\n')]\r
                     self.SectionHeaderCommentDict[Section[CurrentSection.upper()]] = Comment\r
                     Comment = ''\r
                 continue\r
-            \r
+\r
             # Not in any defined section\r
             if CurrentSection == TAB_UNKNOWN:\r
                 ErrorMsg = "%s is not in any defined section" % Line\r
-                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
 \r
             # Add a section item\r
             SectionItemList.append([Line, LineNo, Comment])\r
             Comment = ''\r
             # End of parse\r
         #End of For\r
-        \r
+\r
         #\r
         # Insert items data of last section\r
         #\r
@@ -229,7 +229,7 @@ class Dec(DecObject):
         SectionHeaderCommentDict = {}\r
         if Package == None:\r
             return Dec\r
-        \r
+\r
         PackageHeader = Package.PackageHeader\r
         TmpList = []\r
         if PackageHeader.Name:\r
@@ -243,30 +243,30 @@ class Dec(DecObject):
         if Package.UserExtensions != None:\r
             for Item in Package.UserExtensions.Defines:\r
                 TmpList.append(Item)\r
-        DecList['Defines'] =TmpList\r
+        DecList['Defines'] = TmpList\r
         if PackageHeader.Description != '':\r
             SectionHeaderCommentDict['Defines'] = PackageHeader.Description\r
-        \r
+\r
         for Item in Package.Includes:\r
             Key = 'Includes.' + Item.SupArchList\r
             Value = Item.FilePath\r
             GenMetaDatSectionItem(Key, Value, DecList)\r
-        \r
+\r
         for Item in Package.GuidDeclarations:\r
             Key = 'Guids.' + Item.SupArchList\r
             Value = Item.CName + '=' + Item.Guid\r
             GenMetaDatSectionItem(Key, Value, DecList)\r
-        \r
+\r
         for Item in Package.ProtocolDeclarations:\r
             Key = 'Protocols.' + Item.SupArchList\r
             Value = Item.CName + '=' + Item.Guid\r
             GenMetaDatSectionItem(Key, Value, DecList)\r
-        \r
+\r
         for Item in Package.PpiDeclarations:\r
             Key = 'Ppis.' + Item.SupArchList\r
             Value = Item.CName + '=' + Item.Guid\r
             GenMetaDatSectionItem(Key, Value, DecList)\r
-        \r
+\r
         for Item in Package.LibraryClassDeclarations:\r
             Key = 'LibraryClasses.' + Item.SupArchList\r
             Value = Item.LibraryClass + '|' + Item.RecommendedInstance\r
@@ -297,7 +297,7 @@ class Dec(DecObject):
                 else:\r
                     Dec = Dec + '  ' + Value + '\n'\r
             Dec = Dec + '\n'\r
-        \r
+\r
         return Dec\r
 \r
     ## Transfer to Package Object\r
@@ -307,10 +307,10 @@ class Dec(DecObject):
     def DecToPackage(self):\r
         # Init global information for the file\r
         ContainerFile = self.Identification.FullPath\r
-        \r
+\r
         # Generate Package Header\r
         self.GenPackageHeader(ContainerFile)\r
-        \r
+\r
         # Generate Includes\r
         # Only for Edk\r
         self.GenIncludes(ContainerFile)\r
@@ -323,16 +323,16 @@ class Dec(DecObject):
 \r
         # Generate Ppis\r
         self.GenGuidProtocolPpis(DataType.TAB_PPIS, ContainerFile)\r
-        \r
+\r
         # Generate LibraryClasses\r
         self.GenLibraryClasses(ContainerFile)\r
-        \r
+\r
         # Generate Pcds\r
         self.GenPcds(ContainerFile)\r
-        \r
+\r
         # Init MiscFiles\r
         self.GenMiscFiles(ContainerFile)\r
-    \r
+\r
     ## GenMiscFiles\r
     #\r
     def GenMiscFiles(self, ContainerFile):\r
@@ -343,7 +343,7 @@ class Dec(DecObject):
             File.Filename = Item\r
             MiscFiles.Files.append(File)\r
         self.Package.MiscFiles = MiscFiles\r
-    \r
+\r
     ## Get Package Header\r
     #\r
     # Gen Package Header of Dec as <Key> = <Value>\r
@@ -375,23 +375,23 @@ class Dec(DecObject):
                     PackageHeader.DecSpecification = Value\r
                 else:\r
                     OtherDefines.append(Record[0])\r
-            \r
+\r
         PackageHeader.FileName = self.Identification.FileName\r
         PackageHeader.FullPath = self.Identification.FullPath\r
         PackageHeader.RelaPath = self.Identification.RelaPath\r
         PackageHeader.PackagePath = self.Identification.PackagePath\r
         PackageHeader.ModulePath = self.Identification.ModulePath\r
         PackageHeader.CombinePath = os.path.normpath(os.path.join(PackageHeader.PackagePath, PackageHeader.ModulePath, PackageHeader.FileName))\r
-        \r
+\r
         if MODEL_META_DATA_HEADER in self.SectionHeaderCommentDict:\r
             PackageHeader.Description = self.SectionHeaderCommentDict[MODEL_META_DATA_HEADER]\r
-        \r
+\r
         self.Package.PackageHeader = PackageHeader\r
         UE = UserExtensionsClass()\r
         UE.Defines = OtherDefines\r
         self.Package.UserExtensions = UE\r
-        \r
-    \r
+\r
+\r
     ## GenIncludes\r
     #\r
     # Gen Includes of Dec\r
@@ -403,7 +403,7 @@ class Dec(DecObject):
         Includes = {}\r
         # Get all Includes\r
         RecordSet = self.RecordSet[MODEL_EFI_INCLUDE]\r
-        \r
+\r
         # Go through each arch\r
         for Record in RecordSet:\r
             Arch = Record[1]\r
@@ -412,7 +412,7 @@ class Dec(DecObject):
             Include.FilePath = NormPath(Key)\r
             Include.SupArchList = Arch\r
             self.Package.Includes.append(Include)\r
-    \r
+\r
     ## GenPpis\r
     #\r
     # Gen Ppis of Dec\r
@@ -425,12 +425,12 @@ class Dec(DecObject):
         Lists = {}\r
         # Get all Items\r
         RecordSet = self.RecordSet[Section[Type.upper()]]\r
-        \r
+\r
         # Go through each arch\r
         for Record in RecordSet:\r
             Arch = Record[1]\r
             (Name, Value) = GetGuidsProtocolsPpisOfDec(Record[0], Type, ContainerFile, Record[2])\r
-       \r
+\r
             ListMember = None\r
             if Type == TAB_GUIDS:\r
                 ListMember = self.Package.GuidDeclarations\r
@@ -438,13 +438,13 @@ class Dec(DecObject):
                 ListMember = self.Package.ProtocolDeclarations\r
             elif Type == TAB_PPIS:\r
                 ListMember = self.Package.PpiDeclarations\r
-        \r
+\r
             ListClass = GuidProtocolPpiCommonClass()\r
             ListClass.CName = Name\r
             ListClass.Guid = Value\r
             ListClass.SupArchList = Arch\r
             ListMember.append(ListClass)\r
-    \r
+\r
     ## GenLibraryClasses\r
     #\r
     # Gen LibraryClasses of Dec\r
@@ -457,7 +457,7 @@ class Dec(DecObject):
         LibraryClasses = {}\r
         # Get all Guids\r
         RecordSet = self.RecordSet[MODEL_EFI_LIBRARY_CLASS]\r
-        \r
+\r
         # Go through each arch\r
         for Record in RecordSet:\r
             Arch = Record[1]\r
@@ -469,7 +469,7 @@ class Dec(DecObject):
             LibraryClass.RecommendedInstance = NormPath(List[1])\r
             LibraryClass.SupArchList = Arch\r
             self.Package.LibraryClassDeclarations.append(LibraryClass)\r
-    \r
+\r
     def AddPcd(self, CName, Token, TokenSpaceGuidCName, DatumType, DefaultValue, ItemType, Arch):\r
         Pcd = CommonClass.PcdClass()\r
         Pcd.CName = CName\r
@@ -480,7 +480,7 @@ class Dec(DecObject):
         Pcd.ItemType = ItemType\r
         Pcd.SupArchList = Arch\r
         self.Package.PcdDeclarations.append(Pcd)\r
-    \r
+\r
     ## GenPcds\r
     #\r
     # Gen Pcds of Dec\r
@@ -498,7 +498,7 @@ class Dec(DecObject):
         RecordSet3 = self.RecordSet[MODEL_PCD_FEATURE_FLAG]\r
         RecordSet4 = self.RecordSet[MODEL_PCD_DYNAMIC_EX]\r
         RecordSet5 = self.RecordSet[MODEL_PCD_DYNAMIC]\r
-        \r
+\r
         # Go through each pcd\r
         for Record in RecordSet1:\r
             Arch = Record[1]\r
@@ -520,7 +520,7 @@ class Dec(DecObject):
             Arch = Record[1]\r
             (TokenGuidCName, TokenName, DefaultValue, DatumType, Token, ItemType) = GetPcdOfDec(Record[0], TAB_PCDS_DYNAMIC, ContainerFile, Record[2])\r
             self.AddPcd(TokenName, Token, TokenGuidCName, DatumType, DefaultValue, ItemType, Arch)\r
-            \r
+\r
     ## Show detailed information of Package\r
     #\r
     # Print all members and their values of Package class\r
@@ -533,7 +533,7 @@ class Dec(DecObject):
         print 'PackagePath =', M.PackageHeader.PackagePath\r
         print 'ModulePath =', M.PackageHeader.ModulePath\r
         print 'CombinePath =', M.PackageHeader.CombinePath\r
-        \r
+\r
         print 'BaseName =', M.PackageHeader.Name\r
         print 'Guid =', M.PackageHeader.Guid\r
         print 'Version =', M.PackageHeader.Version\r
@@ -571,7 +571,7 @@ class Dec(DecObject):
 if __name__ == '__main__':\r
     EdkLogger.Initialize()\r
     EdkLogger.SetLevel(EdkLogger.QUIET)\r
-    \r
+\r
     W = os.getenv('WORKSPACE')\r
     F = os.path.join(W, 'MdeModulePkg/MdeModulePkg.dec')\r
 \r
index 428f1686b6d98567612a844f8cebd10cdf2e9006..3d06288e9a026e61e06e017599c97ed311b0cb98 100644 (file)
@@ -91,7 +91,7 @@ class DscObject(object):
 class Dsc(DscObject):\r
     _NullClassIndex = 0\r
 \r
-    def __init__(self, Filename = None, IsToDatabase = False, IsToPlatform = False, WorkspaceDir = None, Database = None):\r
+    def __init__(self, Filename=None, IsToDatabase=False, IsToPlatform=False, WorkspaceDir=None, Database=None):\r
         self.Identification = Identification()\r
         self.Platform = PlatformClass()\r
         self.UserExtensions = ''\r
@@ -460,7 +460,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenPcds(self, Type = '', ContainerFile = ''):\r
+    def GenPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         if Type == DataType.TAB_PCDS_PATCHABLE_IN_MODULE:\r
             Model = MODEL_PCD_PATCHABLE_IN_MODULE\r
@@ -512,7 +512,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenFeatureFlagPcds(self, Type = '', ContainerFile = ''):\r
+    def GenFeatureFlagPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         if Type == DataType.TAB_PCDS_FEATURE_FLAG:\r
             Model = MODEL_PCD_FEATURE_FLAG\r
@@ -562,7 +562,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenDynamicDefaultPcds(self, Type = '', ContainerFile = ''):\r
+    def GenDynamicDefaultPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         SkuInfoList = {}\r
         if Type == DataType.TAB_PCDS_DYNAMIC_DEFAULT:\r
@@ -594,20 +594,20 @@ class Dsc(DscObject):
                         if CleanString(NewItem) == '':\r
                             continue\r
                         (K1, K2, K3, K4, K5, K6) = GetDynamicDefaultPcd(NewItem, Type, Filename, -1)\r
-                        MergeArches(Pcds,  (K1, K2, K3, K4, K5, K6, IncludeFile[4]), Arch)\r
+                        MergeArches(Pcds, (K1, K2, K3, K4, K5, K6, IncludeFile[4]), Arch)\r
                         self.PcdToken[Record[3]] = (K2, K1)\r
 \r
             for Record in RecordSet:\r
                 if Record[1] == Arch or Record[1] == TAB_ARCH_COMMON.upper():\r
                     (K1, K2, K3, K4, K5, K6) = GetDynamicDefaultPcd(Record[0], Type, ContainerFile, Record[2])\r
-                    MergeArches(Pcds,  (K1, K2, K3, K4, K5, K6, Record[4]), Arch)\r
+                    MergeArches(Pcds, (K1, K2, K3, K4, K5, K6, Record[4]), Arch)\r
                     self.PcdToken[Record[3]] = (K2, K1)\r
 \r
         for Key in Pcds:\r
             (Status, SkuInfoList) = self.GenSkuInfoList(Key[6], self.Platform.SkuInfos.SkuInfoList, '', '', '', '', '', Key[2])\r
             if Status == False:\r
                 ErrorMsg = "The SKUID '%s' used in section '%s' is not defined in section [SkuIds]" % (SkuInfoList, Type)\r
-                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError=EdkLogger.IsRaiseError)\r
             Pcd = PcdClass(Key[0], '', Key[1], Key[3], Key[4], Key[2], Key[5], [], SkuInfoList, [])\r
             Pcd.SupArchList = Pcds[Key]\r
             self.Platform.DynamicPcdBuildDefinitions.append(Pcd)\r
@@ -619,7 +619,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenDynamicHiiPcds(self, Type = '', ContainerFile = ''):\r
+    def GenDynamicHiiPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         SkuInfoList = {}\r
         if Type == DataType.TAB_PCDS_DYNAMIC_HII:\r
@@ -651,20 +651,20 @@ class Dsc(DscObject):
                         if CleanString(NewItem) == '':\r
                             continue\r
                         (K1, K2, K3, K4, K5, K6, K7, K8) = GetDynamicHiiPcd(NewItem, Type, Filename, -1)\r
-                        MergeArches(Pcds,  (K1, K2, K3, K4, K5, K6, K7, K8, IncludeFile[4]), Arch)\r
+                        MergeArches(Pcds, (K1, K2, K3, K4, K5, K6, K7, K8, IncludeFile[4]), Arch)\r
                         self.PcdToken[Record[3]] = (K2, K1)\r
 \r
             for Record in RecordSet:\r
                 if Record[1] == Arch or Record[1] == TAB_ARCH_COMMON.upper():\r
                     (K1, K2, K3, K4, K5, K6, K7, K8) = GetDynamicHiiPcd(Record[0], Type, ContainerFile, Record[2])\r
-                    MergeArches(Pcds,  (K1, K2, K3, K4, K5, K6, K7, K8, Record[4]), Arch)\r
+                    MergeArches(Pcds, (K1, K2, K3, K4, K5, K6, K7, K8, Record[4]), Arch)\r
                     self.PcdToken[Record[3]] = (K2, K1)\r
 \r
         for Key in Pcds:\r
             (Status, SkuInfoList) = self.GenSkuInfoList(Key[8], self.Platform.SkuInfos.SkuInfoList, Key[2], Key[3], Key[4], Key[5], '', '')\r
             if Status == False:\r
                 ErrorMsg = "The SKUID '%s' used in section '%s' is not defined in section [SkuIds]" % (SkuInfoList, Type)\r
-                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError=EdkLogger.IsRaiseError)\r
             Pcd = PcdClass(Key[0], '', Key[1], '', Key[6], Key[5], Key[7], [], SkuInfoList, [])\r
             Pcd.SupArchList = Pcds[Key]\r
             self.Platform.DynamicPcdBuildDefinitions.append(Pcd)\r
@@ -676,7 +676,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenDynamicVpdPcds(self, Type = '', ContainerFile = ''):\r
+    def GenDynamicVpdPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         SkuInfoList = {}\r
         if Type == DataType.TAB_PCDS_DYNAMIC_VPD:\r
@@ -708,20 +708,20 @@ class Dsc(DscObject):
                         if CleanString(NewItem) == '':\r
                             continue\r
                         (K1, K2, K3, K4, K5) = GetDynamicVpdPcd(NewItem, Type, Filename, -1)\r
-                        MergeArches(Pcds,  (K1, K2, K3, K4, K5, IncludeFile[4]), Arch)\r
+                        MergeArches(Pcds, (K1, K2, K3, K4, K5, IncludeFile[4]), Arch)\r
                         self.PcdToken[Record[3]] = (K2, K1)\r
 \r
             for Record in RecordSet:\r
                 if Record[1] == Arch or Record[1] == TAB_ARCH_COMMON.upper():\r
                     (K1, K2, K3, K4, K5) = GetDynamicVpdPcd(Record[0], Type, ContainerFile, Record[2])\r
-                    MergeArches(Pcds,  (K1, K2, K3, K4, K5, Record[4]), Arch)\r
+                    MergeArches(Pcds, (K1, K2, K3, K4, K5, Record[4]), Arch)\r
                     self.PcdToken[Record[3]] = (K2, K1)\r
 \r
         for Key in Pcds:\r
             (Status, SkuInfoList) = self.GenSkuInfoList(Key[5], self.Platform.SkuInfos.SkuInfoList, '', '', '', '', Key[2], '')\r
             if Status == False:\r
                 ErrorMsg = "The SKUID '%s' used in section '%s' is not defined in section [SkuIds]" % (SkuInfoList, Type)\r
-                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError=EdkLogger.IsRaiseError)\r
             Pcd = PcdClass(Key[0], '', Key[1], '', Key[3], '', Key[4], [], SkuInfoList, [])\r
             Pcd.SupArchList = Pcds[Key]\r
             self.Platform.DynamicPcdBuildDefinitions.append(Pcd)\r
@@ -769,7 +769,7 @@ class Dsc(DscObject):
 \r
                     SubLibSet = QueryDscItem(self.TblDsc, MODEL_EFI_LIBRARY_CLASS, Record[3], self.FileID)\r
                     for SubLib in SubLibSet:\r
-                        Lib.append(TAB_VALUE_SPLIT.join([SubLib[0],SubLib[4]]))\r
+                        Lib.append(TAB_VALUE_SPLIT.join([SubLib[0], SubLib[4]]))\r
 \r
                     SubBoSet = QueryDscItem(self.TblDsc, MODEL_META_DATA_BUILD_OPTION, Record[3], self.FileID)\r
                     for SubBo in SubBoSet:\r
@@ -806,7 +806,7 @@ class Dsc(DscObject):
     #\r
     # @retval PlatformModuleClass() A instance for PlatformModuleClass\r
     #\r
-    def GenComponent(self, Item, ContainerFile, LineNo = -1):\r
+    def GenComponent(self, Item, ContainerFile, LineNo= -1):\r
         (InfFilename, ExecFilename) = GetExec(Item[0])\r
         LibraryClasses = Item[1]\r
         BuildOptions = Item[2]\r
@@ -894,7 +894,7 @@ class Dsc(DscObject):
     # @retval (False, SkuName)     Not found in section SkuId Dsc file\r
     # @retval (True, SkuInfoList)  Found in section SkuId of Dsc file\r
     #\r
-    def GenSkuInfoList(self, SkuNameList, SkuInfo, VariableName = '', VariableGuid = '', VariableOffset = '', HiiDefaultValue = '', VpdOffset = '', DefaultValue = ''):\r
+    def GenSkuInfoList(self, SkuNameList, SkuInfo, VariableName='', VariableGuid='', VariableOffset='', HiiDefaultValue='', VpdOffset='', DefaultValue=''):\r
         SkuNameList = GetSplitValueList(SkuNameList)\r
         if SkuNameList == None or SkuNameList == [] or SkuNameList == ['']:\r
             SkuNameList = ['DEFAULT']\r
@@ -964,7 +964,7 @@ class Dsc(DscObject):
         (Value1, Value2, Value3, Model, StartColumn, EndColumn, Enabled) = ('', '', '', -1, -1, -1, 0)\r
         if IfDefList == []:\r
             ErrorMsg = 'Not suited conditional statement in file %s' % Filename\r
-            EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, Filename, RaiseError = EdkLogger.IsRaiseError)\r
+            EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, Filename, RaiseError=EdkLogger.IsRaiseError)\r
         else:\r
             #\r
             # Get New Dsc item ID\r
@@ -1046,10 +1046,10 @@ class Dsc(DscObject):
             # Remove comment block\r
             #\r
             if Line.find(TAB_COMMENT_EDK_START) > -1:\r
-                ReservedLine = GetSplitValueList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
+                ReservedLine = GetSplitList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
                 IsFindBlockComment = True\r
             if Line.find(TAB_COMMENT_EDK_END) > -1:\r
-                Line = ReservedLine + GetSplitValueList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
+                Line = ReservedLine + GetSplitList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
                 ReservedLine = ''\r
                 IsFindBlockComment = False\r
             if IsFindBlockComment:\r
@@ -1087,7 +1087,7 @@ class Dsc(DscObject):
                         CurrentSection = ItemList[0]\r
                     else:\r
                         if CurrentSection != ItemList[0]:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                     if CurrentSection.upper() not in self.KeyList:\r
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                         CurrentSection = TAB_UNKNOWN\r
@@ -1098,7 +1098,7 @@ class Dsc(DscObject):
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     else:\r
                         if ItemList[1] != '' and ItemList[1].upper() not in ARCH_LIST_FULL:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                         ArchList.append(ItemList[1].upper())\r
                         ThirdList.append(ItemList[2])\r
 \r
@@ -1109,7 +1109,7 @@ class Dsc(DscObject):
             #\r
             if CurrentSection == TAB_UNKNOWN:\r
                 ErrorMsg = "%s is not in any defined section" % Line\r
-                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
 \r
             #\r
             # Add a section item\r
@@ -1161,7 +1161,7 @@ class Dsc(DscObject):
                          MODEL_META_DATA_DEFINE)\r
         RecordSet = self.TblDsc.Exec(SqlCommand)\r
         for Record in RecordSet:\r
-            SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" %(self.TblDsc.Table, Record[0], Record[1])\r
+            SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" % (self.TblDsc.Table, Record[0], Record[1])\r
             self.TblDsc.Exec(SqlCommand)\r
 \r
         #\r
@@ -1185,8 +1185,8 @@ class Dsc(DscObject):
                          MODEL_META_DATA_DEFINE)\r
         RecordSet = self.TblDsc.Exec(SqlCommand)\r
         for Record in RecordSet:\r
-            SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" %(self.TblDsc.Table, Record[0], Record[1])\r
-            EdkLogger.debug(4, "SqlCommand: %s" %SqlCommand)\r
+            SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" % (self.TblDsc.Table, Record[0], Record[1])\r
+            EdkLogger.debug(4, "SqlCommand: %s" % SqlCommand)\r
             self.Cur.execute(SqlCommand)\r
 \r
         #\r
@@ -1210,13 +1210,13 @@ class Dsc(DscObject):
         for Record in RecordSet:\r
             if Record[0] == MODEL_META_DATA_CONDITIONAL_STATEMENT_IF:\r
                 if not self.Compare(Record[6], Record[2], Record[3]):\r
-                    SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" %(self.TblDsc.Table, Record[4], Record[5])\r
+                    SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" % (self.TblDsc.Table, Record[4], Record[5])\r
                     self.TblDsc.Exec(SqlCommand)\r
                 else:\r
                     DisabledList.append(Record[1])\r
                 continue\r
             if Record[0] == MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE and Record[1] in DisabledList:\r
-                SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" %(self.TblDsc.Table, Record[4], Record[5])\r
+                SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" % (self.TblDsc.Table, Record[4], Record[5])\r
                 self.TblDsc.Exec(SqlCommand)\r
 \r
     ## Compare\r
@@ -1227,7 +1227,7 @@ class Dsc(DscObject):
     # @param Value2:\r
     #\r
     def Compare(self, Value1, CompareType, Value2):\r
-        Command = """Value1 %s Value2""" %CompareType\r
+        Command = """Value1 %s Value2""" % CompareType\r
         return eval(Command)\r
 \r
     ## First time to insert records to database\r
@@ -1259,7 +1259,7 @@ class Dsc(DscObject):
                 LineValue, StartLine, EndLine = SectionItem[0], SectionItem[1], SectionItem[1]\r
 \r
 \r
-                EdkLogger.debug(4, "Parsing %s ..." %LineValue)\r
+                EdkLogger.debug(4, "Parsing %s ..." % LineValue)\r
                 #\r
                 # Parse '!ifdef'\r
                 #\r
@@ -1337,10 +1337,10 @@ class Dsc(DscObject):
                 Components = []\r
                 GetComponent(SectionItemList, Components)\r
                 for Component in Components:\r
-                    EdkLogger.debug(4, "Parsing component %s ..." %Component)\r
+                    EdkLogger.debug(4, "Parsing component %s ..." % Component)\r
                     DscItmeID = self.TblDsc.Insert(MODEL_META_DATA_COMPONENT, Component[0], '', '', Arch, -1, FileID, StartLine, -1, StartLine, -1, 0)\r
                     for Item in Component[1]:\r
-                        List = GetSplitValueList(Item, MaxSplit = 2)\r
+                        List = GetSplitValueList(Item, MaxSplit=2)\r
                         LibName, LibIns = '', ''\r
                         if len(List) == 2:\r
                             LibName = List[0]\r
index 0f2b5ca47d726985b0fad145ccf69c5c802af365..7ea0c39297693506f3c80460ec89eab4ca1c7502 100644 (file)
@@ -163,7 +163,7 @@ class InfObject(object):
 # @var KeyList:             To store value for KeyList, a list for all Keys used in Inf\r
 #\r
 class Inf(InfObject):\r
-    def __init__(self, Filename = None, IsToDatabase = False, IsToModule = False, WorkspaceDir = None, Database = None, SupArchList = DataType.ARCH_LIST):\r
+    def __init__(self, Filename=None, IsToDatabase=False, IsToModule=False, WorkspaceDir=None, Database=None, SupArchList=DataType.ARCH_LIST):\r
         self.Identification = Identification()\r
         self.Module = ModuleClass()\r
         self.UserExtensions = ''\r
@@ -353,10 +353,10 @@ class Inf(InfObject):
             # Remove comment block\r
             #\r
             if Line.find(TAB_COMMENT_EDK_START) > -1:\r
-                ReservedLine = GetSplitValueList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
+                ReservedLine = GetSplitList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
                 IsFindBlockComment = True\r
             if Line.find(TAB_COMMENT_EDK_END) > -1:\r
-                Line = ReservedLine + GetSplitValueList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
+                Line = ReservedLine + GetSplitList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
                 ReservedLine = ''\r
                 IsFindBlockComment = False\r
             if IsFindBlockComment:\r
@@ -397,7 +397,7 @@ class Inf(InfObject):
                         CurrentSection = ItemList[0]\r
                     else:\r
                         if CurrentSection != ItemList[0]:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                     if CurrentSection.upper() not in self.KeyList:\r
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                         CurrentSection = TAB_UNKNOWN\r
@@ -408,7 +408,7 @@ class Inf(InfObject):
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     else:\r
                         if ItemList[1] != '' and ItemList[1].upper() not in ARCH_LIST_FULL:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                         ArchList.append(ItemList[1].upper())\r
                         ThirdList.append(ItemList[2])\r
 \r
@@ -419,7 +419,7 @@ class Inf(InfObject):
             #\r
             if CurrentSection == TAB_UNKNOWN:\r
                 ErrorMsg = "%s is not in any defined section" % Line\r
-                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
 \r
             #\r
             # Add a section item\r
@@ -497,13 +497,13 @@ class Inf(InfObject):
             print Item.Name, Item.Value, Item.SupArchList\r
         print '\nPcds =', M.PcdCodes\r
         for Item in M.PcdCodes:\r
-            print '\tCName=',Item.CName, 'TokenSpaceGuidCName=', Item.TokenSpaceGuidCName, 'DefaultValue=', Item.DefaultValue, 'ItemType=', Item.ItemType, Item.SupArchList\r
+            print '\tCName=', Item.CName, 'TokenSpaceGuidCName=', Item.TokenSpaceGuidCName, 'DefaultValue=', Item.DefaultValue, 'ItemType=', Item.ItemType, Item.SupArchList\r
         print '\nSources =', M.Sources\r
         for Source in M.Sources:\r
             print Source.SourceFile, 'Fam=', Source.ToolChainFamily, 'Pcd=', Source.FeatureFlag, 'Tag=', Source.TagName, 'ToolCode=', Source.ToolCode, Source.SupArchList\r
         print '\nUserExtensions =', M.UserExtensions\r
         for UserExtension in M.UserExtensions:\r
-            print UserExtension.UserID, UserExtension.Identifier,UserExtension.Content\r
+            print UserExtension.UserID, UserExtension.Identifier, UserExtension.Content\r
         print '\nGuids =', M.Guids\r
         for Item in M.Guids:\r
             print Item.CName, Item.SupArchList, Item.FeatureFlag\r
@@ -629,7 +629,7 @@ class Inf(InfObject):
                 if ModuleHeader.ComponentType in gComponentType2ModuleType:\r
                     ModuleHeader.ModuleType = gComponentType2ModuleType[ModuleHeader.ComponentType]\r
                 elif ModuleHeader.ComponentType != '':\r
-                    EdkLogger.error("Parser", PARSER_ERROR, "Unsupported Edk component type [%s]" % ModuleHeader.ComponentType, ExtraData=File, RaiseError = EdkLogger.IsRaiseError)\r
+                    EdkLogger.error("Parser", PARSER_ERROR, "Unsupported Edk component type [%s]" % ModuleHeader.ComponentType, ExtraData=File, RaiseError=EdkLogger.IsRaiseError)\r
 \r
             self.Module.Header[Arch] = ModuleHeader\r
 \r
index 067bf71008b1f11e00e7da7887c593e851ef939d..44f922340b47ed8f70beb83769bcacffffd5006d 100644 (file)
@@ -73,7 +73,7 @@ class InfHeader(ModuleHeaderClass):
         TAB_INF_DEFINES_MODULE_TYPE                 : "ModuleType",\r
         TAB_INF_DEFINES_EFI_SPECIFICATION_VERSION   : "UefiSpecificationVersion",\r
         TAB_INF_DEFINES_UEFI_SPECIFICATION_VERSION  : "UefiSpecificationVersion",\r
-        TAB_INF_DEFINES_EDK_RELEASE_VERSION         : "EdkReleaseVersion",        \r
+        TAB_INF_DEFINES_EDK_RELEASE_VERSION         : "EdkReleaseVersion",\r
 \r
         # Optional Fields\r
         TAB_INF_DEFINES_INF_VERSION                 : "InfVersion",\r
@@ -139,34 +139,34 @@ class InfObject(object):
 # @var KeyList:             To store value for KeyList, a list for all Keys used in Inf\r
 #\r
 class Inf(InfObject):\r
-    def __init__(self, Filename = None, IsToModule = False, WorkspaceDir = None, PackageDir = None, SupArchList = DataType.ARCH_LIST):\r
+    def __init__(self, Filename=None, IsToModule=False, WorkspaceDir=None, PackageDir=None, SupArchList=DataType.ARCH_LIST):\r
         self.Identification = IdentificationClass()\r
         self.Module = ModuleClass()\r
         self.WorkspaceDir = WorkspaceDir\r
         self.PackageDir = PackageDir\r
         self.SupArchList = SupArchList\r
-        \r
+\r
         self.KeyList = [\r
-            TAB_SOURCES, TAB_BUILD_OPTIONS, TAB_BINARIES, TAB_INCLUDES, TAB_GUIDS, \r
-            TAB_PROTOCOLS, TAB_PPIS, TAB_LIBRARY_CLASSES, TAB_PACKAGES, TAB_INF_FIXED_PCD, \r
-            TAB_INF_PATCH_PCD, TAB_INF_FEATURE_PCD, TAB_INF_PCD, TAB_INF_PCD_EX, \r
+            TAB_SOURCES, TAB_BUILD_OPTIONS, TAB_BINARIES, TAB_INCLUDES, TAB_GUIDS,\r
+            TAB_PROTOCOLS, TAB_PPIS, TAB_LIBRARY_CLASSES, TAB_PACKAGES, TAB_INF_FIXED_PCD,\r
+            TAB_INF_PATCH_PCD, TAB_INF_FEATURE_PCD, TAB_INF_PCD, TAB_INF_PCD_EX,\r
             TAB_DEPEX, TAB_INF_DEFINES\r
         ]\r
         # Upper all KEYs to ignore case sensitive when parsing\r
         self.KeyList = map(lambda c: c.upper(), self.KeyList)\r
-        \r
+\r
         # Init RecordSet\r
-        self.RecordSet = {}        \r
+        self.RecordSet = {}\r
         for Key in self.KeyList:\r
             self.RecordSet[Section[Key]] = []\r
-        \r
+\r
         # Init Comment\r
         self.SectionHeaderCommentDict = {}\r
-        \r
+\r
         # Load Inf file if filename is not None\r
         if Filename != None:\r
             self.LoadInfFile(Filename)\r
-        \r
+\r
         # Transfer to Module Object if IsToModule is True\r
         if IsToModule:\r
             self.InfToModule()\r
@@ -209,16 +209,16 @@ class Inf(InfObject):
         InfList['Defines'] = TmpList\r
         if ModuleHeader.Description != '':\r
             SectionHeaderCommentDict['Defines'] = ModuleHeader.Description\r
-        \r
+\r
         if Module.UserExtensions != None:\r
             InfList['BuildOptions'] = Module.UserExtensions.BuildOptions\r
-        \r
+\r
         for Item in Module.Includes:\r
             Key = 'Includes.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
             Value.append(Item.FilePath)\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         for Item in Module.LibraryClasses:\r
             Key = 'LibraryClasses.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
@@ -227,15 +227,15 @@ class Inf(InfObject):
                 NewValue = NewValue + '|' + Item.RecommendedInstance\r
             if Item.FeatureFlag:\r
                 NewValue = NewValue + '|' + Item.FeatureFlag\r
-            Value.append(NewValue)    \r
+            Value.append(NewValue)\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         for Item in Module.PackageDependencies:\r
             Key = 'Packages.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
             Value.append(Item.FilePath)\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         for Item in Module.PcdCodes:\r
             Key = 'Pcds' + Item.ItemType + '.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
@@ -244,7 +244,7 @@ class Inf(InfObject):
                 NewValue = NewValue + '|' + Item.DefaultValue\r
             Value.append(NewValue)\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-               \r
+\r
         for Item in Module.Sources:\r
             Key = 'Sources.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
@@ -261,40 +261,40 @@ class Inf(InfObject):
             if Item.HelpText != '':\r
                 SectionHeaderCommentDict[Key] = Item.HelpText\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         for Item in Module.Guids:\r
             Key = 'Guids.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
             Value.append(Item.CName)\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         for Item in Module.Protocols:\r
             Key = 'Protocols.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
             Value.append(Item.CName)\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         for Item in Module.Ppis:\r
             Key = 'Ppis.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
             Value.append(Item.CName)\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         if Module.PeiDepex:\r
             Key = 'Depex'\r
             Value = Module.PeiDepex.Depex\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         if Module.DxeDepex:\r
             Key = 'Depex'\r
             Value = Module.DxeDepex.Depex\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         if Module.SmmDepex:\r
             Key = 'Depex'\r
             Value = Module.SmmDepex.Depex\r
             GenMetaDatSectionItem(Key, Value, InfList)\r
-        \r
+\r
         for Item in Module.Binaries:\r
             Key = 'Binaries.' + GetStringOfList(Item.SupArchList)\r
             Value = GetHelpTextList(Item.HelpTextList)\r
@@ -318,10 +318,10 @@ class Inf(InfObject):
                 else:\r
                     Inf = Inf + '  ' + Value + '\n'\r
             Inf = Inf + '\n'\r
-        \r
+\r
         return Inf\r
-    \r
-    \r
+\r
+\r
     ## Transfer to Module Object\r
     # \r
     # Transfer all contents of an Inf file to a standard Module Object\r
@@ -329,28 +329,28 @@ class Inf(InfObject):
     def InfToModule(self):\r
         # Init global information for the file\r
         ContainerFile = self.Identification.FullPath\r
-        \r
+\r
         # Generate Module Header\r
         self.GenModuleHeader(ContainerFile)\r
-        \r
+\r
         # Generate BuildOptions\r
         self.GenBuildOptions(ContainerFile)\r
-        \r
+\r
         # Generate Includes\r
         self.GenIncludes(ContainerFile)\r
-        \r
+\r
         # Generate LibraryClasses\r
         self.GenLibraryClasses(ContainerFile)\r
-        \r
+\r
         # Generate Packages\r
         self.GenPackages(ContainerFile)\r
-        \r
+\r
         # Generate Pcds\r
         self.GenPcds(ContainerFile)\r
-        \r
+\r
         # Generate Sources\r
         self.GenSources(ContainerFile)\r
-        \r
+\r
         # Generate Guids\r
         self.GenGuidProtocolPpis(DataType.TAB_GUIDS, ContainerFile)\r
 \r
@@ -359,13 +359,13 @@ class Inf(InfObject):
 \r
         # Generate Ppis\r
         self.GenGuidProtocolPpis(DataType.TAB_PPIS, ContainerFile)\r
-        \r
+\r
         # Generate Depexes\r
         self.GenDepexes(ContainerFile)\r
-        \r
+\r
         # Generate Binaries\r
         self.GenBinaries(ContainerFile)\r
-        \r
+\r
         # Init MiscFiles\r
         self.GenMiscFiles(ContainerFile)\r
 \r
@@ -386,24 +386,24 @@ class Inf(InfObject):
     #\r
     # @param Filename:  Input value for filename of Inf file\r
     #\r
-    def LoadInfFile(self, Filename):     \r
+    def LoadInfFile(self, Filename):\r
         # Insert a record for file\r
         Filename = NormPath(Filename)\r
-        \r
+\r
         self.Identification.FullPath = Filename\r
         (self.Identification.RelaPath, self.Identification.FileName) = os.path.split(Filename)\r
         if self.Identification.FullPath.find(self.WorkspaceDir) > -1:\r
-            self.Identification.ModulePath = os.path.dirname(self.Identification.FullPath[len(self.WorkspaceDir) + 1:])        \r
+            self.Identification.ModulePath = os.path.dirname(self.Identification.FullPath[len(self.WorkspaceDir) + 1:])\r
         if self.PackageDir:\r
             self.Identification.PackagePath = self.PackageDir\r
             if self.Identification.ModulePath.find(self.PackageDir) == 0:\r
                 self.Identification.ModulePath = self.Identification.ModulePath[len(self.PackageDir) + 1:]\r
-        \r
+\r
         # Init common datas\r
         IfDefList, SectionItemList, CurrentSection, ArchList, ThirdList, IncludeFiles = \\r
         [], [], TAB_UNKNOWN, [], [], []\r
         LineNo = 0\r
-        \r
+\r
         # Parse file content\r
         IsFindBlockComment = False\r
         ReservedLine = ''\r
@@ -412,7 +412,7 @@ class Inf(InfObject):
             LineNo = LineNo + 1\r
             # Remove comment block\r
             if Line.find(TAB_COMMENT_EDK_START) > -1:\r
-                ReservedLine = GetSplitValueList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
+                ReservedLine = GetSplitList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
                 if ReservedLine.strip().startswith(TAB_COMMENT_SPLIT):\r
                     Comment = Comment + Line.strip() + '\n'\r
                     ReservedLine = ''\r
@@ -423,20 +423,20 @@ class Inf(InfObject):
                     continue\r
             if Line.find(TAB_COMMENT_EDK_END) > -1:\r
                 Comment = Comment + Line[:Line.find(TAB_COMMENT_EDK_END) + len(TAB_COMMENT_EDK_END)] + '\n'\r
-                Line = ReservedLine + GetSplitValueList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
+                Line = ReservedLine + GetSplitList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
                 ReservedLine = ''\r
                 IsFindBlockComment = False\r
             if IsFindBlockComment:\r
                 Comment = Comment + Line.strip() + '\n'\r
                 continue\r
-            \r
+\r
             # Remove comments at tail and remove spaces again\r
             if Line.strip().startswith(TAB_COMMENT_SPLIT) or Line.strip().startswith('--/'):\r
                 Comment = Comment + Line.strip() + '\n'\r
             Line = CleanString(Line)\r
             if Line == '':\r
                 continue\r
-            \r
+\r
             ## Find a new section tab\r
             # First insert previous section items\r
             # And then parse the content of the new section\r
@@ -446,12 +446,12 @@ class Inf(InfObject):
                 Model = Section[CurrentSection.upper()]\r
                 # Insert items data of previous section\r
                 InsertSectionItems(Model, CurrentSection, SectionItemList, ArchList, ThirdList, self.RecordSet)\r
-                \r
+\r
                 # Parse the new section\r
                 SectionItemList = []\r
                 ArchList = []\r
                 ThirdList = []\r
-                \r
+\r
                 CurrentSection = ''\r
                 LineList = GetSplitValueList(Line[len(TAB_SECTION_START):len(Line) - len(TAB_SECTION_END)], TAB_COMMA_SPLIT)\r
                 for Item in LineList:\r
@@ -460,7 +460,7 @@ class Inf(InfObject):
                         CurrentSection = ItemList[0]\r
                     else:\r
                         if CurrentSection != ItemList[0]:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                     if CurrentSection.upper() not in self.KeyList:\r
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     ItemList.append('')\r
@@ -469,7 +469,7 @@ class Inf(InfObject):
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     else:\r
                         if ItemList[1] != '' and ItemList[1].upper() not in ARCH_LIST_FULL:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                         ArchList.append(ItemList[1].upper())\r
                         ThirdList.append(ItemList[2])\r
 \r
@@ -479,18 +479,18 @@ class Inf(InfObject):
                     self.SectionHeaderCommentDict[Section[CurrentSection.upper()]] = Comment\r
                     Comment = ''\r
                 continue\r
-            \r
+\r
             # Not in any defined section\r
             if CurrentSection == TAB_UNKNOWN:\r
                 ErrorMsg = "%s is not in any defined section" % Line\r
-                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
 \r
             # Add a section item\r
             SectionItemList.append([Line, LineNo, Comment])\r
             Comment = ''\r
             # End of parse\r
         #End of For\r
-        \r
+\r
         # Insert items data of last section\r
         Model = Section[CurrentSection.upper()]\r
         InsertSectionItems(Model, CurrentSection, SectionItemList, ArchList, ThirdList, self.RecordSet)\r
@@ -510,7 +510,7 @@ class Inf(InfObject):
         print 'PackagePath =', M.ModuleHeader.PackagePath\r
         print 'ModulePath =', M.ModuleHeader.ModulePath\r
         print 'CombinePath =', M.ModuleHeader.CombinePath\r
-        \r
+\r
         print 'BaseName =', M.ModuleHeader.Name\r
         print 'Guid =', M.ModuleHeader.Guid\r
         print 'Version =', M.ModuleHeader.Version\r
@@ -526,7 +526,7 @@ class Inf(InfObject):
             print Item.FilePath, Item.SupArchList, Item.FeatureFlag\r
         print '\nPcds ='\r
         for Item in M.PcdCodes:\r
-            print '\tCName=',Item.CName, 'TokenSpaceGuidCName=', Item.TokenSpaceGuidCName, 'DefaultValue=', Item.DefaultValue, 'ItemType=', Item.ItemType, Item.SupArchList\r
+            print '\tCName=', Item.CName, 'TokenSpaceGuidCName=', Item.TokenSpaceGuidCName, 'DefaultValue=', Item.DefaultValue, 'ItemType=', Item.ItemType, Item.SupArchList\r
         print '\nSources ='\r
         for Source in M.Sources:\r
             print Source.SourceFile, 'Fam=', Source.ToolChainFamily, 'Pcd=', Source.FeatureFlag, 'Tag=', Source.TagName, 'ToolCode=', Source.ToolCode, Source.SupArchList\r
@@ -562,7 +562,7 @@ class Inf(InfObject):
         EdkLogger.debug(2, "Generate ModuleHeader ...")\r
         # Update all defines item in database\r
         RecordSet = self.RecordSet[MODEL_META_DATA_HEADER]\r
-        \r
+\r
         ModuleHeader = ModuleHeaderClass()\r
         ModuleExtern = ModuleExternClass()\r
         OtherDefines = []\r
@@ -614,7 +614,7 @@ class Inf(InfObject):
             UE = UserExtensionsClass()\r
         UE.Defines = OtherDefines\r
         self.Module.UserExtensions = UE\r
-        \r
+\r
     ## GenBuildOptions\r
     #\r
     # Gen BuildOptions of Inf\r
@@ -633,7 +633,7 @@ class Inf(InfObject):
         for Record in RecordSet:\r
             UE.BuildOptions.append(Record[0])\r
         self.Module.UserExtensions = UE\r
-        \r
+\r
     ## GenIncludes\r
     #\r
     # Gen Includes of Inf\r
@@ -653,7 +653,7 @@ class Inf(InfObject):
                 Include.HelpTextList.append(GenerateHelpText(Record[5], ''))\r
             self.Module.Includes.append(Include)\r
             #self.Module.FileList.extend(GetFiles(os.path.normpath(os.path.join(self.Identification.FileRelativePath, Include.FilePath)), ['CVS', '.svn']))\r
-    \r
+\r
     ## GenLibraryClasses\r
     #\r
     # Get LibraryClass of Inf\r
@@ -667,7 +667,7 @@ class Inf(InfObject):
         # Get all LibraryClasses\r
         RecordSet = self.RecordSet[MODEL_EFI_LIBRARY_CLASS]\r
         for Record in RecordSet:\r
-            (LibClassName, LibClassIns, Pcd, SupModelList) = GetLibraryClassOfInf([Record[0], Record[4]], ContainerFile, self.WorkspaceDir, Record[2])            \r
+            (LibClassName, LibClassIns, Pcd, SupModelList) = GetLibraryClassOfInf([Record[0], Record[4]], ContainerFile, self.WorkspaceDir, Record[2])\r
             LibraryClass = CommonClass.LibraryClassClass()\r
             LibraryClass.LibraryClass = LibClassName\r
             LibraryClass.RecommendedInstance = LibClassIns\r
@@ -698,7 +698,7 @@ class Inf(InfObject):
             if GenerateHelpText(Record[5], ''):\r
                 Package.HelpTextList.append(GenerateHelpText(Record[5], ''))\r
             self.Module.PackageDependencies.append(Package)\r
-    \r
+\r
     def AddPcd(self, CName, TokenSpaceGuidCName, DefaultValue, ItemType, Arch, HelpTextList):\r
         Pcd = PcdClass()\r
         Pcd.CName = CName\r
@@ -709,7 +709,7 @@ class Inf(InfObject):
         if GenerateHelpText(HelpTextList, ''):\r
             Pcd.HelpTextList.append(GenerateHelpText(HelpTextList, ''))\r
         self.Module.PcdCodes.append(Pcd)\r
-    \r
+\r
     ## GenPcds\r
     #\r
     # Gen Pcds of Inf\r
@@ -721,14 +721,14 @@ class Inf(InfObject):
         EdkLogger.debug(2, "Generate %s ..." % TAB_PCDS)\r
         Pcds = {}\r
         PcdToken = {}\r
-        \r
+\r
         # Get all Pcds\r
         RecordSet1 = self.RecordSet[MODEL_PCD_FIXED_AT_BUILD]\r
         RecordSet2 = self.RecordSet[MODEL_PCD_PATCHABLE_IN_MODULE]\r
         RecordSet3 = self.RecordSet[MODEL_PCD_FEATURE_FLAG]\r
         RecordSet4 = self.RecordSet[MODEL_PCD_DYNAMIC_EX]\r
         RecordSet5 = self.RecordSet[MODEL_PCD_DYNAMIC]\r
-        \r
+\r
         # Go through each arch\r
         for Record in RecordSet1:\r
             (TokenSpaceGuidCName, TokenName, Value, Type) = GetPcdOfInf(Record[0], TAB_PCDS_FIXED_AT_BUILD, ContainerFile, Record[2])\r
@@ -745,7 +745,7 @@ class Inf(InfObject):
         for Record in RecordSet5:\r
             (TokenSpaceGuidCName, TokenName, Value, Type) = GetPcdOfInf(Record[0], '', ContainerFile, Record[2])\r
             self.AddPcd(TokenName, TokenSpaceGuidCName, Value, Type, Record[1], Record[5])\r
-        \r
+\r
     ## GenSources\r
     #\r
     # Gen Sources of Inf\r
@@ -756,7 +756,7 @@ class Inf(InfObject):
     def GenSources(self, ContainerFile):\r
         EdkLogger.debug(2, "Generate %s ..." % TAB_SOURCES)\r
         Sources = {}\r
-        \r
+\r
         # Get all Sources\r
         RecordSet = self.RecordSet[MODEL_EFI_SOURCE_FILE]\r
         for Record in RecordSet:\r
@@ -820,7 +820,7 @@ class Inf(InfObject):
     def GenBinaries(self, ContainerFile):\r
         EdkLogger.debug(2, "Generate %s ..." % TAB_BINARIES)\r
         Binaries = {}\r
-        \r
+\r
         # Get all Guids\r
         RecordSet = self.RecordSet[MODEL_EFI_BINARY_FILE]\r
         for Record in RecordSet:\r
@@ -830,7 +830,7 @@ class Inf(InfObject):
                 Binary.HelpTextList.append(GenerateHelpText(Record[5], ''))\r
             self.Module.Binaries.append(Binary)\r
             #self.Module.FileList.append(os.path.normpath(os.path.join(self.Identification.RelaPath, Filename)))\r
-        \r
+\r
     ## GenGuids\r
     #\r
     # Gen Guids of Inf\r
@@ -859,7 +859,7 @@ class Inf(InfObject):
             if GenerateHelpText(Record[5], ''):\r
                 ListClass.HelpTextList.append(GenerateHelpText(Record[5], ''))\r
             ListMember.append(ListClass)\r
-       \r
+\r
 ##\r
 #\r
 # This acts like the main() function for the script, unless it is 'import'ed into another\r
@@ -868,10 +868,10 @@ class Inf(InfObject):
 if __name__ == '__main__':\r
     EdkLogger.Initialize()\r
     EdkLogger.SetLevel(EdkLogger.QUIET)\r
-        \r
+\r
     W = os.getenv('WORKSPACE')\r
     F = os.path.join(W, 'MdeModulePkg/Application/HelloWorld/HelloWorld.inf')\r
-    \r
+\r
     P = Inf(os.path.normpath(F), True, W, 'MdeModulePkg')\r
     P.ShowModule()\r
     print P.ModuleToInf(P.Module)\r
index a35f728dc0151c0ade819c93ffc4606ab019260d..0f2a61b1b9793802e1679c2d2c6ab808eeed2810 100644 (file)
@@ -24,7 +24,7 @@ import GlobalData
 from BuildToolError import *\r
 from CommonDataClass.Exceptions import *\r
 \r
-gHexVerPatt = re.compile('0x[a-f0-9]{4}[a-f0-9]{4}$',re.IGNORECASE)\r
+gHexVerPatt = re.compile('0x[a-f0-9]{4}[a-f0-9]{4}$', re.IGNORECASE)\r
 gHumanReadableVerPatt = re.compile(r'([1-9][0-9]*|0)\.[0-9]{1,2}$')\r
 \r
 ## GetSplitValueList\r
@@ -39,7 +39,7 @@ gHumanReadableVerPatt = re.compile(r'([1-9][0-9]*|0)\.[0-9]{1,2}$')
 #\r
 # @retval list() A list for splitted string\r
 #\r
-def GetSplitValueList(String, SplitTag = DataType.TAB_VALUE_SPLIT, MaxSplit = -1):\r
+def GetSplitValueList(String, SplitTag=DataType.TAB_VALUE_SPLIT, MaxSplit= -1):\r
     ValueList = []\r
     Last = 0\r
     Escaped = False\r
@@ -51,7 +51,7 @@ def GetSplitValueList(String, SplitTag = DataType.TAB_VALUE_SPLIT, MaxSplit = -1
             # Found a splitter not in a string, split it\r
             if not InString and Char == SplitTag:\r
                 ValueList.append(String[Last:Index].strip())\r
-                Last = Index+1\r
+                Last = Index + 1\r
                 if MaxSplit > 0 and len(ValueList) >= MaxSplit:\r
                     break\r
 \r
@@ -84,7 +84,7 @@ def GetSplitValueList(String, SplitTag = DataType.TAB_VALUE_SPLIT, MaxSplit = -1
 #\r
 # @retval list() A list for splitted string\r
 #\r
-def GetSplitList(String, SplitStr = DataType.TAB_VALUE_SPLIT, MaxSplit = -1):\r
+def GetSplitList(String, SplitStr=DataType.TAB_VALUE_SPLIT, MaxSplit= -1):\r
     return map(lambda l: l.strip(), String.split(SplitStr, MaxSplit))\r
 \r
 ## MergeArches\r
@@ -235,7 +235,7 @@ def SplitModuleType(Key):
 #\r
 # @retval NewList           A new string list whose macros are replaced\r
 #\r
-def ReplaceMacros(StringList, MacroDefinitions={}, SelfReplacement = False):\r
+def ReplaceMacros(StringList, MacroDefinitions={}, SelfReplacement=False):\r
     NewList = []\r
     for String in StringList:\r
         if type(String) == type(''):\r
@@ -289,7 +289,7 @@ def ReplaceMacro(String, MacroDefinitions={}, SelfReplacement=False, RaiseError=
 #\r
 # @retval Path Formatted path\r
 #\r
-def NormPath(Path, Defines = {}):\r
+def NormPath(Path, Defines={}):\r
     IsRelativePath = False\r
     if Path:\r
         if Path[0] == '.':\r
@@ -319,7 +319,7 @@ def NormPath(Path, Defines = {}):
 #\r
 # @retval Path Formatted path\r
 #\r
-def CleanString(Line, CommentCharacter = DataType.TAB_COMMENT_SPLIT, AllowCppStyleComment=False):\r
+def CleanString(Line, CommentCharacter=DataType.TAB_COMMENT_SPLIT, AllowCppStyleComment=False):\r
     #\r
     # remove whitespace\r
     #\r
@@ -342,19 +342,19 @@ def CleanString(Line, CommentCharacter = DataType.TAB_COMMENT_SPLIT, AllowCppSty
         elif Line[Index] == CommentCharacter and not InString :\r
             Line = Line[0: Index]\r
             break\r
-        \r
+\r
     if CommentInString:\r
         Line = Line.replace('"', '')\r
         ChIndex = Line.find('#')\r
         while ChIndex >= 0:\r
             if GlobalData.gIsWindows:\r
-                if ChIndex == 0 or Line[ChIndex-1] != '^':\r
+                if ChIndex == 0 or Line[ChIndex - 1] != '^':\r
                     Line = Line[0:ChIndex] + '^' + Line[ChIndex:]\r
                     ChIndex = Line.find('#', ChIndex + 2)\r
                 else:\r
                     ChIndex = Line.find('#', ChIndex + 1)\r
             else:\r
-                if ChIndex == 0 or Line[ChIndex-1] != '\\':\r
+                if ChIndex == 0 or Line[ChIndex - 1] != '\\':\r
                     Line = Line[0:ChIndex] + '\\' + Line[ChIndex:]\r
                     ChIndex = Line.find('#', ChIndex + 2)\r
                 else:\r
@@ -376,7 +376,7 @@ def CleanString(Line, CommentCharacter = DataType.TAB_COMMENT_SPLIT, AllowCppSty
 #\r
 # @retval Path Formatted path\r
 #\r
-def CleanString2(Line, CommentCharacter = DataType.TAB_COMMENT_SPLIT, AllowCppStyleComment=False):\r
+def CleanString2(Line, CommentCharacter=DataType.TAB_COMMENT_SPLIT, AllowCppStyleComment=False):\r
     #\r
     # remove whitespace\r
     #\r
@@ -468,7 +468,7 @@ def GetHexVerValue(VerString):
         if len(Minor) == 1:\r
             Minor += '0'\r
         DeciValue = (int(Major) << 16) + int(Minor);\r
-        return "0x%08x"%DeciValue\r
+        return "0x%08x" % DeciValue\r
     elif gHexVerPatt.match(VerString):\r
         return VerString\r
     else:\r
@@ -578,7 +578,7 @@ def PreCheck(FileName, FileContent, SupSectionTag):
         #\r
         if Line.find('$') > -1:\r
             if Line.find('$(') < 0 or Line.find(')') < 0:\r
-                EdkLogger.error("Parser", FORMAT_INVALID, Line=LineNo, File=FileName, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("Parser", FORMAT_INVALID, Line=LineNo, File=FileName, RaiseError=EdkLogger.IsRaiseError)\r
 \r
         #\r
         # Check []\r
@@ -588,7 +588,7 @@ def PreCheck(FileName, FileContent, SupSectionTag):
             # Only get one '[' or one ']'\r
             #\r
             if not (Line.find('[') > -1 and Line.find(']') > -1):\r
-                EdkLogger.error("Parser", FORMAT_INVALID, Line=LineNo, File=FileName, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("Parser", FORMAT_INVALID, Line=LineNo, File=FileName, RaiseError=EdkLogger.IsRaiseError)\r
 \r
         #\r
         # Regenerate FileContent\r
@@ -596,7 +596,7 @@ def PreCheck(FileName, FileContent, SupSectionTag):
         NewFileContent = NewFileContent + Line + '\r\n'\r
 \r
     if IsFailed:\r
-       EdkLogger.error("Parser", FORMAT_INVALID, Line=LineNo, File=FileName, RaiseError = EdkLogger.IsRaiseError)\r
+       EdkLogger.error("Parser", FORMAT_INVALID, Line=LineNo, File=FileName, RaiseError=EdkLogger.IsRaiseError)\r
 \r
     return NewFileContent\r
 \r
@@ -614,7 +614,7 @@ def PreCheck(FileName, FileContent, SupSectionTag):
 #\r
 # @retval True The file type is correct\r
 #\r
-def CheckFileType(CheckFilename, ExtName, ContainerFilename, SectionName, Line, LineNo = -1):\r
+def CheckFileType(CheckFilename, ExtName, ContainerFilename, SectionName, Line, LineNo= -1):\r
     if CheckFilename != '' and CheckFilename != None:\r
         (Root, Ext) = os.path.splitext(CheckFilename)\r
         if Ext.upper() != ExtName.upper():\r
@@ -623,7 +623,7 @@ def CheckFileType(CheckFilename, ExtName, ContainerFilename, SectionName, Line,
                 LineNo = GetLineNo(ContainerFile, Line)\r
             ErrorMsg = "Invalid %s. '%s' is found, but '%s' file is needed" % (SectionName, CheckFilename, ExtName)\r
             EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, Line=LineNo,\r
-                            File=ContainerFilename, RaiseError = EdkLogger.IsRaiseError)\r
+                            File=ContainerFilename, RaiseError=EdkLogger.IsRaiseError)\r
 \r
     return True\r
 \r
@@ -641,7 +641,7 @@ def CheckFileType(CheckFilename, ExtName, ContainerFilename, SectionName, Line,
 #\r
 # @retval The file full path if the file exists\r
 #\r
-def CheckFileExist(WorkspaceDir, CheckFilename, ContainerFilename, SectionName, Line, LineNo = -1):\r
+def CheckFileExist(WorkspaceDir, CheckFilename, ContainerFilename, SectionName, Line, LineNo= -1):\r
     CheckFile = ''\r
     if CheckFilename != '' and CheckFilename != None:\r
         CheckFile = WorkspaceFile(WorkspaceDir, CheckFilename)\r
@@ -651,7 +651,7 @@ def CheckFileExist(WorkspaceDir, CheckFilename, ContainerFilename, SectionName,
                 LineNo = GetLineNo(ContainerFile, Line)\r
             ErrorMsg = "Can't find file '%s' defined in section '%s'" % (CheckFile, SectionName)\r
             EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg,\r
-                            File=ContainerFilename, Line = LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            File=ContainerFilename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
 \r
     return CheckFile\r
 \r
@@ -665,7 +665,7 @@ def CheckFileExist(WorkspaceDir, CheckFilename, ContainerFilename, SectionName,
 # @retval int  Index of the line\r
 # @retval -1     The line is not found\r
 #\r
-def GetLineNo(FileContent, Line, IsIgnoreComment = True):\r
+def GetLineNo(FileContent, Line, IsIgnoreComment=True):\r
     LineList = FileContent.splitlines()\r
     for Index in range(len(LineList)):\r
         if LineList[Index].find(Line) > -1:\r
@@ -688,13 +688,13 @@ def GetLineNo(FileContent, Line, IsIgnoreComment = True):
 # @param File:     File which has the string\r
 # @param Format:   Correct format\r
 #\r
-def RaiseParserError(Line, Section, File, Format = '', LineNo = -1):\r
+def RaiseParserError(Line, Section, File, Format='', LineNo= -1):\r
     if LineNo == -1:\r
         LineNo = GetLineNo(open(os.path.normpath(File), 'r').read(), Line)\r
     ErrorMsg = "Invalid statement '%s' is found in section '%s'" % (Line, Section)\r
     if Format != '':\r
         Format = "Correct format is " + Format\r
-    EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=File, Line=LineNo, ExtraData=Format, RaiseError = EdkLogger.IsRaiseError)\r
+    EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=File, Line=LineNo, ExtraData=Format, RaiseError=EdkLogger.IsRaiseError)\r
 \r
 ## WorkspaceFile\r
 #\r
@@ -757,10 +757,10 @@ def RemoveBlockComment(Lines):
         # Remove comment block\r
         #\r
         if Line.find(DataType.TAB_COMMENT_EDK_START) > -1:\r
-            ReservedLine = GetSplitValueList(Line, DataType.TAB_COMMENT_EDK_START, 1)[0]\r
+            ReservedLine = GetSplitList(Line, DataType.TAB_COMMENT_EDK_START, 1)[0]\r
             IsFindBlockComment = True\r
         if Line.find(DataType.TAB_COMMENT_EDK_END) > -1:\r
-            Line = ReservedLine + GetSplitValueList(Line, DataType.TAB_COMMENT_EDK_END, 1)[1]\r
+            Line = ReservedLine + GetSplitList(Line, DataType.TAB_COMMENT_EDK_END, 1)[1]\r
             ReservedLine = ''\r
             IsFindBlockComment = False\r
         if IsFindBlockComment:\r
@@ -773,7 +773,7 @@ def RemoveBlockComment(Lines):
 #\r
 # Get String of a List\r
 #\r
-def GetStringOfList(List, Split = ' '):\r
+def GetStringOfList(List, Split=' '):\r
     if type(List) != type([]):\r
         return List\r
     Str = ''\r
@@ -797,7 +797,7 @@ def GetHelpTextList(HelpTextClassList):
 \r
 def StringToArray(String):\r
     if isinstance(String, unicode):\r
-        if len(unicode) ==0:\r
+        if len(unicode) == 0:\r
             return "{0x00, 0x00}"\r
         return "{%s, 0x00, 0x00}" % ", ".join(["0x%02x, 0x00" % ord(C) for C in String])\r
     elif String.startswith('L"'):\r
@@ -822,7 +822,7 @@ def StringArrayLength(String):
         return (len(String) - 2 + 1)\r
     else:\r
         return len(String.split()) + 1\r
-    \r
+\r
 def RemoveDupOption(OptionString, Which="/I", Against=None):\r
     OptionList = OptionString.split()\r
     ValueList = []\r
index 1e9ce34f8b24357876a66ccd7ab381a4b34007d7..cd47b805e5e77c48c600155503417ee02e1be89b 100644 (file)
@@ -59,8 +59,8 @@ class Check(object):
                         for Char in Line:\r
                             IndexOfChar += 1\r
                             if ord(Char) > 126:\r
-                                OtherMsg = "File %s has Non-ASCII char at line %s column %s" %(Record[1], IndexOfLine, IndexOfChar)\r
-                                EccGlobalData.gDb.TblReport.Insert(ERROR_GENERAL_CHECK_NON_ACSII, OtherMsg = OtherMsg, BelongsToTable = 'File', BelongsToItem = Record[0])\r
+                                OtherMsg = "File %s has Non-ASCII char at line %s column %s" % (Record[1], IndexOfLine, IndexOfChar)\r
+                                EccGlobalData.gDb.TblReport.Insert(ERROR_GENERAL_CHECK_NON_ACSII, OtherMsg=OtherMsg, BelongsToTable='File', BelongsToItem=Record[0])\r
 \r
     # C Function Layout Checking\r
     def FunctionLayoutCheck(self):\r
@@ -251,7 +251,7 @@ class Check(object):
             EdkLogger.quiet("Checking same struct ...")\r
             AllStructure = {}\r
             for IdentifierTable in EccGlobalData.gIdentifierTableList:\r
-                SqlCommand = """select ID, Name, BelongsToFile from %s where Model = %s""" %(IdentifierTable, MODEL_IDENTIFIER_STRUCTURE)\r
+                SqlCommand = """select ID, Name, BelongsToFile from %s where Model = %s""" % (IdentifierTable, MODEL_IDENTIFIER_STRUCTURE)\r
                 RecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)\r
                 for Record in RecordSet:\r
                     if Record[1] != '':\r
@@ -265,7 +265,7 @@ class Check(object):
                             if NewRecordSet != []:\r
                                 OtherMsg = "The structure name [%s] is duplicate with the one defined in %s, maybe struct NOT typedefed or the typedef new type NOT used to qualify variables" % (Record[1], NewRecordSet[0][0])\r
                             if not EccGlobalData.gException.IsException(ERROR_DECLARATION_DATA_TYPE_CHECK_SAME_STRUCTURE, Record[1]):\r
-                                EccGlobalData.gDb.TblReport.Insert(ERROR_DECLARATION_DATA_TYPE_CHECK_SAME_STRUCTURE, OtherMsg = OtherMsg, BelongsToTable = IdentifierTable, BelongsToItem = Record[0])\r
+                                EccGlobalData.gDb.TblReport.Insert(ERROR_DECLARATION_DATA_TYPE_CHECK_SAME_STRUCTURE, OtherMsg=OtherMsg, BelongsToTable=IdentifierTable, BelongsToItem=Record[0])\r
 \r
     # Check whether Union Type has a 'typedef' and the name is capital\r
     def DeclCheckUnionType(self):\r
@@ -365,7 +365,7 @@ class Check(object):
                         if Path.startswith('\\') or Path.startswith('/'):\r
                             Path = Path[1:]\r
                         if not EccGlobalData.gException.IsException(ERROR_INCLUDE_FILE_CHECK_NAME, Path):\r
-                            EccGlobalData.gDb.TblReport.Insert(ERROR_INCLUDE_FILE_CHECK_NAME, OtherMsg = "The file name for [%s] is duplicate" % Path, BelongsToTable = 'File', BelongsToItem = Item[0])\r
+                            EccGlobalData.gDb.TblReport.Insert(ERROR_INCLUDE_FILE_CHECK_NAME, OtherMsg="The file name for [%s] is duplicate" % Path, BelongsToTable='File', BelongsToItem=Item[0])\r
 \r
     # Check whether all include file contents is guarded by a #ifndef statement.\r
     def IncludeFileCheckIfndef(self):\r
@@ -526,7 +526,7 @@ class Check(object):
                             LibraryClasses[List[0]].append(Item)\r
 \r
                 if Record[2] != 'BASE' and Record[2] not in SupModType:\r
-                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_2, OtherMsg = "The Library Class '%s' does not specify its supported module types" % (List[0]), BelongsToTable = 'Inf', BelongsToItem = Record[0])\r
+                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_2, OtherMsg="The Library Class '%s' does not specify its supported module types" % (List[0]), BelongsToTable='Inf', BelongsToItem=Record[0])\r
 \r
             SqlCommand = """select A.ID, A.Value1, B.Value2 from Inf as A left join Inf as B\r
                             where A.Model = %s and B.Value1 = '%s' and B.Model = %s\r
@@ -546,10 +546,10 @@ class Check(object):
                 if Record[1] in LibraryClasses:\r
                     if Record[2] not in LibraryClasses[Record[1]] and 'BASE' not in RecordDict[Record[1]]:\r
                         if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1, Record[1]):\r
-                            EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1, OtherMsg = "The type of Library Class [%s] defined in Inf file does not match the type of the module" % (Record[1]), BelongsToTable = 'Inf', BelongsToItem = Record[0])\r
+                            EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1, OtherMsg="The type of Library Class [%s] defined in Inf file does not match the type of the module" % (Record[1]), BelongsToTable='Inf', BelongsToItem=Record[0])\r
                 else:\r
                     if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1, Record[1]):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1, OtherMsg = "The type of Library Class [%s] defined in Inf file does not match the type of the module" % (Record[1]), BelongsToTable = 'Inf', BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1, OtherMsg="The type of Library Class [%s] defined in Inf file does not match the type of the module" % (Record[1]), BelongsToTable='Inf', BelongsToItem=Record[0])\r
 \r
     # Check whether a Library Instance has been defined for all dependent library classes\r
     def MetaDataFileCheckLibraryInstanceDependent(self):\r
@@ -571,7 +571,7 @@ class Check(object):
                             IsFound = True\r
                     if not IsFound:\r
                         if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_DEPENDENT, LibraryClass[1]):\r
-                            EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_DEPENDENT, OtherMsg = "The Library Class [%s] is not specified in '%s'" % (LibraryClass[1], LibraryClass[2]), BelongsToTable = 'Dsc', BelongsToItem = LibraryClass[0])\r
+                            EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_DEPENDENT, OtherMsg="The Library Class [%s] is not specified in '%s'" % (LibraryClass[1], LibraryClass[2]), BelongsToTable='Dsc', BelongsToItem=LibraryClass[0])\r
 \r
     # Check whether the Library Instances specified by the LibraryClasses sections are listed in order of dependencies\r
     def MetaDataFileCheckLibraryInstanceOrder(self):\r
@@ -587,7 +587,7 @@ class Check(object):
             RecordSet = EccGlobalData.gDb.TblInf.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_LIBRARY_NO_USE, Record[1]):\r
-                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_NO_USE, OtherMsg = "The Library Class [%s] is not used in any platform" % (Record[1]), BelongsToTable = 'Inf', BelongsToItem = Record[0])\r
+                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_LIBRARY_NO_USE, OtherMsg="The Library Class [%s] is not used in any platform" % (Record[1]), BelongsToTable='Inf', BelongsToItem=Record[0])\r
 \r
     # Check whether an Inf file is specified in the FDF file, but not in the Dsc file, then the Inf file must be for a Binary module only\r
     def MetaDataFileCheckBinaryInfInFdf(self):\r
@@ -608,9 +608,9 @@ class Check(object):
                 SqlCommand = """select ID from Inf where Model = %s and BelongsToFile = (select ID from File where FullPath like '%s')\r
                                 """ % (MODEL_EFI_SOURCE_FILE, FilePath)\r
                 NewRecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)\r
-                if NewRecordSet!= []:\r
+                if NewRecordSet != []:\r
                     if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_BINARY_INF_IN_FDF, FilePath):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_BINARY_INF_IN_FDF, OtherMsg = "File [%s] defined in FDF file and not in DSC file must be a binary module" % (FilePath), BelongsToTable = 'Fdf', BelongsToItem = FdfID)\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_BINARY_INF_IN_FDF, OtherMsg="File [%s] defined in FDF file and not in DSC file must be a binary module" % (FilePath), BelongsToTable='Fdf', BelongsToItem=FdfID)\r
 \r
     # Check whether a PCD is set in a Dsc file or the FDF file, but not in both.\r
     def MetaDataFileCheckPcdDuplicate(self):\r
@@ -624,19 +624,19 @@ class Check(object):
                          and A.Enabled > -1\r
                          and B.Enabled > -1\r
                          group by A.ID\r
-                         """% (MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER)\r
+                         """ % (MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER)\r
             RecordSet = EccGlobalData.gDb.TblDsc.Exec(SqlCommand)\r
             for Record in RecordSet:\r
-                SqlCommand1 = """select Name from File where ID = %s""" %Record[2]\r
-                SqlCommand2 = """select Name from File where ID = %s""" %Record[5]\r
+                SqlCommand1 = """select Name from File where ID = %s""" % Record[2]\r
+                SqlCommand2 = """select Name from File where ID = %s""" % Record[5]\r
                 DscFileName = os.path.splitext(EccGlobalData.gDb.TblDsc.Exec(SqlCommand1)[0][0])[0]\r
                 FdfFileName = os.path.splitext(EccGlobalData.gDb.TblDsc.Exec(SqlCommand2)[0][0])[0]\r
                 if DscFileName != FdfFileName:\r
                     continue\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, Record[1]):\r
-                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg = "The PCD [%s] is defined in both FDF file and DSC file" % (Record[1]), BelongsToTable = 'Dsc', BelongsToItem = Record[0])\r
+                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg="The PCD [%s] is defined in both FDF file and DSC file" % (Record[1]), BelongsToTable='Dsc', BelongsToItem=Record[0])\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, Record[3]):\r
-                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg = "The PCD [%s] is defined in both FDF file and DSC file" % (Record[4]), BelongsToTable = 'Fdf', BelongsToItem = Record[3])\r
+                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg="The PCD [%s] is defined in both FDF file and DSC file" % (Record[4]), BelongsToTable='Fdf', BelongsToItem=Record[3])\r
 \r
             EdkLogger.quiet("Checking for duplicate PCDs defined in DEC files ...")\r
             SqlCommand = """\r
@@ -650,11 +650,11 @@ class Check(object):
                          and B.Enabled > -1\r
                          and A.BelongsToFile = B.BelongsToFile\r
                          group by A.ID\r
-                         """% (MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER)\r
+                         """ % (MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER)\r
             RecordSet = EccGlobalData.gDb.TblDsc.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, Record[1]):\r
-                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg = "The PCD [%s] is defined duplicated in DEC file" % (Record[1]), BelongsToTable = 'Dec', BelongsToItem = Record[0])\r
+                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg="The PCD [%s] is defined duplicated in DEC file" % (Record[1]), BelongsToTable='Dec', BelongsToItem=Record[0])\r
 \r
     # Check whether PCD settings in the FDF file can only be related to flash.\r
     def MetaDataFileCheckPcdFlash(self):\r
@@ -665,11 +665,11 @@ class Check(object):
                          where A.Model >= %s and Model < %s\r
                          and A.Enabled > -1\r
                          and A.Value2 not like '%%Flash%%'\r
-                         """% (MODEL_PCD, MODEL_META_DATA_HEADER)\r
+                         """ % (MODEL_PCD, MODEL_META_DATA_HEADER)\r
             RecordSet = EccGlobalData.gDb.TblFdf.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_FLASH, Record[1]):\r
-                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_FLASH, OtherMsg = "The PCD [%s] defined in FDF file is not related to Flash" % (Record[1]), BelongsToTable = 'Fdf', BelongsToItem = Record[0])\r
+                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_FLASH, OtherMsg="The PCD [%s] defined in FDF file is not related to Flash" % (Record[1]), BelongsToTable='Fdf', BelongsToItem=Record[0])\r
 \r
     # Check whether PCDs used in Inf files but not specified in Dsc or FDF files\r
     def MetaDataFileCheckPcdNoUse(self):\r
@@ -687,11 +687,11 @@ class Check(object):
                              (select Value2 from Fdf as C\r
                               where C.Model >= %s and C.Model < %s\r
                               and C.Enabled > -1)\r
-                         """% (MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER)\r
+                         """ % (MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER)\r
             RecordSet = EccGlobalData.gDb.TblInf.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_NO_USE, Record[1]):\r
-                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_NO_USE, OtherMsg = "The PCD [%s] defined in INF file is not specified in either DSC or FDF files" % (Record[1]), BelongsToTable = 'Inf', BelongsToItem = Record[0])\r
+                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_NO_USE, OtherMsg="The PCD [%s] defined in INF file is not specified in either DSC or FDF files" % (Record[1]), BelongsToTable='Inf', BelongsToItem=Record[0])\r
 \r
     # Check whether having duplicate guids defined for Guid/Protocol/Ppi\r
     def MetaDataFileCheckGuidDuplicate(self):\r
@@ -735,7 +735,7 @@ class Check(object):
                 Path = Path.upper().replace('\X64', '').replace('\IA32', '').replace('\EBC', '').replace('\IPF', '').replace('\ARM', '')\r
                 if Path in InfPathList:\r
                     if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, Record[2]):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, OtherMsg = "The source file [%s] is existing in module directory but it is not described in INF file." % (Record[2]), BelongsToTable = 'File', BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, OtherMsg="The source file [%s] is existing in module directory but it is not described in INF file." % (Record[2]), BelongsToTable='File', BelongsToItem=Record[0])\r
 \r
     # Check whether the PCD is correctly used in C function via its type\r
     def MetaDataFileCheckPcdType(self):\r
@@ -755,7 +755,7 @@ class Check(object):
                              select ID from File where FullPath in\r
                             (select B.Path || '\\' || A.Value1 from INF as A, File as B where A.Model = %s and A.BelongsToFile = %s\r
                              and B.ID = %s and (B.Model = %s or B.Model = %s))\r
-                             """ %(MODEL_EFI_SOURCE_FILE, BelongsToFile, BelongsToFile, MODEL_FILE_C, MODEL_FILE_H)\r
+                             """ % (MODEL_EFI_SOURCE_FILE, BelongsToFile, BelongsToFile, MODEL_FILE_C, MODEL_FILE_H)\r
                 TableSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)\r
                 for Tbl in TableSet:\r
                     TblName = 'Identifier' + str(Tbl[0])\r
@@ -768,11 +768,11 @@ class Check(object):
                         FunName = Record[0]\r
                         if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_TYPE, FunName):\r
                             if Model in [MODEL_PCD_FIXED_AT_BUILD] and not FunName.startswith('FixedPcdGet'):\r
-                                EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_TYPE, OtherMsg = "The pcd '%s' is defined as a FixPcd but now it is called by c function [%s]" % (PcdName, FunName), BelongsToTable = TblName, BelongsToItem = Record[1])\r
+                                EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_TYPE, OtherMsg="The pcd '%s' is defined as a FixPcd but now it is called by c function [%s]" % (PcdName, FunName), BelongsToTable=TblName, BelongsToItem=Record[1])\r
                             if Model in [MODEL_PCD_FEATURE_FLAG] and (not FunName.startswith('FeaturePcdGet') and not FunName.startswith('FeaturePcdSet')):\r
-                                EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_TYPE, OtherMsg = "The pcd '%s' is defined as a FeaturePcd but now it is called by c function [%s]" % (PcdName, FunName), BelongsToTable = TblName, BelongsToItem = Record[1])\r
+                                EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_TYPE, OtherMsg="The pcd '%s' is defined as a FeaturePcd but now it is called by c function [%s]" % (PcdName, FunName), BelongsToTable=TblName, BelongsToItem=Record[1])\r
                             if Model in [MODEL_PCD_PATCHABLE_IN_MODULE] and (not FunName.startswith('PatchablePcdGet') and not FunName.startswith('PatchablePcdSet')):\r
-                                EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_TYPE, OtherMsg = "The pcd '%s' is defined as a PatchablePcd but now it is called by c function [%s]" % (PcdName, FunName), BelongsToTable = TblName, BelongsToItem = Record[1])\r
+                                EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_TYPE, OtherMsg="The pcd '%s' is defined as a PatchablePcd but now it is called by c function [%s]" % (PcdName, FunName), BelongsToTable=TblName, BelongsToItem=Record[1])\r
 \r
             #ERROR_META_DATA_FILE_CHECK_PCD_TYPE\r
         pass\r
@@ -806,7 +806,7 @@ class Check(object):
                 if InfPath1 and InfPath2:\r
                     if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_GUID_DUPLICATION, InfPath1):\r
                         Msg = "The FILE_GUID of INF file [%s] is duplicated with that of %s" % (InfPath1, InfPath2)\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_GUID_DUPLICATION, OtherMsg = Msg, BelongsToTable = Table.Table, BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_GUID_DUPLICATION, OtherMsg=Msg, BelongsToTable=Table.Table, BelongsToItem=Record[0])\r
 \r
 \r
     # Check whether these is duplicate Guid/Ppi/Protocol name\r
@@ -822,6 +822,7 @@ class Check(object):
                      select A.ID, A.Value1 from %s as A, %s as B\r
                      where A.Model = %s and B.Model = %s\r
                      and A.Value1 = B.Value1 and A.ID <> B.ID\r
+                     and A.Arch = B.Arch\r
                      and A.Enabled > -1\r
                      and B.Enabled > -1\r
                      group by A.ID\r
@@ -829,7 +830,7 @@ class Check(object):
         RecordSet = Table.Exec(SqlCommand)\r
         for Record in RecordSet:\r
             if not EccGlobalData.gException.IsException(ErrorID, Record[1]):\r
-                EccGlobalData.gDb.TblReport.Insert(ErrorID, OtherMsg = "The %s name [%s] is defined more than one time" % (Name.upper(), Record[1]), BelongsToTable = Table.Table, BelongsToItem = Record[0])\r
+                EccGlobalData.gDb.TblReport.Insert(ErrorID, OtherMsg="The %s name [%s] is defined more than one time" % (Name.upper(), Record[1]), BelongsToTable=Table.Table, BelongsToItem=Record[0])\r
 \r
     # Check whether these is duplicate Guid/Ppi/Protocol value\r
     def CheckGuidProtocolPpiValue(self, ErrorID, Model):\r
@@ -845,12 +846,13 @@ class Check(object):
                      select A.ID, A.Value2 from %s as A, %s as B\r
                      where A.Model = %s and B.Model = %s\r
                      and A.Value2 = B.Value2 and A.ID <> B.ID\r
+                     and A.Arch = B.Arch\r
                      group by A.ID\r
                      """ % (Table.Table, Table.Table, Model, Model)\r
         RecordSet = Table.Exec(SqlCommand)\r
         for Record in RecordSet:\r
             if not EccGlobalData.gException.IsException(ErrorID, Record[1]):\r
-                EccGlobalData.gDb.TblReport.Insert(ErrorID, OtherMsg = "The %s value [%s] is used more than one time" % (Name.upper(), Record[1]), BelongsToTable = Table.Table, BelongsToItem = Record[0])\r
+                EccGlobalData.gDb.TblReport.Insert(ErrorID, OtherMsg="The %s value [%s] is used more than one time" % (Name.upper(), Record[1]), BelongsToTable=Table.Table, BelongsToItem=Record[0])\r
 \r
     # Naming Convention Check\r
     def NamingConventionCheck(self):\r
@@ -883,7 +885,7 @@ class Check(object):
         if EccGlobalData.gConfig.NamingConventionCheckDefineStatement == '1' or EccGlobalData.gConfig.NamingConventionCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
             EdkLogger.quiet("Checking naming covention of #define statement ...")\r
 \r
-            SqlCommand = """select ID, Value from %s where Model = %s""" %(FileTable, MODEL_IDENTIFIER_MACRO_DEFINE)\r
+            SqlCommand = """select ID, Value from %s where Model = %s""" % (FileTable, MODEL_IDENTIFIER_MACRO_DEFINE)\r
             RecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 Name = Record[1].strip().split()[1]\r
@@ -891,14 +893,14 @@ class Check(object):
                     Name = Name[0:Name.find('(')]\r
                 if Name.upper() != Name:\r
                     if not EccGlobalData.gException.IsException(ERROR_NAMING_CONVENTION_CHECK_DEFINE_STATEMENT, Name):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_DEFINE_STATEMENT, OtherMsg = "The #define name [%s] does not follow the rules" % (Name), BelongsToTable = FileTable, BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_DEFINE_STATEMENT, OtherMsg="The #define name [%s] does not follow the rules" % (Name), BelongsToTable=FileTable, BelongsToItem=Record[0])\r
 \r
     # Check whether only capital letters are used for typedef declarations\r
     def NamingConventionCheckTypedefStatement(self, FileTable):\r
         if EccGlobalData.gConfig.NamingConventionCheckTypedefStatement == '1' or EccGlobalData.gConfig.NamingConventionCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
             EdkLogger.quiet("Checking naming covention of #typedef statement ...")\r
 \r
-            SqlCommand = """select ID, Name from %s where Model = %s""" %(FileTable, MODEL_IDENTIFIER_TYPEDEF)\r
+            SqlCommand = """select ID, Name from %s where Model = %s""" % (FileTable, MODEL_IDENTIFIER_TYPEDEF)\r
             RecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 Name = Record[1].strip()\r
@@ -911,20 +913,20 @@ class Check(object):
                     Name = Name.replace('*', '').strip()\r
                     if Name.upper() != Name:\r
                         if not EccGlobalData.gException.IsException(ERROR_NAMING_CONVENTION_CHECK_TYPEDEF_STATEMENT, Name):\r
-                            EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_TYPEDEF_STATEMENT, OtherMsg = "The #typedef name [%s] does not follow the rules" % (Name), BelongsToTable = FileTable, BelongsToItem = Record[0])\r
+                            EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_TYPEDEF_STATEMENT, OtherMsg="The #typedef name [%s] does not follow the rules" % (Name), BelongsToTable=FileTable, BelongsToItem=Record[0])\r
 \r
     # Check whether the #ifndef at the start of an include file uses both prefix and postfix underscore characters, '_'.\r
     def NamingConventionCheckIfndefStatement(self, FileTable):\r
         if EccGlobalData.gConfig.NamingConventionCheckTypedefStatement == '1' or EccGlobalData.gConfig.NamingConventionCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
             EdkLogger.quiet("Checking naming covention of #ifndef statement ...")\r
 \r
-            SqlCommand = """select ID, Value from %s where Model = %s""" %(FileTable, MODEL_IDENTIFIER_MACRO_IFNDEF)\r
+            SqlCommand = """select ID, Value from %s where Model = %s""" % (FileTable, MODEL_IDENTIFIER_MACRO_IFNDEF)\r
             RecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 Name = Record[1].replace('#ifndef', '').strip()\r
                 if Name[0] != '_' or Name[-1] != '_':\r
                     if not EccGlobalData.gException.IsException(ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT, Name):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT, OtherMsg = "The #ifndef name [%s] does not follow the rules" % (Name), BelongsToTable = FileTable, BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT, OtherMsg="The #ifndef name [%s] does not follow the rules" % (Name), BelongsToTable=FileTable, BelongsToItem=Record[0])\r
 \r
     # Rule for path name, variable name and function name\r
     # 1. First character should be upper case\r
@@ -940,7 +942,7 @@ class Check(object):
             for Record in RecordSet:\r
                 if not Pattern.match(Record[1]):\r
                     if not EccGlobalData.gException.IsException(ERROR_NAMING_CONVENTION_CHECK_PATH_NAME, Record[1]):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_PATH_NAME, OtherMsg = "The file path [%s] does not follow the rules" % (Record[1]), BelongsToTable = 'File', BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_PATH_NAME, OtherMsg="The file path [%s] does not follow the rules" % (Record[1]), BelongsToTable='File', BelongsToItem=Record[0])\r
 \r
     # Rule for path name, variable name and function name\r
     # 1. First character should be upper case\r
@@ -953,12 +955,12 @@ class Check(object):
             EdkLogger.quiet("Checking naming covention of variable name ...")\r
             Pattern = re.compile(r'^[A-Zgm]+\S*[a-z]\S*$')\r
 \r
-            SqlCommand = """select ID, Name from %s where Model = %s""" %(FileTable, MODEL_IDENTIFIER_VARIABLE)\r
+            SqlCommand = """select ID, Name from %s where Model = %s""" % (FileTable, MODEL_IDENTIFIER_VARIABLE)\r
             RecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 if not Pattern.match(Record[1]):\r
                     if not EccGlobalData.gException.IsException(ERROR_NAMING_CONVENTION_CHECK_VARIABLE_NAME, Record[1]):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_VARIABLE_NAME, OtherMsg = "The variable name [%s] does not follow the rules" % (Record[1]), BelongsToTable = FileTable, BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_VARIABLE_NAME, OtherMsg="The variable name [%s] does not follow the rules" % (Record[1]), BelongsToTable=FileTable, BelongsToItem=Record[0])\r
 \r
     # Rule for path name, variable name and function name\r
     # 1. First character should be upper case\r
@@ -974,20 +976,20 @@ class Check(object):
             for Record in RecordSet:\r
                 if not Pattern.match(Record[1]):\r
                     if not EccGlobalData.gException.IsException(ERROR_NAMING_CONVENTION_CHECK_FUNCTION_NAME, Record[1]):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_FUNCTION_NAME, OtherMsg = "The function name [%s] does not follow the rules" % (Record[1]), BelongsToTable = 'Function', BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_FUNCTION_NAME, OtherMsg="The function name [%s] does not follow the rules" % (Record[1]), BelongsToTable='Function', BelongsToItem=Record[0])\r
 \r
     # Check whether NO use short variable name with single character\r
     def NamingConventionCheckSingleCharacterVariable(self, FileTable):\r
         if EccGlobalData.gConfig.NamingConventionCheckSingleCharacterVariable == '1' or EccGlobalData.gConfig.NamingConventionCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
             EdkLogger.quiet("Checking naming covention of single character variable name ...")\r
 \r
-            SqlCommand = """select ID, Name from %s where Model = %s""" %(FileTable, MODEL_IDENTIFIER_VARIABLE)\r
+            SqlCommand = """select ID, Name from %s where Model = %s""" % (FileTable, MODEL_IDENTIFIER_VARIABLE)\r
             RecordSet = EccGlobalData.gDb.TblFile.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                 Variable = Record[1].replace('*', '')\r
                 if len(Variable) == 1:\r
                     if not EccGlobalData.gException.IsException(ERROR_NAMING_CONVENTION_CHECK_SINGLE_CHARACTER_VARIABLE, Record[1]):\r
-                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_SINGLE_CHARACTER_VARIABLE, OtherMsg = "The variable name [%s] does not follow the rules" % (Record[1]), BelongsToTable = FileTable, BelongsToItem = Record[0])\r
+                        EccGlobalData.gDb.TblReport.Insert(ERROR_NAMING_CONVENTION_CHECK_SINGLE_CHARACTER_VARIABLE, OtherMsg="The variable name [%s] does not follow the rules" % (Record[1]), BelongsToTable=FileTable, BelongsToItem=Record[0])\r
 \r
 ##\r
 #\r
index deea6fb947c87364cbad4a328f751b4353bbd528..5ad00cfbb00e431fcf38e90f42b7b70377478254 100644 (file)
@@ -50,10 +50,10 @@ def PreProcess(Filename, MergeMultipleLines = True, LineNo = -1):
         Line = Line.strip()\r
         # Remove comment block\r
         if Line.find(TAB_COMMENT_EDK_START) > -1:\r
-            ReservedLine = GetSplitValueList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
+            ReservedLine = GetSplitList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
             IsFindBlockComment = True\r
         if Line.find(TAB_COMMENT_EDK_END) > -1:\r
-            Line = ReservedLine + GetSplitValueList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
+            Line = ReservedLine + GetSplitList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
             ReservedLine = ''\r
             IsFindBlockComment = False\r
         if IsFindBlockComment:\r
index e3a018c66c8ffadcadd711dbafe1dfccb1a3fba9..358215d66206dfb620616f65b3464f9c09885ee4 100644 (file)
@@ -1118,6 +1118,34 @@ class FdfParser:
     def SetFileBufferPos(self, Pos):\r
         (self.CurrentLineNumber, self.CurrentOffsetWithinLine) = Pos\r
 \r
+    ## Preprocess() method\r
+    #\r
+    #   Preprocess comment, conditional directive, include directive, replace macro.\r
+    #   Exception will be raised if syntax error found\r
+    #\r
+    #   @param  self        The object pointer\r
+    #\r
+    def Preprocess(self):\r
+        self.__StringToList()\r
+        self.PreprocessFile()\r
+        self.PreprocessIncludeFile()\r
+        self.__StringToList()\r
+        self.PreprocessFile()\r
+        self.PreprocessConditionalStatement()\r
+        self.__StringToList()\r
+        for Pos in self.__WipeOffArea:\r
+            self.__ReplaceFragment(Pos[0], Pos[1])\r
+        self.Profile.FileLinesList = ["".join(list) for list in self.Profile.FileLinesList]\r
+\r
+        while self.__GetDefines():\r
+            pass\r
+        \r
+        Index = 0\r
+        while Index < len(self.Profile.FileLinesList):\r
+            FileLineTuple = GetRealFileLine(self.FileName, Index + 1)\r
+            self.Profile.FileLinesList[Index] = self.__ReplaceMacros(self.Profile.FileLinesList[Index], FileLineTuple[0], FileLineTuple[1])\r
+            Index += 1\r
+\r
     ## ParseFile() method\r
     #\r
     #   Parse the file profile buffer to extract fd, fv ... information\r
@@ -1128,26 +1156,7 @@ class FdfParser:
     def ParseFile(self):\r
 \r
         try:\r
-            self.__StringToList()\r
-            self.PreprocessFile()\r
-            self.PreprocessIncludeFile()\r
-            self.__StringToList()\r
-            self.PreprocessFile()\r
-            self.PreprocessConditionalStatement()\r
-            self.__StringToList()\r
-            for Pos in self.__WipeOffArea:\r
-                self.__ReplaceFragment(Pos[0], Pos[1])\r
-            self.Profile.FileLinesList = ["".join(list) for list in self.Profile.FileLinesList]\r
-\r
-            while self.__GetDefines():\r
-                pass\r
-            \r
-            Index = 0\r
-            while Index < len(self.Profile.FileLinesList):\r
-                FileLineTuple = GetRealFileLine(self.FileName, Index + 1)\r
-                self.Profile.FileLinesList[Index] = self.__ReplaceMacros(self.Profile.FileLinesList[Index], FileLineTuple[0], FileLineTuple[1])\r
-                Index += 1\r
-\r
+            self.Preprocess()\r
             while self.__GetFd():\r
                 pass\r
 \r
index 47301aebb0b2b1ef5a07707dce5e1c534688e798..526b2e66b4e01f89264eec1397c4531026a55a5d 100644 (file)
@@ -660,10 +660,10 @@ def RemoveBlockComment(Lines):
         # Remove comment block\r
         #\r
         if Line.find(DataType.TAB_COMMENT_EDK1_START) > -1:\r
-            ReservedLine = GetSplitValueList(Line, DataType.TAB_COMMENT_EDK1_START, 1)[0]\r
+            ReservedLine = GetSplitList(Line, DataType.TAB_COMMENT_EDK1_START, 1)[0]\r
             IsFindBlockComment = True\r
         if Line.find(DataType.TAB_COMMENT_EDK1_END) > -1:\r
-            Line = ReservedLine + GetSplitValueList(Line, DataType.TAB_COMMENT_EDK1_END, 1)[1]\r
+            Line = ReservedLine + GetSplitList(Line, DataType.TAB_COMMENT_EDK1_END, 1)[1]\r
             ReservedLine = ''\r
             IsFindBlockComment = False\r
         if IsFindBlockComment:\r
index 7645ba202b6ad34842d7cc8d4cd56ad339bddb4c..c7883e6980451c95c624d8649e647526c5f40ac6 100644 (file)
@@ -450,6 +450,7 @@ class InfDefSection(InfDefSectionOptionRomInfo):
             if len(ValueList) == 2:\r
                 Type = ValueList[1]\r
                 TypeList = GetSplitValueList(Type, ' ')\r
+                TypeList = [Type for Type in TypeList if Type != '']\r
                 for Item in TypeList:\r
                     if Item not in DT.MODULE_LIST:\r
                         ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID%(Item),\r