# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
\r
+from __future__ import absolute_import\r
import Common.LongFilePathOs as os\r
from io import BytesIO\r
from . import StringTable as st\r
EdkLogger.error("BPDG", BuildToolError.RESOURCE_OVERFLOW,\r
"PCD value string %s is exceed to size %d(File: %s Line: %s)" % (ValueString, Size, self.FileName, self.Lineno))\r
try:\r
- self.PcdValue = pack('%ds' % Size, bytes(ValueString, 'utf-8'))\r
+ self.PcdValue = pack('%ds' % Size, ValueString)\r
except:\r
EdkLogger.error("BPDG", BuildToolError.FORMAT_INVALID,\r
"Invalid size or value for PCD %s to pack(File: %s Line: %s)." % (self.PcdCName, self.FileName, self.Lineno))\r
\r
ReturnArray = array.array('B')\r
\r
- for Index in range(len(ValueList)):\r
+ for Index in xrange(len(ValueList)):\r
Value = None\r
if ValueList[Index].lower().startswith('0x'):\r
# translate hex value\r
\r
ReturnArray.append(Value)\r
\r
- for Index in range(len(ValueList), Size):\r
+ for Index in xrange(len(ValueList), Size):\r
ReturnArray.append(0)\r
\r
self.PcdValue = ReturnArray.tolist()\r
"Invalid unicode character %s in unicode string %s(File: %s Line: %s)" % \\r
(Value, UnicodeString, self.FileName, self.Lineno))\r
\r
- for Index in range(len(UnicodeString) * 2, Size):\r
+ for Index in xrange(len(UnicodeString) * 2, Size):\r
ReturnArray.append(0)\r
\r
self.PcdValue = ReturnArray.tolist()\r
self.PcdFixedOffsetSizeList = []\r
self.PcdUnknownOffsetList = []\r
try:\r
- fInputfile = open(InputFileName, "r")\r
+ fInputfile = open(InputFileName, "r", 0)\r
try:\r
self.FileLinesList = fInputfile.readlines()\r
except:\r
EdkLogger.error("BPDG", BuildToolError.FORMAT_INVALID, 'The offset value of PCD %s should be %s-byte aligned.' % (PCD.PcdCName, Alignment))\r
else:\r
if PCD.PcdOccupySize % Alignment != 0:\r
- PCD.PcdOccupySize = (PCD.PcdOccupySize // Alignment + 1) * Alignment\r
+ PCD.PcdOccupySize = (PCD.PcdOccupySize / Alignment + 1) * Alignment\r
\r
PackSize = PCD.PcdOccupySize\r
if PCD._IsBoolean(PCD.PcdValue, PCD.PcdSize):\r
NowOffset = 0\r
for Pcd in self.PcdUnknownOffsetList :\r
if NowOffset % Pcd.Alignment != 0:\r
- NowOffset = (NowOffset // Pcd.Alignment + 1) * Pcd.Alignment\r
+ NowOffset = (NowOffset/ Pcd.Alignment + 1) * Pcd.Alignment\r
Pcd.PcdBinOffset = NowOffset\r
Pcd.PcdOffset = str(hex(Pcd.PcdBinOffset))\r
NowOffset += Pcd.PcdOccupySize\r
# Not been fixed\r
if eachUnfixedPcd.PcdOffset == '*' :\r
if LastOffset % eachUnfixedPcd.Alignment != 0:\r
- LastOffset = (LastOffset // eachUnfixedPcd.Alignment + 1) * eachUnfixedPcd.Alignment\r
+ LastOffset = (LastOffset / eachUnfixedPcd.Alignment + 1) * eachUnfixedPcd.Alignment\r
# The offset un-fixed pcd can write into this free space\r
if needFixPcdSize <= (NowOffset - LastOffset) :\r
# Change the offset value of un-fixed pcd\r
\r
NeedFixPcd.PcdBinOffset = LastPcd.PcdBinOffset + LastPcd.PcdOccupySize\r
if NeedFixPcd.PcdBinOffset % NeedFixPcd.Alignment != 0:\r
- NeedFixPcd.PcdBinOffset = (NeedFixPcd.PcdBinOffset // NeedFixPcd.Alignment + 1) * NeedFixPcd.Alignment\r
+ NeedFixPcd.PcdBinOffset = (NeedFixPcd.PcdBinOffset / NeedFixPcd.Alignment + 1) * NeedFixPcd.Alignment\r
\r
NeedFixPcd.PcdOffset = str(hex(NeedFixPcd.PcdBinOffset))\r
\r
EdkLogger.error("BPDG", BuildToolError.FILE_OPEN_FAILURE, "File open failed for %s" % self.VpdFileName, None)\r
\r
try :\r
- fMapFile = open(MapFileName, "w")\r
+ fMapFile = open(MapFileName, "w", 0)\r
except:\r
# Open failed\r
EdkLogger.error("BPDG", BuildToolError.FILE_OPEN_FAILURE, "File open failed for %s" % self.MapFileName, None)\r
\r
# Use a instance of BytesIO to cache data\r
- fStringIO = BytesIO()\r
+ fStringIO = BytesIO('')\r
\r
# Write the header of map file.\r
try :\r
# Write Vpd binary file\r
fStringIO.seek (eachPcd.PcdBinOffset)\r
if isinstance(eachPcd.PcdValue, list):\r
- fStringIO.write(bytes(eachPcd.PcdValue))\r
+ ValueList = [chr(Item) for Item in eachPcd.PcdValue]\r
+ fStringIO.write(''.join(ValueList))\r
else:\r
fStringIO.write (eachPcd.PcdValue)\r
\r