##\r
# Import Modules\r
#\r
+from __future__ import print_function\r
from optparse import OptionParser\r
import sys\r
import Common.LongFilePathOs as os\r
from Workspace.BuildClassObject import PcdClassObject\r
import RuleComplexFile\r
from EfiSection import EfiSection\r
-import StringIO\r
+from io import BytesIO\r
import Common.TargetTxtClassObject as TargetTxtClassObject\r
import Common.ToolDefClassObject as ToolDefClassObject\r
from Common.DataType import *\r
import Common.GlobalData as GlobalData\r
from Common import EdkLogger\r
-from Common.String import *\r
+from Common.StringUtils import *\r
from Common.Misc import DirCache, PathClass\r
from Common.Misc import SaveFileOnChange\r
from Common.Misc import ClearDuplicatedInf\r
for Fd in FdfParserObj.Profile.FdDict:\r
FdObj = FdfParserObj.Profile.FdDict[Fd]\r
for RegionObj in FdObj.RegionList:\r
- if RegionObj.RegionType != 'FV':\r
+ if RegionObj.RegionType != BINARY_FILE_TYPE_FV:\r
continue\r
for RegionData in RegionObj.RegionDataList:\r
if FvObj.UiFvName.upper() == RegionData.upper():\r
"""Display FV space info."""\r
GenFds.DisplayFvSpaceInfo(FdfParserObj)\r
\r
- except FdfParser.Warning, X:\r
+ except FdfParser.Warning as X:\r
EdkLogger.error(X.ToolName, FORMAT_INVALID, File=X.FileName, Line=X.LineNumber, ExtraData=X.Message, RaiseError=False)\r
ReturnCode = FORMAT_INVALID\r
- except FatalError, X:\r
+ except FatalError as X:\r
if Options.debug is not None:\r
import traceback\r
EdkLogger.quiet(traceback.format_exc())\r
KeyList[1] + \\r
'_' + \\r
KeyList[2]\r
- if Key in KeyStringList and KeyList[4] == 'GUID':\r
+ if Key in KeyStringList and KeyList[4] == TAB_GUID:\r
ToolPathKey = Key + '_' + KeyList[3] + '_PATH'\r
ToolOptionKey = Key + '_' + KeyList[3] + '_FLAGS'\r
ToolPath = ToolDefinition.get(ToolPathKey)\r
if BuildOption:\r
ToolList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH]\r
for Index in range(2, -1, -1):\r
- for Key in dict(BuildOption):\r
+ for Key in list(BuildOption.keys()):\r
List = Key.split('_')\r
if List[Index] == '*':\r
for String in ToolDb[ToolList[Index]]:\r
if NameGuid == BuildOption[Op]:\r
KeyList = Op.split('_')\r
Key = KeyList[0] + '_' + KeyList[1] +'_' + KeyList[2]\r
- if Key in KeyStringList and KeyList[4] == 'GUID':\r
+ if Key in KeyStringList and KeyList[4] == TAB_GUID:\r
ToolPathKey = Key + '_' + KeyList[3] + '_PATH'\r
ToolOptionKey = Key + '_' + KeyList[3] + '_FLAGS'\r
if ToolPathKey in BuildOption:\r
if GenFds.OnlyGenerateThisFv is not None and GenFds.OnlyGenerateThisFv.upper() in GenFdsGlobalVariable.FdfParser.Profile.FvDict:\r
FvObj = GenFdsGlobalVariable.FdfParser.Profile.FvDict[GenFds.OnlyGenerateThisFv.upper()]\r
if FvObj is not None:\r
- Buffer = StringIO.StringIO()\r
+ Buffer = BytesIO()\r
FvObj.AddToBuffer(Buffer)\r
Buffer.close()\r
return\r
elif GenFds.OnlyGenerateThisFv is None:\r
for FvObj in GenFdsGlobalVariable.FdfParser.Profile.FvDict.values():\r
- Buffer = StringIO.StringIO('')\r
+ Buffer = BytesIO('')\r
FvObj.AddToBuffer(Buffer)\r
Buffer.close()\r
\r
if FdObj is None:\r
for ElementFd in GenFdsGlobalVariable.FdfParser.Profile.FdDict.values():\r
for ElementRegion in ElementFd.RegionList:\r
- if ElementRegion.RegionType == 'FV':\r
+ if ElementRegion.RegionType == BINARY_FILE_TYPE_FV:\r
for ElementRegionData in ElementRegion.RegionDataList:\r
if ElementRegionData is not None and ElementRegionData.upper() == FvObj.UiFvName:\r
if FvObj.BlockSizeList != []:\r
return DefaultBlockSize\r
else:\r
for ElementRegion in FdObj.RegionList:\r
- if ElementRegion.RegionType == 'FV':\r
+ if ElementRegion.RegionType == BINARY_FILE_TYPE_FV:\r
for ElementRegionData in ElementRegion.RegionDataList:\r
if ElementRegionData is not None and ElementRegionData.upper() == FvObj.UiFvName:\r
if FvObj.BlockSizeList != []:\r
ModuleDict = BuildDb.BuildObject[DscFile, TAB_COMMON, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag].Modules\r
for Key in ModuleDict:\r
ModuleObj = BuildDb.BuildObject[Key, TAB_COMMON, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag]\r
- print ModuleObj.BaseName + ' ' + ModuleObj.ModuleType\r
+ print(ModuleObj.BaseName + ' ' + ModuleObj.ModuleType)\r
\r
def GenerateGuidXRefFile(BuildDb, ArchList, FdfParserObj):\r
GuidXRefFileName = os.path.join(GenFdsGlobalVariable.FvDir, "Guid.xref")\r
- GuidXRefFile = StringIO.StringIO('')\r
+ GuidXRefFile = BytesIO('')\r
GuidDict = {}\r
ModuleList = []\r
FileGuidList = []\r
length = F.tell()\r
F.seek(4)\r
TmpStr = unpack('%dh' % ((length - 4) / 2), F.read())\r
- Name = ''.join([chr(c) for c in TmpStr[:-1]])\r
+ Name = ''.join(chr(c) for c in TmpStr[:-1])\r
else:\r
FileList = []\r
if 'fv.sec.txt' in MatchDict:\r
if not Name:\r
continue\r
\r
- Name = ' '.join(Name) if type(Name) == type([]) else Name\r
+ Name = ' '.join(Name) if isinstance(Name, type([])) else Name\r
GuidXRefFile.write("%s %s\n" %(FileStatementGuid, Name))\r
\r
# Append GUIDs, Protocols, and PPIs to the Xref file\r