summaryrefslogtreecommitdiff
path: root/BaseTools/Source/Python/CommonDataClass/CommonClass.py
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/Python/CommonDataClass/CommonClass.py')
-rw-r--r--BaseTools/Source/Python/CommonDataClass/CommonClass.py473
1 files changed, 473 insertions, 0 deletions
diff --git a/BaseTools/Source/Python/CommonDataClass/CommonClass.py b/BaseTools/Source/Python/CommonDataClass/CommonClass.py
new file mode 100644
index 0000000000..763550fe47
--- /dev/null
+++ b/BaseTools/Source/Python/CommonDataClass/CommonClass.py
@@ -0,0 +1,473 @@
+## @file
+# This file is used to define common items of class object
+#
+# Copyright (c) 2007, 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.
+
+
+#
+# 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
+# @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 = []
+
+## CommonClass
+#
+# 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
+#
+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
+#
+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 = ''):
+ self.SkuIdName = SkuIdName
+ self.SkuId = SkuId
+
+ #
+ # Used by Hii
+ #
+ self.VariableName = VariableName
+ self.VariableGuid = VariableGuid
+ self.VariableGuidValue = VariableGuidValue
+ self.VariableOffset = VariableOffset
+ self.HiiDefaultValue = HiiDefaultValue
+
+ #
+ # 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 = 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
+#
+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
+#
+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 = []