#\r
from StringIO import StringIO\r
from Common.Misc import *\r
-from Common.String import StringToArray\r
+from Common.StringUtils import StringToArray\r
from struct import pack\r
from ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB_CONTAINER\r
from ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB\r
#endif\r
""")\r
\r
-## PackGuid\r
-#\r
-# Pack the GUID value in C structure format into data array\r
-#\r
-# @param GuidStructureValue: The GUID value in C structure format\r
-#\r
-# @retval Buffer: a data array contains the Guid\r
-#\r
-def PackGuid(GuidStructureValue):\r
- GuidString = GuidStructureStringToGuidString(GuidStructureValue)\r
- Guid = GuidString.split('-')\r
- Buffer = pack('=LHHBBBBBBBB', \r
- int(Guid[0], 16), \r
- int(Guid[1], 16), \r
- int(Guid[2], 16), \r
- int(Guid[3][-4:-2], 16), \r
- int(Guid[3][-2:], 16),\r
- int(Guid[4][-12:-10], 16),\r
- int(Guid[4][-10:-8], 16),\r
- int(Guid[4][-8:-6], 16),\r
- int(Guid[4][-6:-4], 16),\r
- int(Guid[4][-4:-2], 16),\r
- int(Guid[4][-2:], 16)\r
- )\r
- return Buffer\r
-\r
## DbItemList\r
#\r
# The class holds the Pcd database items. ItemSize if not zero should match the item datum type in the C structure. \r
return self.ListSize\r
\r
def PackData(self):\r
- if self.ItemSize == 8:\r
- PackStr = "=Q"\r
- elif self.ItemSize == 4:\r
- PackStr = "=L"\r
- elif self.ItemSize == 2:\r
- PackStr = "=H"\r
- elif self.ItemSize == 1:\r
- PackStr = "=B"\r
- elif self.ItemSize == 0:\r
- PackStr = "=B"\r
- elif self.ItemSize == 16:\r
- # pack Guid\r
- PackStr = ''\r
- else:\r
- # should not reach here\r
- assert(False)\r
+ ## PackGuid\r
+ #\r
+ # Pack the GUID value in C structure format into data array\r
+ #\r
+ # @param GuidStructureValue: The GUID value in C structure format\r
+ #\r
+ # @retval Buffer: a data array contains the Guid\r
+ #\r
+ def PackGuid(GuidStructureValue):\r
+ GuidString = GuidStructureStringToGuidString(GuidStructureValue)\r
+ return PackGUID(GuidString.split('-'))\r
+\r
+ PackStr = PACK_CODE_BY_SIZE[self.ItemSize]\r
\r
Buffer = ''\r
for Datas in self.RawDataList:\r
return self.ListSize\r
\r
def PackData(self):\r
- if self.ItemSize == 8:\r
- PackStr = "=Q"\r
- elif self.ItemSize == 4:\r
- PackStr = "=L"\r
- elif self.ItemSize == 2:\r
- PackStr = "=H"\r
- elif self.ItemSize == 1:\r
- PackStr = "=B"\r
- elif self.ItemSize == 0:\r
- PackStr = "=B"\r
- else:\r
- assert(False)\r
+ PackStr = PACK_CODE_BY_SIZE[self.ItemSize]\r
\r
Buffer = ''\r
for DataList in self.RawDataList:\r
# Construct the database buffer\r
Guid = "{0x3c7d193c, 0x682c, 0x4c14, 0xa6, 0x8f, 0x55, 0x2d, 0xea, 0x4f, 0x43, 0x7e}"\r
Guid = StringArrayToList(Guid)\r
- Buffer = pack('=LHHBBBBBBBB', \r
- Guid[0], \r
- Guid[1], \r
- Guid[2], \r
- Guid[3], \r
- Guid[4], \r
- Guid[5],\r
- Guid[6],\r
- Guid[7],\r
- Guid[8],\r
- Guid[9],\r
- Guid[10],\r
- )\r
+ Buffer = PackByteFormatGUID(Guid)\r
\r
b = pack("=L", DATABASE_VERSION)\r
Buffer += b\r
TokenSpaceGuid = GuidStructureStringToGuidValueName(TokenSpaceGuidStructure)\r
if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
if TokenSpaceGuid not in GuidList:\r
- GuidList += [TokenSpaceGuid]\r
+ GuidList.append(TokenSpaceGuid)\r
Dict['GUID_STRUCTURE'].append(TokenSpaceGuidStructure)\r
NumberOfExTokens += 1\r
\r
Pcd.TokenTypeList = ['PCD_DATUM_TYPE_' + Pcd.DatumType]\r
\r
if len(Pcd.SkuInfoList) > 1:\r
-# Pcd.TokenTypeList += ['PCD_TYPE_SKU_ENABLED']\r
NumberOfSkuEnabledPcd += 1\r
\r
SkuIdIndex = 1 \r
else:\r
EdkLogger.error("build", PCD_VALIDATION_INFO_ERROR,\r
"The PCD '%s.%s' Validation information defined in DEC file has incorrect format." % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName))\r
- Pcd.TokenTypeList += ['PCD_TYPE_HII']\r
+ Pcd.TokenTypeList.append('PCD_TYPE_HII')\r
Pcd.InitString = 'INIT'\r
# Store all variable names of one HII PCD under different SKU to stringTable\r
# and calculate the VariableHeadStringIndex\r
# store VariableGuid to GuidTable and get the VariableHeadGuidIndex\r
\r
if VariableGuid not in GuidList:\r
- GuidList += [VariableGuid]\r
+ GuidList.append(VariableGuid)\r
Dict['GUID_STRUCTURE'].append(VariableGuidStructure)\r
VariableHeadGuidIndex = GuidList.index(VariableGuid)\r
\r
VariableDbValueList.append([VariableHeadGuidIndex, VariableHeadStringIndex, Sku.VariableOffset, VariableOffset, VariableRefTable, Sku.VariableAttribute])\r
\r
elif Sku.VpdOffset != '':\r
- Pcd.TokenTypeList += ['PCD_TYPE_VPD']\r
+ Pcd.TokenTypeList.append('PCD_TYPE_VPD')\r
Pcd.InitString = 'INIT'\r
VpdHeadOffsetList.append(str(Sku.VpdOffset) + 'U')\r
VpdDbOffsetList.append(Sku.VpdOffset)\r
continue\r
\r
if Pcd.DatumType == TAB_VOID:\r
- Pcd.TokenTypeList += ['PCD_TYPE_STRING']\r
+ Pcd.TokenTypeList.append('PCD_TYPE_STRING')\r
Pcd.InitString = 'INIT'\r
if Sku.HiiDefaultValue != '' and Sku.DefaultValue == '':\r
Sku.DefaultValue = Sku.HiiDefaultValue\r
StringTableSize += (StringTabLen)\r
else:\r
if "PCD_TYPE_HII" not in Pcd.TokenTypeList:\r
- Pcd.TokenTypeList += ['PCD_TYPE_DATA']\r
+ Pcd.TokenTypeList.append('PCD_TYPE_DATA')\r
if Sku.DefaultValue == 'TRUE':\r
Pcd.InitString = 'INIT'\r
else:\r