]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/Fv.py
BaseTools: Use absolute import in GenFds
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / Fv.py
index c6721b8828ee13e4ea7102569337e9b2caff5cef..097f51f39e272063abb34163134452c77c66ea77 100644 (file)
@@ -1,3 +1,4 @@
+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
 from Common.LongFilePathSupport import OpenLongFilePath as open\r
 from Common.DataType import *\r
 \r
-T_CHAR_LF = '\n'\r
 FV_UI_EXT_ENTY_GUID = 'A67DF1FA-8DE8-4E98-AF09-4BDF2EFFBC7C'\r
 \r
 ## generate FV\r
@@ -54,7 +53,7 @@ class FV (FvClassObject):
         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
@@ -71,9 +70,10 @@ class FV (FvClassObject):
     #\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
@@ -93,7 +93,7 @@ class FV (FvClassObject):
             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
@@ -112,7 +112,7 @@ class FV (FvClassObject):
             if not Flag:\r
                 self.FvInfFile.writelines("EFI_FILE_NAME = " + \\r
                                             FileName          + \\r
-                                            T_CHAR_LF)\r
+                                            TAB_LINE_BREAK)\r
 \r
         # Process Modules in FfsList\r
         for FfsFile in self.FfsList :\r
@@ -126,7 +126,7 @@ class FV (FvClassObject):
             if not Flag:\r
                 self.FvInfFile.writelines("EFI_FILE_NAME = " + \\r
                                             FileName          + \\r
-                                            T_CHAR_LF)\r
+                                            TAB_LINE_BREAK)\r
         if not Flag:\r
             SaveFileOnChange(self.InfFileName, self.FvInfFile.getvalue(), False)\r
             self.FvInfFile.close()\r
@@ -266,41 +266,41 @@ class FV (FvClassObject):
         #\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
         #\r
-        self.FvInfFile.writelines("[options]" + T_CHAR_LF)\r
+        self.FvInfFile.writelines("[options]" + TAB_LINE_BREAK)\r
         if BaseAddress is not None :\r
             self.FvInfFile.writelines("EFI_BASE_ADDRESS = " + \\r
                                        BaseAddress          + \\r
-                                       T_CHAR_LF)\r
+                                       TAB_LINE_BREAK)\r
 \r
         if BlockSize is not None:\r
             self.FvInfFile.writelines("EFI_BLOCK_SIZE = " + \\r
                                       '0x%X' %BlockSize    + \\r
-                                      T_CHAR_LF)\r
+                                      TAB_LINE_BREAK)\r
             if BlockNum is not None:\r
                 self.FvInfFile.writelines("EFI_NUM_BLOCKS   = "  + \\r
                                       ' 0x%X' %BlockNum    + \\r
-                                      T_CHAR_LF)\r
+                                      TAB_LINE_BREAK)\r
         else:\r
             if self.BlockSizeList == []:\r
                 if not self._GetBlockSize():\r
                     #set default block size is 1\r
-                    self.FvInfFile.writelines("EFI_BLOCK_SIZE  = 0x1" + T_CHAR_LF)\r
-            \r
+                    self.FvInfFile.writelines("EFI_BLOCK_SIZE  = 0x1" + TAB_LINE_BREAK)\r
+\r
             for BlockSize in self.BlockSizeList :\r
                 if BlockSize[0] is not None:\r
                     self.FvInfFile.writelines("EFI_BLOCK_SIZE  = "  + \\r
                                           '0x%X' %BlockSize[0]    + \\r
-                                          T_CHAR_LF)\r
+                                          TAB_LINE_BREAK)\r
 \r
                 if BlockSize[1] is not None:\r
                     self.FvInfFile.writelines("EFI_NUM_BLOCKS   = "  + \\r
                                           ' 0x%X' %BlockSize[1]    + \\r
-                                          T_CHAR_LF)\r
+                                          TAB_LINE_BREAK)\r
 \r
         if self.BsBaseAddress is not None:\r
             self.FvInfFile.writelines('EFI_BOOT_DRIVER_BASE_ADDRESS = ' + \\r
@@ -311,11 +311,11 @@ class FV (FvClassObject):
         #\r
         # Add attribute\r
         #\r
-        self.FvInfFile.writelines("[attributes]" + T_CHAR_LF)\r
+        self.FvInfFile.writelines("[attributes]" + TAB_LINE_BREAK)\r
 \r
         self.FvInfFile.writelines("EFI_ERASE_POLARITY   = "       + \\r
                                           ' %s' %ErasePloarity    + \\r
-                                          T_CHAR_LF)\r
+                                          TAB_LINE_BREAK)\r
         if not (self.FvAttributeDict is None):\r
             for FvAttribute in self.FvAttributeDict.keys() :\r
                 if FvAttribute == "FvUsedSizeEnable":\r
@@ -326,13 +326,13 @@ class FV (FvClassObject):
                                           FvAttribute       + \\r
                                           ' = '             + \\r
                                           self.FvAttributeDict[FvAttribute] + \\r
-                                          T_CHAR_LF )\r
+                                          TAB_LINE_BREAK )\r
         if self.FvAlignment is not None:\r
             self.FvInfFile.writelines("EFI_FVB2_ALIGNMENT_"     + \\r
                                        self.FvAlignment.strip() + \\r
                                        " = TRUE"                + \\r
-                                       T_CHAR_LF)\r
-                                       \r
+                                       TAB_LINE_BREAK)\r
+\r
         #\r
         # Generate FV extension header file\r
         #\r
@@ -380,15 +380,15 @@ class FV (FvClassObject):
                     # check if the file path exists or not\r
                     if not os.path.isfile(FileFullPath):\r
                         GenFdsGlobalVariable.ErrorLogger("Error opening FV Extension Header Entry file %s." % (self.FvExtEntryData[Index]))\r
-                    FvExtFile = open (FileFullPath,'rb')\r
-                    FvExtFile.seek(0,2)\r
+                    FvExtFile = open (FileFullPath, 'rb')\r
+                    FvExtFile.seek(0, 2)\r
                     Size = FvExtFile.tell()\r
                     if Size >= 0x10000:\r
                         GenFdsGlobalVariable.ErrorLogger("The size of FV Extension Header Entry file %s exceeds 0x10000." % (self.FvExtEntryData[Index]))\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
@@ -408,7 +408,7 @@ class FV (FvClassObject):
             #\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
@@ -417,14 +417,14 @@ class FV (FvClassObject):
                     os.remove (self.InfFileName)\r
                 self.FvInfFile.writelines("EFI_FV_EXT_HEADER_FILE_NAME = "      + \\r
                                            FvExtHeaderFileName                  + \\r
-                                           T_CHAR_LF)\r
+                                           TAB_LINE_BREAK)\r
+\r
 \r
-         \r
         #\r
         # Add [Files]\r
         #\r
-        self.FvInfFile.writelines("[files]" + T_CHAR_LF)\r
+        self.FvInfFile.writelines("[files]" + TAB_LINE_BREAK)\r
         if VtfDict and self.UiFvName in VtfDict:\r
             self.FvInfFile.writelines("EFI_FILE_NAME = "                   + \\r
                                        VtfDict[self.UiFvName]              + \\r
-                                       T_CHAR_LF)\r
+                                       TAB_LINE_BREAK)\r