| ## @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 | MM_STANDALONE | MM_CORE_STANDALONE | |
| # | |
| 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 | MM_STANDALONE | MM_CORE_STANDALONE | |
| # | |
| 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 = '', DefaultStore = None): | |
| self.SkuIdName = SkuIdName | |
| self.SkuId = SkuId | |
| # | |
| # Used by Hii | |
| # | |
| if DefaultStore is None: | |
| DefaultStore = {} | |
| self.VariableName = VariableName | |
| self.VariableGuid = VariableGuid | |
| self.VariableGuidValue = VariableGuidValue | |
| self.VariableOffset = VariableOffset | |
| self.HiiDefaultValue = HiiDefaultValue | |
| self.VariableAttribute = VariableAttribute | |
| self.DefaultStoreDict = DefaultStore | |
| # | |
| # 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 | MM_STANDALONE | MM_CORE_STANDALONE | |
| # | |
| 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 = [] |