# Routines for generating Pcd Database\r
#\r
# Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution. The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
from __future__ import absolute_import\r
from io import BytesIO\r
import copy\r
from struct import unpack\r
from Common.DataType import *\r
+from Common import GlobalData\r
+from Common import EdkLogger\r
+import Common.LongFilePathOs as os\r
\r
DATABASE_VERSION = 7\r
\r
# Variable length, need to calculate one by one\r
#\r
assert(Index < len(self.RawDataList))\r
- for ItemIndex in xrange(Index):\r
+ for ItemIndex in range(Index):\r
Offset += len(self.RawDataList[ItemIndex])\r
else:\r
Offset = self.ItemSize * Index\r
\r
PackStr = PACK_CODE_BY_SIZE[self.ItemSize]\r
\r
- Buffer = ''\r
+ Buffer = bytearray()\r
for Datas in self.RawDataList:\r
if type(Datas) in (list, tuple):\r
for Data in Datas:\r
DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
\r
def PackData(self):\r
- Buffer = ''\r
+ Buffer = bytearray()\r
PackStr = "=LHH"\r
for Datas in self.RawDataList:\r
Buffer += pack(PackStr,\r
Offset = 0\r
if self.ItemSize == 0:\r
#\r
- # Variable length, need to calculte one by one\r
+ # Variable length, need to calculate one by one\r
# The only variable table is stringtable, it is not Composite item, should not reach here\r
#\r
assert(False)\r
else:\r
assert(Index < len(self.RawDataList))\r
- for ItemIndex in xrange(Index):\r
+ for ItemIndex in range(Index):\r
Offset += len(self.RawDataList[ItemIndex]) * self.ItemSize\r
\r
return Offset\r
def PackData(self):\r
PackStr = PACK_CODE_BY_SIZE[self.ItemSize]\r
\r
- Buffer = ''\r
+ Buffer = bytearray()\r
for DataList in self.RawDataList:\r
for Data in DataList:\r
if type(Data) in (list, tuple):\r
\r
def PackData(self):\r
PackStr = "=LLHHLHH"\r
- Buffer = ''\r
+ Buffer = bytearray()\r
for DataList in self.RawDataList:\r
for Data in DataList:\r
Buffer += pack(PackStr,\r
# Variable length, need to calculate one by one\r
#\r
assert(Index < len(self.RawDataList))\r
- for ItemIndex in xrange(Index):\r
+ for ItemIndex in range(Index):\r
Offset += len(self.RawDataList[ItemIndex])\r
else:\r
for innerIndex in range(Index):\r
\r
def PackData(self):\r
PackStr = "=LL"\r
- Buffer = ''\r
+ Buffer = bytearray()\r
for Data in self.RawDataList:\r
Buffer += pack(PackStr,\r
GetIntegerValue(Data[0]),\r
return length * self.ItemSize\r
def PackData(self):\r
PackStr = "=H"\r
- Buffer = ''\r
+ Buffer = bytearray()\r
for Data in self.RawDataList:\r
Buffer += pack(PackStr,\r
GetIntegerValue(Data[0]))\r
assert(len(RawDataList) == len(LenList))\r
DataList = []\r
# adjust DataList according to the LenList\r
- for Index in xrange(len(RawDataList)):\r
+ for Index in range(len(RawDataList)):\r
Len = LenList[Index]\r
RawDatas = RawDataList[Index]\r
assert(Len >= len(RawDatas))\r
ActualDatas = []\r
- for i in xrange(len(RawDatas)):\r
+ for i in range(len(RawDatas)):\r
ActualDatas.append(RawDatas[i])\r
- for i in xrange(len(RawDatas), Len):\r
+ for i in range(len(RawDatas), Len):\r
ActualDatas.append(0)\r
DataList.append(ActualDatas)\r
self.LenList = LenList\r
Offset = 0\r
\r
assert(Index < len(self.LenList))\r
- for ItemIndex in xrange(Index):\r
+ for ItemIndex in range(Index):\r
Offset += self.LenList[ItemIndex]\r
\r
return Offset\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
Dict['STRING_TABLE_DB_VALUE'] = [StringArrayToList(x) for x in Dict['STRING_TABLE_VALUE']]\r
\r
StringTableValue = Dict['STRING_TABLE_DB_VALUE']\r
- # when calcute the offset, should use StringTableLen instead of StringTableValue, as string maxium len may be different with actual len\r
+ # when calcute the offset, should use StringTableLen instead of StringTableValue, as string maximum len may be different with actual len\r
StringTableLen = Dict['STRING_TABLE_LENGTH']\r
DbStringTableLen = DbStringItemList(0, RawDataList = StringTableValue, LenList = StringTableLen)\r
\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
# Get offset of SkuId table in the database\r
SkuIdTableOffset = FixedHeaderLen\r
- for DbIndex in xrange(len(DbTotal)):\r
+ for DbIndex in range(len(DbTotal)):\r
if DbTotal[DbIndex] is SkuidValue:\r
break\r
SkuIdTableOffset += DbItemTotal[DbIndex].GetListSize()\r
for (LocalTokenNumberTableIndex, (Offset, Table)) in enumerate(LocalTokenNumberTable):\r
DbIndex = 0\r
DbOffset = FixedHeaderLen\r
- for DbIndex in xrange(len(DbTotal)):\r
+ for DbIndex in range(len(DbTotal)):\r
if DbTotal[DbIndex] is Table:\r
DbOffset += DbItemTotal[DbIndex].GetInterOffset(Offset)\r
break\r
(VariableHeadGuidIndex, VariableHeadStringIndex, SKUVariableOffset, VariableOffset, VariableRefTable, VariableAttribute) = VariableEntryPerSku[:]\r
DbIndex = 0\r
DbOffset = FixedHeaderLen\r
- for DbIndex in xrange(len(DbTotal)):\r
+ for DbIndex in range(len(DbTotal)):\r
if DbTotal[DbIndex] is VariableRefTable:\r
DbOffset += DbItemTotal[DbIndex].GetInterOffset(VariableOffset)\r
break\r
\r
# calculate various table offset now\r
DbTotalLength = FixedHeaderLen\r
- for DbIndex in xrange(len(DbItemTotal)):\r
+ for DbIndex in range(len(DbItemTotal)):\r
if DbItemTotal[DbIndex] is DbLocalTokenNumberTable:\r
LocalTokenNumberTableOffset = DbTotalLength\r
elif DbItemTotal[DbIndex] is DbExMapTable:\r
Index = 0\r
for Item in DbItemTotal:\r
Index +=1\r
- b = Item.PackData()\r
- Buffer += b\r
+ packdata = Item.PackData()\r
+ for i in range(len(packdata)):\r
+ Buffer += packdata[i:i + 1]\r
if Index == InitTableNum:\r
if len(Buffer) % 8:\r
for num in range(8 - len(Buffer) % 8):\r
totallenbuff = pack("=L", totallen)\r
newbuffer = databasebuff[:32]\r
for i in range(4):\r
- newbuffer += totallenbuff[i]\r
+ newbuffer += totallenbuff[i:i+1]\r
for i in range(36, totallen):\r
- newbuffer += databasebuff[i]\r
+ newbuffer += databasebuff[i:i+1]\r
\r
return newbuffer\r
\r
for skuname, skuid in DynamicPcdSet_Sku:\r
AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer, VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdSet_Sku[(skuname, skuid)], Phase)\r
final_data = ()\r
- for item in PcdDbBuffer:\r
- final_data += unpack("B", item)\r
+ for item in range(len(PcdDbBuffer)):\r
+ final_data += unpack("B", PcdDbBuffer[item:item+1])\r
PcdDBData[(skuname, skuid)] = (PcdDbBuffer, final_data)\r
PcdDriverAutoGenData[(skuname, skuid)] = (AdditionalAutoGenH, AdditionalAutoGenC)\r
VarCheckTableData[(skuname, skuid)] = VarCheckTab\r
else:\r
AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer, VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform, {}, Phase)\r
final_data = ()\r
- for item in PcdDbBuffer:\r
- final_data += unpack("B", item)\r
+ for item in range(len(PcdDbBuffer)):\r
+ final_data += unpack("B", PcdDbBuffer[item:item + 1])\r
PcdDBData[(TAB_DEFAULT, "0")] = (PcdDbBuffer, final_data)\r
\r
return AdditionalAutoGenH, AdditionalAutoGenC, CreatePcdDataBase(PcdDBData)\r
'SKUID_TABLE_EMPTY' : 'TRUE',\r
'DATABASE_EMPTY' : 'TRUE',\r
'EXMAP_TABLE_EMPTY' : 'TRUE',\r
- 'PCD_DATABASE_UNINIT_EMPTY' : ' UINT8 dummy; /* PCD_DATABASE_UNINIT is emptry */',\r
+ 'PCD_DATABASE_UNINIT_EMPTY' : ' UINT8 dummy; /* PCD_DATABASE_UNINIT is empty */',\r
'SYSTEM_SKU_ID' : ' SKU_ID SystemSkuId;',\r
'SYSTEM_SKU_ID_VALUE' : '0U'\r
}\r