X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=BaseTools%2FSource%2FPython%2FGenFds%2FAprioriSection.py;h=be2d9f6de58222752f8e4b6b1b961987158be7f2;hb=2e351cbe8e190271b3716284fc1076551d005472;hp=aaa919d7a8b5ae1a02517c1fd60a28072234d3e7;hpb=487062c048809420de1b008bc9d17815a8c4fbdb;p=mirror_edk2.git diff --git a/BaseTools/Source/Python/GenFds/AprioriSection.py b/BaseTools/Source/Python/GenFds/AprioriSection.py index aaa919d7a8..be2d9f6de5 100644 --- a/BaseTools/Source/Python/GenFds/AprioriSection.py +++ b/BaseTools/Source/Python/GenFds/AprioriSection.py @@ -3,40 +3,38 @@ # # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# SPDX-License-Identifier: BSD-2-Clause-Patent # ## # Import Modules # -from struct import * +from __future__ import absolute_import +from struct import pack import Common.LongFilePathOs as os from io import BytesIO -from . import FfsFileStatement +from .FfsFileStatement import FileStatement from .GenFdsGlobalVariable import GenFdsGlobalVariable -from CommonDataClass.FdfClass import AprioriSectionClassObject -from Common.StringUtils import * +from Common.StringUtils import NormPath from Common.Misc import SaveFileOnChange, PathClass -from Common import EdkLogger -from Common.BuildToolError import * +from Common.EdkLogger import error as EdkLoggerError +from Common.BuildToolError import RESOURCE_NOT_AVAILABLE from Common.DataType import TAB_COMMON +DXE_APRIORI_GUID = "FC510EE7-FFDC-11D4-BD41-0080C73C8881" +PEI_APRIORI_GUID = "1B45CC0A-156A-428A-AF62-49864DA0E6E6" + ## process APRIORI file data and generate PEI/DXE APRIORI file # # -class AprioriSection (AprioriSectionClassObject): +class AprioriSection (object): ## The constructor # # @param self The object pointer # def __init__(self): - AprioriSectionClassObject.__init__(self) + self.DefineVarDict = {} + self.FfsList = [] self.AprioriType = "" ## GenFfs() method @@ -49,16 +47,16 @@ class AprioriSection (AprioriSectionClassObject): # @retval string Generated file name # def GenFfs (self, FvName, Dict = {}, IsMakefile = False): - DXE_GUID = "FC510EE7-FFDC-11D4-BD41-0080C73C8881" - PEI_GUID = "1B45CC0A-156A-428A-AF62-49864DA0E6E6" - Buffer = BytesIO('') - AprioriFileGuid = DXE_GUID + Buffer = BytesIO() if self.AprioriType == "PEI": - AprioriFileGuid = PEI_GUID + AprioriFileGuid = PEI_APRIORI_GUID + else: + AprioriFileGuid = DXE_APRIORI_GUID + OutputAprFilePath = os.path.join (GenFdsGlobalVariable.WorkSpaceDir, \ GenFdsGlobalVariable.FfsDir,\ AprioriFileGuid + FvName) - if not os.path.exists(OutputAprFilePath) : + if not os.path.exists(OutputAprFilePath): os.makedirs(OutputAprFilePath) OutputAprFileName = os.path.join( OutputAprFilePath, \ @@ -68,35 +66,32 @@ class AprioriSection (AprioriSectionClassObject): Dict.update(self.DefineVarDict) InfFileName = None - for FfsObj in self.FfsList : + for FfsObj in self.FfsList: Guid = "" - if isinstance(FfsObj, FfsFileStatement.FileStatement): + if isinstance(FfsObj, FileStatement): Guid = FfsObj.NameGuid else: InfFileName = NormPath(FfsObj.InfFileName) Arch = FfsObj.GetCurrentArch() - if Arch is not None: + if Arch: Dict['$(ARCH)'] = Arch InfFileName = GenFdsGlobalVariable.MacroExtend(InfFileName, Dict, Arch) - if Arch is not None: + if Arch: Inf = GenFdsGlobalVariable.WorkSpace.BuildObject[PathClass(InfFileName, GenFdsGlobalVariable.WorkSpaceDir), Arch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] Guid = Inf.Guid - else: Inf = GenFdsGlobalVariable.WorkSpace.BuildObject[PathClass(InfFileName, GenFdsGlobalVariable.WorkSpaceDir), TAB_COMMON, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] Guid = Inf.Guid - self.BinFileList = Inf.Module.Binaries - if self.BinFileList == []: - EdkLogger.error("GenFds", RESOURCE_NOT_AVAILABLE, + if not Inf.Module.Binaries: + EdkLoggerError("GenFds", RESOURCE_NOT_AVAILABLE, "INF %s not found in build ARCH %s!" \ % (InfFileName, GenFdsGlobalVariable.ArchList)) - GuidPart = Guid.split('-') - Buffer.write(pack('I', long(GuidPart[0], 16))) + Buffer.write(pack('I', int(GuidPart[0], 16))) Buffer.write(pack('H', int(GuidPart[1], 16))) Buffer.write(pack('H', int(GuidPart[2], 16))) @@ -122,4 +117,3 @@ class AprioriSection (AprioriSectionClassObject): 'EFI_FV_FILETYPE_FREEFORM', AprioriFileGuid, MakefilePath=MakefilePath) return AprFfsFileName -