for BuildData in PGen.BuildDatabase._CACHE_.values():\r
if BuildData.Arch != Arch:\r
continue\r
- for key in BuildData.Pcds:\r
+ for key in list(BuildData.Pcds.keys()):\r
for SinglePcd in GlobalData.MixedPcd:\r
if (BuildData.Pcds[key].TokenCName, BuildData.Pcds[key].TokenSpaceGuidCName) == SinglePcd:\r
for item in GlobalData.MixedPcd[SinglePcd]:\r
def _CheckAllPcdsTokenValueConflict(self):\r
for Pa in self.AutoGenObjectList:\r
for Package in Pa.PackageList:\r
- PcdList = Package.Pcds.values()\r
+ PcdList = list(Package.Pcds.values())\r
PcdList.sort(key=lambda x: int(x.TokenValue, 0))\r
Count = 0\r
while (Count < len(PcdList) - 1) :\r
Count += SameTokenValuePcdListCount\r
Count += 1\r
\r
- PcdList = Package.Pcds.values()\r
+ PcdList = list(Package.Pcds.values())\r
PcdList.sort(key=lambda x: "%s.%s" % (x.TokenSpaceGuidCName, x.TokenCName))\r
Count = 0\r
while (Count < len(PcdList) - 1) :\r
if os.path.exists(VpdMapFilePath):\r
OrgVpdFile.Read(VpdMapFilePath)\r
PcdItems = OrgVpdFile.GetOffset(PcdNvStoreDfBuffer[0])\r
- NvStoreOffset = PcdItems.values()[0].strip() if PcdItems else '0'\r
+ NvStoreOffset = list(PcdItems.values())[0].strip() if PcdItems else '0'\r
else:\r
EdkLogger.error("build", FILE_READ_FAILURE, "Can not find VPD map file %s to fix up VPD offset." % VpdMapFilePath)\r
\r
FdfModuleList.append(os.path.normpath(InfName))\r
for M in self._MaList:\r
# F is the Module for which M is the module autogen\r
- for PcdFromModule in M.ModulePcdList + M.LibraryPcdList:\r
+ for PcdFromModule in list(M.ModulePcdList) + list(M.LibraryPcdList):\r
# make sure that the "VOID*" kind of datum has MaxDatumSize set\r
if PcdFromModule.DatumType == TAB_VOID and not PcdFromModule.MaxDatumSize:\r
NoDatumTypePcdList.add("%s.%s [%s]" % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, M.MetaFile))\r
if (self.Workspace.ArchList[-1] == self.Arch):\r
for Pcd in self._DynamicPcdList:\r
# just pick the a value to determine whether is unicode string type\r
- Sku = Pcd.SkuInfoList.values()[0]\r
+ Sku = list(Pcd.SkuInfoList.values())[0]\r
Sku.VpdOffset = Sku.VpdOffset.strip()\r
\r
if Pcd.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
if not FoundFlag :\r
# just pick the a value to determine whether is unicode string type\r
SkuValueMap = {}\r
- SkuObjList = DscPcdEntry.SkuInfoList.items()\r
+ SkuObjList = list(DscPcdEntry.SkuInfoList.items())\r
DefaultSku = DscPcdEntry.SkuInfoList.get(TAB_DEFAULT)\r
if DefaultSku:\r
defaultindex = SkuObjList.index((TAB_DEFAULT, DefaultSku))\r
DscPcdEntry.TokenSpaceGuidValue = eachDec.Guids[DecPcdEntry.TokenSpaceGuidCName]\r
# Only fix the value while no value provided in DSC file.\r
if not Sku.DefaultValue:\r
- DscPcdEntry.SkuInfoList[DscPcdEntry.SkuInfoList.keys()[0]].DefaultValue = DecPcdEntry.DefaultValue\r
+ DscPcdEntry.SkuInfoList[list(DscPcdEntry.SkuInfoList.keys())[0]].DefaultValue = DecPcdEntry.DefaultValue\r
\r
if DscPcdEntry not in self._DynamicPcdList:\r
self._DynamicPcdList.append(DscPcdEntry)\r
# Delete the DynamicPcdList At the last time enter into this function\r
for Pcd in self._DynamicPcdList:\r
# just pick the a value to determine whether is unicode string type\r
- Sku = Pcd.SkuInfoList.values()[0]\r
+ Sku = list(Pcd.SkuInfoList.values())[0]\r
Sku.VpdOffset = Sku.VpdOffset.strip()\r
\r
if Pcd.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
Pcd.MaxDatumSize = str(len(Value.split(',')))\r
else:\r
Pcd.MaxDatumSize = str(len(Value) - 1)\r
- return Pcds.values()\r
+ return list(Pcds.values())\r
\r
## Resolve library names to library modules\r
#\r
# Use the highest priority value.\r
#\r
if (len(OverrideList) >= 2):\r
- KeyList = OverrideList.keys()\r
+ KeyList = list(OverrideList.keys())\r
for Index in range(len(KeyList)):\r
NowKey = KeyList[Index]\r
Target1, ToolChain1, Arch1, CommandType1, Attr1 = NowKey.split("_")\r
if Attr == TAB_TOD_DEFINES_BUILDRULEORDER:\r
BuildRuleOrder = Options[Tool][Attr]\r
\r
- AllTools = set(ModuleOptions.keys() + PlatformOptions.keys() +\r
- PlatformModuleOptions.keys() + ModuleTypeOptions.keys() +\r
- self.ToolDefinition.keys())\r
+ AllTools = set(list(ModuleOptions.keys()) + list(PlatformOptions.keys()) +\r
+ list(PlatformModuleOptions.keys()) + list(ModuleTypeOptions.keys()) +\r
+ list(self.ToolDefinition.keys()))\r
BuildOptions = defaultdict(lambda: defaultdict(str))\r
for Tool in AllTools:\r
for Options in [self.ToolDefinition, ModuleOptions, PlatformOptions, ModuleTypeOptions, PlatformModuleOptions]:\r
return None\r
MapFileName = os.path.join(self.OutputDir, self.Name + ".map")\r
EfiFileName = os.path.join(self.OutputDir, self.Name + ".efi")\r
- VfrUniOffsetList = GetVariableOffset(MapFileName, EfiFileName, VfrUniBaseName.values())\r
+ VfrUniOffsetList = GetVariableOffset(MapFileName, EfiFileName, list(VfrUniBaseName.values()))\r
if not VfrUniOffsetList:\r
return None\r
\r
Packages = []\r
PcdCheckList = []\r
PcdTokenSpaceList = []\r
- for Pcd in self.ModulePcdList + self.LibraryPcdList:\r
+ for Pcd in list(self.ModulePcdList) + list(self.LibraryPcdList):\r
if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE:\r
PatchablePcds.append(Pcd)\r
PcdCheckList.append((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, TAB_PCDS_PATCHABLE_IN_MODULE))\r
if Info.IsLibrary:\r
PcdList = Info.LibraryPcdList\r
else:\r
- PcdList = Info.ModulePcdList + Info.LibraryPcdList\r
+ PcdList = list(Info.ModulePcdList) + list(Info.LibraryPcdList)\r
PcdExCNameTest = 0\r
for PcdModule in PcdList:\r
if PcdModule.Type in PCD_DYNAMIC_EX_TYPE_SET and Pcd.TokenCName == PcdModule.TokenCName:\r
AutoGenH.Append('#define %s(Value) LibPcdSetEx%sS(&%s, %s, (Value))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
elif Pcd.Type in PCD_DYNAMIC_TYPE_SET:\r
PcdCNameTest = 0\r
- for PcdModule in Info.LibraryPcdList + Info.ModulePcdList:\r
+ for PcdModule in list(Info.LibraryPcdList) + list(Info.ModulePcdList):\r
if PcdModule.Type in PCD_DYNAMIC_TYPE_SET and Pcd.TokenCName == PcdModule.TokenCName:\r
PcdCNameTest += 1\r
# get out early once we found > 1...\r
if Guid in Info.Module.GetGuidsUsedByPcd():\r
continue\r
GuidMacros.append('#define %s %s' % (Guid, Info.Module.Guids[Guid]))\r
- for Guid, Value in Info.Module.Protocols.items() + Info.Module.Ppis.items():\r
+ for Guid, Value in list(Info.Module.Protocols.items()) + list(Info.Module.Ppis.items()):\r
GuidMacros.append('#define %s %s' % (Guid, Value))\r
# supports FixedAtBuild and FeaturePcd usage in VFR file\r
if Info.VfrFileList and Info.ModulePcdList:\r
"separator" : Separator,\r
"module_tool_definitions" : ToolsDef,\r
\r
- "shell_command_code" : self._SHELL_CMD_[self._FileType].keys(),\r
- "shell_command" : self._SHELL_CMD_[self._FileType].values(),\r
+ "shell_command_code" : list(self._SHELL_CMD_[self._FileType].keys()),\r
+ "shell_command" : list(self._SHELL_CMD_[self._FileType].values()),\r
\r
"module_entry_point" : ModuleEntryPoint,\r
"image_entry_point" : ImageEntryPoint,\r
"separator" : Separator,\r
"module_tool_definitions" : ToolsDef,\r
\r
- "shell_command_code" : self._SHELL_CMD_[self._FileType].keys(),\r
- "shell_command" : self._SHELL_CMD_[self._FileType].values(),\r
+ "shell_command_code" : list(self._SHELL_CMD_[self._FileType].keys()),\r
+ "shell_command" : list(self._SHELL_CMD_[self._FileType].values()),\r
\r
"create_directory_command" : self.GetCreateDirectoryCommand(self.IntermediateDirectoryList),\r
"custom_makefile_content" : CustomMakefile\r
\r
"toolchain_tag" : MyAgo.ToolChain,\r
"build_target" : MyAgo.BuildTarget,\r
- "shell_command_code" : self._SHELL_CMD_[self._FileType].keys(),\r
- "shell_command" : self._SHELL_CMD_[self._FileType].values(),\r
+ "shell_command_code" : list(self._SHELL_CMD_[self._FileType].keys()),\r
+ "shell_command" : list(self._SHELL_CMD_[self._FileType].values()),\r
"build_architecture_list" : MyAgo.Arch,\r
"architecture" : MyAgo.Arch,\r
"separator" : Separator,\r
\r
"toolchain_tag" : MyAgo.ToolChain,\r
"build_target" : MyAgo.BuildTarget,\r
- "shell_command_code" : self._SHELL_CMD_[self._FileType].keys(),\r
- "shell_command" : self._SHELL_CMD_[self._FileType].values(),\r
+ "shell_command_code" : list(self._SHELL_CMD_[self._FileType].keys()),\r
+ "shell_command" : list(self._SHELL_CMD_[self._FileType].values()),\r
'arch' : list(MyAgo.ArchList),\r
"build_architecture_list" : ','.join(MyAgo.ArchList),\r
"separator" : Separator,\r
DbVardefValueUint32 = DbItemList(4, RawDataList = VardefValueUint32)\r
VpdHeadValue = Dict['VPD_DB_VALUE']\r
DbVpdHeadValue = DbComItemList(4, RawDataList = VpdHeadValue)\r
- ExMapTable = zip(Dict['EXMAPPING_TABLE_EXTOKEN'], Dict['EXMAPPING_TABLE_LOCAL_TOKEN'], Dict['EXMAPPING_TABLE_GUID_INDEX'])\r
+ ExMapTable = list(zip(Dict['EXMAPPING_TABLE_EXTOKEN'], Dict['EXMAPPING_TABLE_LOCAL_TOKEN'], Dict['EXMAPPING_TABLE_GUID_INDEX']))\r
DbExMapTable = DbExMapTblItemList(8, RawDataList = ExMapTable)\r
LocalTokenNumberTable = Dict['LOCAL_TOKEN_NUMBER_DB_VALUE']\r
DbLocalTokenNumberTable = DbItemList(4, RawDataList = LocalTokenNumberTable)\r
PcdNameOffsetTable = Dict['PCD_NAME_OFFSET']\r
DbPcdNameOffsetTable = DbItemList(4, RawDataList = PcdNameOffsetTable)\r
\r
- SizeTableValue = zip(Dict['SIZE_TABLE_MAXIMUM_LENGTH'], Dict['SIZE_TABLE_CURRENT_LENGTH'])\r
+ SizeTableValue = list(zip(Dict['SIZE_TABLE_MAXIMUM_LENGTH'], Dict['SIZE_TABLE_CURRENT_LENGTH']))\r
DbSizeTableValue = DbSizeTableItemList(2, RawDataList = SizeTableValue)\r
InitValueUint16 = Dict['INIT_DB_VALUE_UINT16']\r
DbInitValueUint16 = DbComItemList(2, RawDataList = InitValueUint16)\r
#\r
# support ISO 639-2 codes in .UNI files of EDK Shell\r
#\r
- Uni = UniFileClassObject(sorted (UniFilList), True, IncludePathList)\r
+ Uni = UniFileClassObject(sorted (UniFilList, key=lambda x: x.File), True, IncludePathList)\r
else:\r
- Uni = UniFileClassObject(sorted (UniFilList), IsCompatibleMode, IncludePathList)\r
+ Uni = UniFileClassObject(sorted (UniFilList, key=lambda x: x.File), IsCompatibleMode, IncludePathList)\r
else:\r
EdkLogger.error("UnicodeStringGather", AUTOGEN_ERROR, 'No unicode files given')\r
\r
import array\r
import shutil\r
from struct import pack\r
-from UserDict import IterableUserDict\r
-from UserList import UserList\r
+from collections import UserDict as IterableUserDict\r
+from collections import OrderedDict\r
\r
from Common import EdkLogger as EdkLogger\r
from Common import GlobalData as GlobalData\r
#\r
def GuidValue(CName, PackageList, Inffile = None):\r
for P in PackageList:\r
- GuidKeys = P.Guids.keys()\r
+ GuidKeys = list(P.Guids.keys())\r
if Inffile and P._PrivateGuids:\r
if not Inffile.startswith(P.MetaFile.Dir):\r
GuidKeys = [x for x in P.Guids if x not in P._PrivateGuids]\r
#\r
def ProtocolValue(CName, PackageList, Inffile = None):\r
for P in PackageList:\r
- ProtocolKeys = P.Protocols.keys()\r
+ ProtocolKeys = list(P.Protocols.keys())\r
if Inffile and P._PrivateProtocols:\r
if not Inffile.startswith(P.MetaFile.Dir):\r
ProtocolKeys = [x for x in P.Protocols if x not in P._PrivateProtocols]\r
#\r
def PpiValue(CName, PackageList, Inffile = None):\r
for P in PackageList:\r
- PpiKeys = P.Ppis.keys()\r
+ PpiKeys = list(P.Ppis.keys())\r
if Inffile and P._PrivatePpis:\r
if not Inffile.startswith(P.MetaFile.Dir):\r
PpiKeys = [x for x in P.Ppis if x not in P._PrivatePpis]\r
ExtraData = "SKU-ID [%s] value %s exceeds the max value of UINT64"\r
% (SkuName, SkuId))\r
\r
- self.AvailableSkuIds = sdict()\r
+ self.AvailableSkuIds = OrderedDict()\r
self.SkuIdSet = []\r
self.SkuIdNumberSet = []\r
self.SkuData = SkuIds\r
self.SkuIdSet = ['DEFAULT']\r
self.SkuIdNumberSet = ['0U']\r
elif SkuIdentifier == 'ALL':\r
- self.SkuIdSet = SkuIds.keys()\r
+ self.SkuIdSet = list(SkuIds.keys())\r
self.SkuIdNumberSet = [num[0].strip() + 'U' for num in SkuIds.values()]\r
else:\r
r = SkuIdentifier.split('|')\r
# @retval list() A list for splitted string\r
#\r
def GetSplitList(String, SplitStr=DataType.TAB_VALUE_SPLIT, MaxSplit= -1):\r
- return map(lambda l: l.strip(), String.split(SplitStr, MaxSplit))\r
+ return list(map(lambda l: l.strip(), String.split(SplitStr, MaxSplit)))\r
\r
## MergeArches\r
#\r
#\r
LineList[1] = CleanString(LineList[1], CommentCharacter)\r
if ValueSplitFlag:\r
- Value = map(string.strip, LineList[1].split(ValueSplitCharacter))\r
+ Value = list(map(string.strip, LineList[1].split(ValueSplitCharacter)))\r
else:\r
Value = CleanString(LineList[1], CommentCharacter).splitlines()\r
\r
# @param StringList: A list for strings to be converted\r
#\r
def ConvertToSqlString(StringList):\r
- return map(lambda s: s.replace("'", "''"), StringList)\r
+ return list(map(lambda s: s.replace("'", "''"), StringList))\r
\r
## Convert To Sql String\r
#\r
def __GetBuildOutputMapFileVfrUniInfo(self, VfrUniBaseName):\r
MapFileName = os.path.join(self.EfiOutputPath, self.BaseName + ".map")\r
EfiFileName = os.path.join(self.EfiOutputPath, self.BaseName + ".efi")\r
- return GetVariableOffset(MapFileName, EfiFileName, VfrUniBaseName.values())\r
+ return GetVariableOffset(MapFileName, EfiFileName, list(VfrUniBaseName.values()))\r
\r
## __GenUniVfrOffsetFile() method\r
#\r
elif TAB_DEFAULT in pcd.SkuInfoList and TAB_COMMON in pcd.SkuInfoList:\r
del pcd.SkuInfoList[TAB_COMMON]\r
\r
- map(self.FilterSkuSettings, [Pcds[pcdkey] for pcdkey in Pcds if Pcds[pcdkey].Type in DynamicPcdType])\r
+ list(map(self.FilterSkuSettings, [Pcds[pcdkey] for pcdkey in Pcds if Pcds[pcdkey].Type in DynamicPcdType]))\r
return Pcds\r
\r
## Retrieve non-dynamic PCD settings\r
elif TAB_DEFAULT in pcd.SkuInfoList and TAB_COMMON in pcd.SkuInfoList:\r
del pcd.SkuInfoList[TAB_COMMON]\r
\r
- map(self.FilterSkuSettings, Pcds.values())\r
+ list(map(self.FilterSkuSettings, Pcds.values()))\r
\r
return Pcds\r
\r
PcdObj.SkuInfoList[skuname].SkuId = skuid\r
PcdObj.SkuInfoList[skuname].SkuIdName = skuname\r
if PcdType in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]:\r
- PcdObj.DefaultValue = PcdObj.SkuInfoList.values()[0].HiiDefaultValue if self.SkuIdMgr.SkuUsageType == self.SkuIdMgr.SINGLE else PcdObj.SkuInfoList[TAB_DEFAULT].HiiDefaultValue\r
+ PcdObj.DefaultValue = list(PcdObj.SkuInfoList.values())[0].HiiDefaultValue if self.SkuIdMgr.SkuUsageType == self.SkuIdMgr.SINGLE else PcdObj.SkuInfoList[TAB_DEFAULT].HiiDefaultValue\r
Pcds[PcdCName, TokenSpaceGuid]= PcdObj\r
return Pcds\r
## Retrieve dynamic HII PCD settings\r
invalidpcd = ",".join(invalidhii)\r
EdkLogger.error('build', PCD_VARIABLE_INFO_ERROR, Message='The same HII PCD must map to the same EFI variable for all SKUs', File=self.MetaFile, ExtraData=invalidpcd)\r
\r
- map(self.FilterSkuSettings, Pcds.values())\r
+ list(map(self.FilterSkuSettings, Pcds.values()))\r
\r
return Pcds\r
\r
Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName] = {}\r
Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName][TAB_DEFAULT_STORES_DEFAULT] = InitialValue\r
for pcd in Pcds.values():\r
- SkuInfoObj = pcd.SkuInfoList.values()[0]\r
+ SkuInfoObj = list(pcd.SkuInfoList.values())[0]\r
pcdDecObject = self._DecPcds[pcd.TokenCName, pcd.TokenSpaceGuidCName]\r
pcd.DatumType = pcdDecObject.DatumType\r
# Only fix the value while no value provided in DSC file.\r
del pcd.SkuInfoList[TAB_COMMON]\r
\r
\r
- map(self.FilterSkuSettings, Pcds.values())\r
+ list(map(self.FilterSkuSettings, Pcds.values()))\r
return Pcds\r
\r
## Add external modules\r
\r
## Convert to SQL required string format\r
def ConvertToSqlString(StringList):\r
- return map(lambda s: "'" + s.replace("'", "''") + "'", StringList)\r
+ return list(map(lambda s: "'" + s.replace("'", "''") + "'", StringList))\r
\r
## TableFile\r
#\r
# Collect all module used PCD set: module INF referenced directly or indirectly.\r
# It also saves module INF default values of them in case they exist.\r
#\r
- for Pcd in M.ModulePcdList + M.LibraryPcdList:\r
+ for Pcd in list(M.ModulePcdList) + list(M.LibraryPcdList):\r
self.ModulePcdSet.setdefault((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, Pcd.Type), (Pcd.InfDefaultValue, Pcd.DefaultValue))\r
\r
self.LibraryReport = None\r
#\r
# Collect module override PCDs\r
#\r
- for ModulePcd in Module.M.ModulePcdList + Module.M.LibraryPcdList:\r
+ for ModulePcd in list(Module.M.ModulePcdList) + list(Module.M.LibraryPcdList):\r
TokenCName = ModulePcd.TokenCName\r
TokenSpaceGuid = ModulePcd.TokenSpaceGuidCName\r
ModuleDefault = ModulePcd.DefaultValue\r
if not Pcd.SkuInfoList:\r
OverrideValues = Pcd.SkuOverrideValues\r
if OverrideValues:\r
- Keys = OverrideValues.keys()\r
+ Keys = list(OverrideValues.keys())\r
Data = OverrideValues[Keys[0]]\r
- Struct = Data.values()[0]\r
+ Struct = list(Data.values())[0]\r
DscOverride = self.ParseStruct(Struct)\r
else:\r
SkuList = sorted(Pcd.SkuInfoList.keys())\r
else:\r
OverrideValues = Pcd.SkuOverrideValues[Sku]\r
if OverrideValues:\r
- Keys = OverrideValues.keys()\r
+ Keys = list(OverrideValues.keys())\r
OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])\r
DscOverride = self.ParseStruct(OverrideFieldStruct)\r
if DscOverride:\r
if IsStructure:\r
OverrideValues = Pcd.SkuOverrideValues\r
if OverrideValues:\r
- Keys = OverrideValues.keys()\r
+ Keys = list(OverrideValues.keys())\r
Data = OverrideValues[Keys[0]]\r
- Struct = Data.values()[0]\r
+ Struct = list(Data.values())[0]\r
OverrideFieldStruct = self.OverrideFieldValue(Pcd, Struct)\r
self.PrintStructureInfo(File, OverrideFieldStruct)\r
self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, DecDefaultValue)\r
if IsStructure:\r
OverrideValues = Pcd.SkuOverrideValues[Sku]\r
if OverrideValues:\r
- Keys = OverrideValues.keys()\r
+ Keys = list(OverrideValues.keys())\r
OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])\r
self.PrintStructureInfo(File, OverrideFieldStruct)\r
self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, DecDefaultValue)\r
\r
# get all pending tasks\r
BuildTask._PendingQueueLock.acquire()\r
- BuildObjectList = BuildTask._PendingQueue.keys()\r
+ BuildObjectList = list(BuildTask._PendingQueue.keys())\r
#\r
# check if their dependency is resolved, and if true, move them\r
# into ready queue\r