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