]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Eot/Eot.py
BaseTools: loop to retry remove when it fails.
[mirror_edk2.git] / BaseTools / Source / Python / Eot / Eot.py
index 815907dfdda9dccb2f30a06b9630274da4d9dd55..fcde8fd3e22fac4021f7b951c12e88909cc82237 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to be the main entrance of EOT tool\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -14,7 +14,7 @@
 ##\r
 # Import Modules\r
 #\r
-import os, time, glob\r
+import Common.LongFilePathOs as os, time, glob\r
 import Common.EdkLogger as EdkLogger\r
 import EotGlobalData\r
 from optparse import OptionParser\r
@@ -24,11 +24,34 @@ from Common.Misc import GuidStructureStringToGuidString
 from InfParserLite import *\r
 import c\r
 import Database\r
-from FvImage import *\r
 from array import array\r
 from Report import Report\r
-from Common.Misc import ParseConsoleLog\r
+from Common.BuildVersion import gBUILD_VERSION\r
 from Parser import ConvertGuid\r
+from Common.LongFilePathSupport import OpenLongFilePath as open\r
+\r
+## MultipleFv() class\r
+#\r
+#  A class for Multiple FV\r
+#\r
+class MultipleFv(FirmwareVolume):\r
+    def __init__(self, FvList):\r
+        FirmwareVolume.__init__(self)\r
+        self.BasicInfo = []\r
+        for FvPath in FvList:\r
+            FvName = os.path.splitext(os.path.split(FvPath)[1])[0]\r
+            Fd = open(FvPath, 'rb')\r
+            Buf = array('B')\r
+            try:\r
+                Buf.fromfile(Fd, os.path.getsize(FvPath))\r
+            except EOFError:\r
+                pass\r
+\r
+            Fv = FirmwareVolume(FvName)\r
+            Fv.frombuffer(Buf, 0, len(Buf))\r
+\r
+            self.BasicInfo.append([Fv.Name, Fv.FileSystemGuid, Fv.Size])\r
+            self.FfsDict.append(Fv.FfsDict)    \r
 \r
 ## Class Eot\r
 #\r
@@ -45,7 +68,7 @@ class Eot(object):
                  IncludeDirList=None, DecFileList=None, GuidList=None, LogFile=None,\r
                  FvFileList="", MapFileList="", Report='Report.html', Dispatch=None):\r
         # Version and Copyright\r
-        self.VersionNumber = "0.02"\r
+        self.VersionNumber = ("0.02" + " " + gBUILD_VERSION)\r
         self.Version = "%prog Version " + self.VersionNumber\r
         self.Copyright = "Copyright (c) 2008 - 2010, Intel Corporation  All rights reserved."\r
         self.Report = Report\r
@@ -279,9 +302,6 @@ class Eot(object):
         EotGlobalData.gINF_FILES = mFileList\r
         EotGlobalData.gOP_INF.close()\r
 \r
-        EotGlobalData.gDEC_FILES = mDecFileList\r
-\r
-\r
     ## GenerateReport() method\r
     #\r
     #  Generate final HTML report\r
@@ -338,14 +358,6 @@ class Eot(object):
             GuidMacro2 = ''\r
             GuidValue = ''\r
 \r
-            # Find value for hardcode guid macro\r
-            if GuidName in EotGlobalData.gGuidMacroDict:\r
-                GuidMacro = EotGlobalData.gGuidMacroDict[GuidName][0]\r
-                GuidValue = EotGlobalData.gGuidMacroDict[GuidName][1]\r
-                SqlCommand = """update Report set GuidMacro = '%s', GuidValue = '%s' where GuidName = '%s'""" %(GuidMacro, GuidValue, GuidName)\r
-                EotGlobalData.gDb.TblReport.Exec(SqlCommand)\r
-                continue\r
-\r
             # Find guid value defined in Dec file\r
             if GuidName in EotGlobalData.gGuidDict:\r
                 GuidValue = EotGlobalData.gGuidDict[GuidName]\r
@@ -378,8 +390,6 @@ class Eot(object):
         SqlCommand = """select DISTINCT GuidValue, ItemType from Report where ModuleID = -2 and ItemMode = 'Produced'"""\r
         RecordSet = EotGlobalData.gDb.TblReport.Exec(SqlCommand)\r
         for Record in RecordSet:\r
-            if Record[1] == 'Ppi':\r
-                EotGlobalData.gPpiList[Record[0].lower()] = -2\r
             if Record[1] == 'Protocol':\r
                 EotGlobalData.gProtocolList[Record[0].lower()] = -2\r
 \r
@@ -577,11 +587,11 @@ class Eot(object):
     #  @param Option: The option list including log level setting\r
     #\r
     def SetLogLevel(self, Option):\r
-        if Option.verbose != None:\r
+        if Option.verbose is not None:\r
             EdkLogger.SetLevel(EdkLogger.VERBOSE)\r
-        elif Option.quiet != None:\r
+        elif Option.quiet is not None:\r
             EdkLogger.SetLevel(EdkLogger.QUIET)\r
-        elif Option.debug != None:\r
+        elif Option.debug is not None:\r
             EdkLogger.SetLevel(Option.debug + 1)\r
         else:\r
             EdkLogger.SetLevel(EdkLogger.INFO)\r