]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/BPDG/GenVpd.py
Revert BaseTools: PYTHON3 migration
[mirror_edk2.git] / BaseTools / Source / Python / BPDG / GenVpd.py
index fc47a4b2520f3d05aa437499f75dbee308bc3e49..d7852d29eed09df7b016ab7fadc8aff991973146 100644 (file)
@@ -13,6 +13,7 @@
 #  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
@@ -185,7 +186,7 @@ class PcdEntry:
             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
@@ -211,7 +212,7 @@ class PcdEntry:
 \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
@@ -237,7 +238,7 @@ class PcdEntry:
 \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
@@ -272,7 +273,7 @@ class PcdEntry:
                                 "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
@@ -305,7 +306,7 @@ class GenVPD :
         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
@@ -430,7 +431,7 @@ class GenVPD :
                             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
@@ -508,7 +509,7 @@ class GenVPD :
             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
@@ -572,7 +573,7 @@ class GenVPD :
                         # 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
@@ -626,7 +627,7 @@ class GenVPD :
 \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
@@ -650,13 +651,13 @@ class GenVPD :
             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
@@ -674,7 +675,8 @@ class GenVPD :
             # 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