+from __future__ import absolute_import\r
## @file\r
# process FV generation\r
#\r
#\r
import Common.LongFilePathOs as os\r
import subprocess\r
-import StringIO\r
+from io import BytesIO\r
from struct import *\r
\r
-import Ffs\r
-import AprioriSection\r
-import FfsFileStatement\r
-from GenFdsGlobalVariable import GenFdsGlobalVariable\r
-from GenFds import GenFds\r
+from . import Ffs\r
+from . import AprioriSection\r
+from . import FfsFileStatement\r
+from .GenFdsGlobalVariable import GenFdsGlobalVariable\r
from CommonDataClass.FdfClass import FvClassObject\r
from Common.Misc import SaveFileOnChange, PackGUID\r
from Common.LongFilePathSupport import CopyLongFilePath\r
self.FvForceRebase = None\r
self.FvRegionInFD = None\r
self.UsedSizeEnable = False\r
- \r
+\r
## AddToBuffer()\r
#\r
# Generate Fv and add it to the Buffer\r
#\r
def AddToBuffer (self, Buffer, BaseAddress=None, BlockSize= None, BlockNum=None, ErasePloarity='1', VtfDict=None, MacroDict = {}, Flag=False) :\r
\r
+ from .GenFds import GenFds\r
if BaseAddress is None and self.UiFvName.upper() + 'fv' in GenFds.ImageBinDict:\r
return GenFds.ImageBinDict[self.UiFvName.upper() + 'fv']\r
- \r
+\r
#\r
# Check whether FV in Capsule is in FD flash region.\r
# If yes, return error. Doesn't support FV in Capsule image is also in FD flash region.\r
GenFdsGlobalVariable.InfLogger( "\nGenerating %s FV" %self.UiFvName)\r
GenFdsGlobalVariable.LargeFileInFvFlags.append(False)\r
FFSGuid = None\r
- \r
+\r
if self.FvBaseAddress is not None:\r
BaseAddress = self.FvBaseAddress\r
if not Flag:\r
#\r
self.InfFileName = os.path.join(GenFdsGlobalVariable.FvDir,\r
self.UiFvName + '.inf')\r
- self.FvInfFile = StringIO.StringIO()\r
+ self.FvInfFile = BytesIO()\r
\r
#\r
# Add [Options]\r
if not self._GetBlockSize():\r
#set default block size is 1\r
self.FvInfFile.writelines("EFI_BLOCK_SIZE = 0x1" + TAB_LINE_BREAK)\r
- \r
+\r
for BlockSize in self.BlockSizeList :\r
if BlockSize[0] is not None:\r
self.FvInfFile.writelines("EFI_BLOCK_SIZE = " + \\r
self.FvAlignment.strip() + \\r
" = TRUE" + \\r
TAB_LINE_BREAK)\r
- \r
+\r
#\r
# Generate FV extension header file\r
#\r
TotalSize += (Size + 4)\r
FvExtFile.seek(0)\r
Buffer += pack('HH', (Size + 4), int(self.FvExtEntryTypeValue[Index], 16))\r
- Buffer += FvExtFile.read() \r
+ Buffer += FvExtFile.read()\r
FvExtFile.close()\r
if self.FvExtEntryType[Index] == 'DATA':\r
ByteList = self.FvExtEntryData[Index].split(',')\r
#\r
if TotalSize > 0:\r
FvExtHeaderFileName = os.path.join(GenFdsGlobalVariable.FvDir, self.UiFvName + '.ext')\r
- FvExtHeaderFile = StringIO.StringIO()\r
+ FvExtHeaderFile = BytesIO()\r
FvExtHeaderFile.write(Buffer)\r
Changed = SaveFileOnChange(FvExtHeaderFileName, FvExtHeaderFile.getvalue(), True)\r
FvExtHeaderFile.close()\r
FvExtHeaderFileName + \\r
TAB_LINE_BREAK)\r
\r
- \r
+\r
#\r
# Add [Files]\r
#\r