mirror of https://github.com/acidanthera/audk.git
475 lines
18 KiB
Python
475 lines
18 KiB
Python
## @file
|
|
# This file is used to define common items of class object
|
|
#
|
|
# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
|
|
# 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.
|
|
|
|
|
|
#
|
|
# Generate help text
|
|
#
|
|
def GenerateHelpText(Text, Lang):
|
|
if Text:
|
|
Ht = HelpTextClass()
|
|
Ht.Lang = Lang
|
|
Ht.String = Text
|
|
|
|
return Ht
|
|
|
|
return None
|
|
|
|
## CommonClass
|
|
#
|
|
# This class defined common items used in Module/Platform/Package files
|
|
#
|
|
# @param object: Inherited from object class
|
|
# @param Usage: Input value for Usage, default is []
|
|
# @param FeatureFlag: Input value for FeatureFalg, default is ''
|
|
# @param SupArchList: Input value for SupArchList, default is []
|
|
# @param HelpText: Input value for HelpText, default is ''
|
|
#
|
|
# @var Usage: To store value for Usage, selection scope is in below list
|
|
# ALWAYS_CONSUMED | SOMETIMES_CONSUMED | ALWAYS_PRODUCED | SOMETIMES_PRODUCED | TO_START | BY_START | PRIVATE
|
|
# @var FeatureFlag: To store value for FeatureFlag
|
|
# @var SupArchList: To store value for SupArchList, selection scope is in below list
|
|
# EBC | IA32 | X64 | IPF | ARM | PPC | AARCH64
|
|
# @var HelpText: To store value for HelpText
|
|
#
|
|
class CommonClass(object):
|
|
def __init__(self, Usage = None, FeatureFlag = '', SupArchList = None, HelpText = ''):
|
|
self.Usage = Usage
|
|
if self.Usage == None:
|
|
self.Usage = []
|
|
self.FeatureFlag = FeatureFlag
|
|
self.SupArchList = SupArchList
|
|
if self.SupArchList == None:
|
|
self.SupArchList = []
|
|
self.HelpText = HelpText
|
|
self.HelpTextList = []
|
|
|
|
## CommonHeaderClass
|
|
#
|
|
# This class defined common items used in Module/Platform/Package files
|
|
#
|
|
# @param object: Inherited from object class
|
|
#
|
|
# @var Abstract: To store value for Abstract
|
|
# @var Description: To store value for Description
|
|
# @var Copyright: To store value for Copyright
|
|
# @var License: To store value for License
|
|
# @var Specification: To store value for Specification
|
|
#
|
|
class CommonHeaderClass(object):
|
|
def __init__(self):
|
|
self.Abstract = ''
|
|
self.Description = ''
|
|
self.Copyright = ''
|
|
self.License = ''
|
|
self.Specification = {}
|
|
|
|
## HelpTextClass
|
|
#
|
|
# This class defined HelpText item used in PKG file
|
|
#
|
|
# @param object: Inherited from object class
|
|
#
|
|
# @var Lang: To store value for Lang
|
|
# @var String: To store value for String
|
|
#
|
|
class HelpTextClass(object):
|
|
def __init__(self):
|
|
self.Lang = ''
|
|
self.String = ''
|
|
|
|
## DefineClass
|
|
#
|
|
# This class defined item DEFINE used in Module/Platform/Package files
|
|
#
|
|
# @param object: Inherited from object class
|
|
#
|
|
# @var Define: To store value for Define, it is a set structure as
|
|
# { (DefineName, Arch) : DefineValue, ... }
|
|
#
|
|
class DefineClass(object):
|
|
def __init__(self):
|
|
self.Define = {}
|
|
|
|
## ClonedRecordClass
|
|
#
|
|
# This class defined ClonedRecord items used in Module/Platform/Package files
|
|
#
|
|
# @param object: Inherited from object class
|
|
#
|
|
# @var Id: To store value for Id
|
|
# @var FarGuid: To store value for FarGuid
|
|
# @var PackageGuid: To store value for PackageGuid
|
|
# @var PackageVersion: To store value for PackageVersion
|
|
# @var ModuleGuid: To store value for ModuleGuid
|
|
# @var ModuleVersion: To store value for ModuleVersion
|
|
#
|
|
class ClonedRecordClass(object):
|
|
def __init__(self):
|
|
self.Id = 0
|
|
self.FarGuid = ''
|
|
self.PackageGuid = ''
|
|
self.PackageVersion = ''
|
|
self.ModuleGuid = ''
|
|
self.ModuleVersion = ''
|
|
|
|
## IdentificationClass
|
|
#
|
|
# This class defined Identification items used in Module/Platform/Package files
|
|
#
|
|
# @param object: Inherited from object class
|
|
#
|
|
# @var Name: To store value for Name
|
|
# ModuleName(Inf) / PackageName(Dec) / PlatformName(Dsc)
|
|
# @var Guid: To store value for Guid
|
|
# @var Version: To store value for Version
|
|
# @var FileName: To store value for FileName
|
|
# @var FullPath: To store value for FullPath
|
|
#
|
|
class IdentificationClass(object):
|
|
def __init__(self):
|
|
self.Name = ''
|
|
self.BaseName = ''
|
|
self.Guid = ''
|
|
self.Version = ''
|
|
self.FileName = ''
|
|
self.FullPath = ''
|
|
self.RelaPath = ''
|
|
self.PackagePath = ''
|
|
self.ModulePath = ''
|
|
self.CombinePath = ''
|
|
|
|
## IncludeStatementClass
|
|
#
|
|
# This class defined IncludeFiles item used in Module/Platform/Package files
|
|
#
|
|
# @param object: Inherited from object class
|
|
#
|
|
# @var IncludeFiles: To store value for IncludeFiles
|
|
# It is a set structure as { IncludeFile : [Arch1, Arch2, ...], ... }
|
|
#
|
|
class IncludeStatementClass(object):
|
|
def __init__(self):
|
|
self.IncludeFiles = {}
|
|
|
|
## GuidProtocolPpiCommonClass
|
|
#
|
|
# This class defined Guid, Protocol and Ppi like items used in Module/Platform/Package files
|
|
#
|
|
# @param CommonClass: Inherited from CommonClass class
|
|
#
|
|
# @var Name: To store value for Name
|
|
# @var CName: To store value for CName
|
|
# @var Guid: To store value for Guid
|
|
# @var Notify: To store value for Notify
|
|
# @var GuidTypeList: To store value for GuidTypeList, selection scope is in below list
|
|
# DATA_HUB_RECORD | EFI_EVENT | EFI_SYSTEM_CONFIGURATION_TABLE | EFI_VARIABLE | GUID | HII_PACKAGE_LIST | HOB | TOKEN_SPACE_GUID
|
|
# @var SupModuleList: To store value for SupModuleList, selection scope is in below list
|
|
# BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED | SMM_CORE
|
|
#
|
|
class GuidProtocolPpiCommonClass(CommonClass):
|
|
def __init__(self):
|
|
self.Name = ''
|
|
self.CName = ''
|
|
self.Guid = ''
|
|
self.VariableName = ''
|
|
self.Notify = False
|
|
self.GuidTypeList = []
|
|
self.GuidTypeLists = []
|
|
self.SupModuleList = []
|
|
CommonClass.__init__(self)
|
|
|
|
## LibraryClassClass
|
|
#
|
|
# This class defined Library item used in Module/Platform/Package files
|
|
#
|
|
# @param CommonClass: Inherited from CommonClass class
|
|
# @param DefineClass: Inherited from DefineClass class
|
|
#
|
|
# @var LibraryClass: To store value for LibraryClass
|
|
# @var IncludeHeader: To store value for IncludeHeader
|
|
# @var RecommendedInstanceVersion: To store value for RecommendedInstanceVersion
|
|
# @var RecommendedInstanceGuid: To store value for RecommendedInstanceGuid
|
|
# @var RecommendedInstance: To store value for RecommendedInstance, selection scope is in below list
|
|
# DATA_HUB_RECORD | EFI_EVENT | EFI_SYSTEM_CONFIGURATION_TABLE | EFI_VARIABLE | GUID | HII_PACKAGE_LIST | HOB | TOKEN_SPACE_GUID
|
|
# @var SupModuleList: To store value for SupModuleList, selection scope is in below list
|
|
# BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED | SMM_CORE
|
|
#
|
|
class LibraryClassClass(CommonClass, DefineClass):
|
|
def __init__(self):
|
|
self.LibraryClass = ''
|
|
self.IncludeHeader = ''
|
|
self.RecommendedInstanceVersion = ''
|
|
self.RecommendedInstanceGuid = ''
|
|
self.RecommendedInstance = ''
|
|
self.SupModuleList = []
|
|
CommonClass.__init__(self)
|
|
DefineClass.__init__(self)
|
|
|
|
## GuidClass
|
|
#
|
|
# This class defined Guid item used in Module/Platform/Package files
|
|
#
|
|
# @param GuidProtocolPpiCommonClass: Inherited from GuidProtocolPpiCommonClass class
|
|
#
|
|
class GuidClass(GuidProtocolPpiCommonClass):
|
|
def __init__(self):
|
|
GuidProtocolPpiCommonClass.__init__(self)
|
|
|
|
## ProtocolClass
|
|
#
|
|
# This class defined Protocol item used in Module/Platform/Package files
|
|
#
|
|
# @param GuidProtocolPpiCommonClass: Inherited from GuidProtocolPpiCommonClass class
|
|
#
|
|
class ProtocolClass(GuidProtocolPpiCommonClass):
|
|
def __init__(self):
|
|
GuidProtocolPpiCommonClass.__init__(self)
|
|
|
|
## PpiClass
|
|
#
|
|
# This class defined Ppi item used in Module/Platform/Package files
|
|
#
|
|
# @param GuidProtocolPpiCommonClass: Inherited from GuidProtocolPpiCommonClass class
|
|
#
|
|
class PpiClass(GuidProtocolPpiCommonClass):
|
|
def __init__(self):
|
|
GuidProtocolPpiCommonClass.__init__(self)
|
|
|
|
## SkuInfoClass
|
|
#
|
|
# This class defined SkuInfo item used in Module/Platform/Package files
|
|
#
|
|
# @param object: Inherited from object class
|
|
# @param SkuIdName: Input value for SkuIdName, default is ''
|
|
# @param SkuId: Input value for SkuId, default is ''
|
|
# @param VariableName: Input value for VariableName, default is ''
|
|
# @param VariableGuid: Input value for VariableGuid, default is ''
|
|
# @param VariableOffset: Input value for VariableOffset, default is ''
|
|
# @param HiiDefaultValue: Input value for HiiDefaultValue, default is ''
|
|
# @param VpdOffset: Input value for VpdOffset, default is ''
|
|
# @param DefaultValue: Input value for DefaultValue, default is ''
|
|
#
|
|
# @var SkuIdName: To store value for SkuIdName
|
|
# @var SkuId: To store value for SkuId
|
|
# @var VariableName: To store value for VariableName
|
|
# @var VariableGuid: To store value for VariableGuid
|
|
# @var VariableOffset: To store value for VariableOffset
|
|
# @var HiiDefaultValue: To store value for HiiDefaultValue
|
|
# @var VpdOffset: To store value for VpdOffset
|
|
# @var DefaultValue: To store value for DefaultValue
|
|
#
|
|
class SkuInfoClass(object):
|
|
def __init__(self, SkuIdName = '', SkuId = '', VariableName = '', VariableGuid = '', VariableOffset = '',
|
|
HiiDefaultValue = '', VpdOffset = '', DefaultValue = '', VariableGuidValue = '', VariableAttribute = ''):
|
|
self.SkuIdName = SkuIdName
|
|
self.SkuId = SkuId
|
|
|
|
#
|
|
# Used by Hii
|
|
#
|
|
self.VariableName = VariableName
|
|
self.VariableGuid = VariableGuid
|
|
self.VariableGuidValue = VariableGuidValue
|
|
self.VariableOffset = VariableOffset
|
|
self.HiiDefaultValue = HiiDefaultValue
|
|
self.VariableAttribute = VariableAttribute
|
|
|
|
#
|
|
# Used by Vpd
|
|
#
|
|
self.VpdOffset = VpdOffset
|
|
|
|
#
|
|
# Used by Default
|
|
#
|
|
self.DefaultValue = DefaultValue
|
|
|
|
## Convert the class to a string
|
|
#
|
|
# Convert each member of the class to string
|
|
# Organize to a signle line format string
|
|
#
|
|
# @retval Rtn Formatted String
|
|
#
|
|
def __str__(self):
|
|
Rtn = 'SkuId = ' + str(self.SkuId) + "," + \
|
|
'SkuIdName = ' + str(self.SkuIdName) + "," + \
|
|
'VariableName = ' + str(self.VariableName) + "," + \
|
|
'VariableGuid = ' + str(self.VariableGuid) + "," + \
|
|
'VariableOffset = ' + str(self.VariableOffset) + "," + \
|
|
'HiiDefaultValue = ' + str(self.HiiDefaultValue) + "," + \
|
|
'VpdOffset = ' + str(self.VpdOffset) + "," + \
|
|
'DefaultValue = ' + str(self.DefaultValue) + ","
|
|
return Rtn
|
|
## PcdErrorClass
|
|
#
|
|
#
|
|
#
|
|
class PcdErrorClass(object):
|
|
def __init__(self):
|
|
self.ValidValueList = ''
|
|
self.ValidValueListLang = ''
|
|
self.ValidValueRange = ''
|
|
self.Expression = ''
|
|
self.ErrorNumber = ''
|
|
self.ErrorMessage = []
|
|
|
|
## PcdClass
|
|
#
|
|
# This class defined Pcd item used in Module/Platform/Package files
|
|
#
|
|
# @param CommonClass: Inherited from CommonClass class
|
|
# @param CName: Input value for CName, default is ''
|
|
# @param Token: Input value for Token, default is ''
|
|
# @param TokenSpaceGuidCName: Input value for TokenSpaceGuidCName, default is ''
|
|
# @param DatumType: Input value for DatumType, default is ''
|
|
# @param MaxDatumSize: Input value for MaxDatumSize, default is ''
|
|
# @param DefaultValue: Input value for DefaultValue, default is ''
|
|
# @param ItemType: Input value for ItemType, default is ''
|
|
# @param ValidUsage: Input value for ValidUsage, default is []
|
|
# @param SkuInfoList: Input value for SkuInfoList, default is {}
|
|
# @param SupModuleList: Input value for SupModuleList, default is []
|
|
#
|
|
# @var CName: To store value for CName
|
|
# @var Token: To store value for Token
|
|
# @var TokenSpaceGuidCName: To store value for TokenSpaceGuidCName
|
|
# @var DatumType: To store value for DatumType, selection scope is in below list
|
|
# UINT8 | UINT16 | UINT32 | UINT64 | VOID* | BOOLEAN
|
|
# @var MaxDatumSize: To store value for MaxDatumSize
|
|
# @var DefaultValue: To store value for DefaultValue
|
|
# @var ItemType: To store value for ItemType, selection scope is in below list
|
|
# FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX
|
|
# @var ValidUsage: To store value for ValidUsage, selection scope is in below list
|
|
# FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX
|
|
# @var SkuInfoList: To store value for SkuInfoList
|
|
# It is a set structure as { [SkuIdName] : SkuInfoClass }
|
|
# @var SupModuleList: To store value for SupModuleList, selection scope is in below list
|
|
# BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED | SMM_CORE
|
|
#
|
|
class PcdClass(CommonClass):
|
|
def __init__(self, CName = '', Token = '', TokenSpaceGuidCName = '', DatumType = '', MaxDatumSize = '', DefaultValue = '', ItemType = '', ValidUsage = None, SkuInfoList = None, SupModuleList = None):
|
|
self.CName = CName
|
|
self.Token = Token
|
|
self.TokenSpaceGuidCName = TokenSpaceGuidCName
|
|
self.DatumType = DatumType
|
|
self.MaxDatumSize = MaxDatumSize
|
|
self.DefaultValue = DefaultValue
|
|
self.ItemType = ItemType
|
|
self.ValidUsage = ValidUsage
|
|
self.PcdItemType = ''
|
|
self.TokenSpaceGuidValue = ''
|
|
self.PcdUsage = ''
|
|
self.PcdCName = ''
|
|
self.Value = ''
|
|
self.Offset = ''
|
|
if self.ValidUsage == None:
|
|
self.ValidUsage = []
|
|
self.SkuInfoList = SkuInfoList
|
|
if self.SkuInfoList == None:
|
|
self.SkuInfoList = {}
|
|
self.SupModuleList = SupModuleList
|
|
if self.SupModuleList == None:
|
|
self.SupModuleList = []
|
|
CommonClass.__init__(self)
|
|
self.PcdErrors = []
|
|
|
|
## BuildOptionClass
|
|
#
|
|
# This class defined BuildOption item used in Module/Platform/Package files
|
|
#
|
|
# @param IncludeStatementClass: Inherited from IncludeStatementClass class
|
|
# @param ToolChainFamily: Input value for ToolChainFamily, default is ''
|
|
# @param ToolChain: Input value for ToolChain, default is ''
|
|
# @param Option: Input value for Option, default is ''
|
|
#
|
|
# @var Statement: To store value for Statement
|
|
# It is a string in a special format as "Family:Target_TagName_Tarch_ToolCode_FLAGS = String"
|
|
# @var ToolChainFamily: To store value for ToolChainFamily
|
|
# @var ToolChain: To store value for ToolChain
|
|
# @var Option: To store value for Option
|
|
# @var BuildTarget: To store value for BuildTarget
|
|
# @var TagName: To store value for TagName
|
|
# @var ToolCode: To store value for ToolCode
|
|
# @var SupArchList: To store value for SupArchList, selection scope is in below list
|
|
# EBC | IA32 | X64 | IPF | ARM | PPC | AARCH64
|
|
#
|
|
class BuildOptionClass(IncludeStatementClass):
|
|
def __init__(self, ToolChainFamily = '', ToolChain = '', Option = ''):
|
|
IncludeStatementClass.__init__(self)
|
|
self.Statement = ''
|
|
self.ToolChainFamily = ToolChainFamily
|
|
self.ToolChain = ToolChain
|
|
self.Option = Option
|
|
self.BuildTarget = ''
|
|
self.TagName = ''
|
|
self.ToolCode = ''
|
|
self.SupArchList = []
|
|
|
|
## IncludeClass
|
|
#
|
|
# This class defined Include item used in Module/Platform/Package files
|
|
#
|
|
# @param CommonClass: Inherited from CommonClass class
|
|
#
|
|
# @var FilePath: To store value for FilePath
|
|
# @var ModuleType: To store value for ModuleType
|
|
# @var Comment: To store value for Comment
|
|
#
|
|
class IncludeClass(CommonClass):
|
|
def __init__(self):
|
|
self.FilePath = ''
|
|
self.ModuleType = ''
|
|
self.SupModuleList = []
|
|
self.Comment = ''
|
|
CommonClass.__init__(self)
|
|
|
|
## FileClass
|
|
#
|
|
#
|
|
class FileClass(CommonClass):
|
|
def __init__(self):
|
|
self.Filename = ''
|
|
self.Executable = ''
|
|
self.Family = ''
|
|
self.FileType = ''
|
|
CommonClass.__init__(self)
|
|
|
|
|
|
## MiscFileClass
|
|
#
|
|
#
|
|
class MiscFileClass(CommonHeaderClass):
|
|
def __init__(self):
|
|
CommonHeaderClass.__init__(self)
|
|
self.Name = ''
|
|
self.Files = []
|
|
|
|
|
|
## UserExtensionsClass
|
|
#
|
|
# This class defined UserExtensions item used in Module/Platform/Package files
|
|
#
|
|
# @param object: Inherited from object class
|
|
#
|
|
# @var UserID: To store value for UserID
|
|
# @var Identifier: To store value for Identifier
|
|
# @var Content: To store value for Content
|
|
#
|
|
class UserExtensionsClass(object):
|
|
def __init__(self):
|
|
self.UserID = ''
|
|
self.Identifier = 0
|
|
self.Content = ''
|
|
self.Defines = []
|
|
self.BuildOptions = []
|