summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/CommonDataClass/ModuleClass.py
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/Python/CommonDataClass/ModuleClass.py')
-rw-r--r--BaseTools/Source/Python/CommonDataClass/ModuleClass.py486
1 files changed, 486 insertions, 0 deletions
diff --git a/BaseTools/Source/Python/CommonDataClass/ModuleClass.py b/BaseTools/Source/Python/CommonDataClass/ModuleClass.py
new file mode 100644
index 0000000000..9d780725b9
--- /dev/null
+++ b/BaseTools/Source/Python/CommonDataClass/ModuleClass.py
@@ -0,0 +1,486 @@
+## @file
+# This file is used to define a class object to describe a module
+#
+# 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.
+
+##
+# Import Modules
+#
+from CommonClass import *
+
+## ModuleHeaderClass
+#
+# This class defined header items used in Module file
+#
+# @param IdentificationClass: Inherited from IdentificationClass class
+# @param CommonHeaderClass: Inherited from CommonHeaderClass class
+# @param DefineClass: Inherited from DefineClass class
+#
+# @var ModuleType: To store value for ModuleType
+# @var SupArchList: To store value for SupArchList, selection scope is in below list
+# EBC | IA32 | X64 | IPF | ARM | PPC
+# @var BinaryModule: To store value for BinaryModule
+# @var OutputFileBasename: To store value for OutputFileBasename
+# @var ClonedFrom: To store value for ClonedFrom, it is a set structure as
+# [ ClonedRecordClass, ... ]
+# @var PcdIsDriver: To store value for PcdIsDriver, selection scope is in below list
+# PEI_PCD_DRIVER | DXE_PCD_DRIVER
+# @var TianoR8FlashMap_h: To store value for TianoR8FlashMap_h
+# @var InfVersion: To store value for InfVersion
+# @var EfiSpecificationVersion: To store value for EfiSpecificationVersion
+# @var EdkReleaseVersion: To store value for EdkReleaseVersion
+# @var LibraryClass: To store value for LibraryClass, it is a set structure as
+# [ LibraryClassClass, ...]
+# @var ComponentType: To store value for ComponentType, selection scope is in below list
+# LIBRARY | SECURITY_CORE | PEI_CORE | COMBINED_PEIM_DRIVER | PIC_PEIM | RELOCATABLE_PEIM | BS_DRIVER | RT_DRIVER | SAL_RT_DRIVER | APPLICATION
+# @var MakefileName: To store value for MakefileName
+# @var BuildNumber: To store value for BuildNumber
+# @var BuildType: To store value for BuildType
+# @var FfsExt: To store value for FfsExt
+# @var FvExt: To store value for FvExt
+# @var SourceFv: To store value for SourceFv
+# @var CustomMakefile: To store value for CustomMakefile, it is a set structure as
+# { Family : Filename, ... }
+# @var Shadow: To store value for Shadow
+# @var MacroDefines To store the defined macros
+#
+class ModuleHeaderClass(IdentificationClass, CommonHeaderClass, DefineClass):
+ def __init__(self):
+ IdentificationClass.__init__(self)
+ CommonHeaderClass.__init__(self)
+ DefineClass.__init__(self)
+ self.ModuleType = ''
+ self.SupModuleList = []
+ self.SupArchList = []
+ self.BinaryModule = False
+ self.OutputFileBasename = ''
+ self.ClonedFrom = []
+ self.PcdIsDriver = ''
+ self.TianoR8FlashMap_h = False
+ self.InfVersion = ''
+ self.EfiSpecificationVersion = ''
+ self.PiSpecificationVersion = ''
+ self.UefiSpecificationVersion = ''
+ self.EdkReleaseVersion = ''
+ self.LibraryClass = []
+ self.ComponentType = ''
+ self.MakefileName = ''
+ self.BuildNumber = ''
+ self.BuildType = ''
+ self.FfsExt = ''
+ self.FvExt = ''
+ self.SourceFv = ''
+ self.CustomMakefile = {}
+ self.Shadow = ''
+ self.MacroDefines = {}
+ self.SourceOverridePath = ''
+ self.Specification = []
+
+## ModuleSourceFileClass
+#
+# This class defined source file item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+# @param SourceFile: Input value for SourceFile, default is ''
+# @param TagName: Input value for TagName, default is ''
+# @param ToolCode: Input value for ToolCode, default is ''
+# @param ToolChainFamily: Input value for ToolChainFamily, default is ''
+# @param FeatureFlag: Input value for FeatureFlag, default is ''
+# @param SupArchList: Input value for SupArchList, default is []
+#
+# @var SourceFile: To store value for SourceFile
+# @var TagName: To store value for TagName
+# @var ToolCode: To store value for ToolCode
+# @var ToolChainFamily: To store value for ToolChainFamily
+#
+class ModuleSourceFileClass(CommonClass):
+ def __init__(self, SourceFile = '', TagName = '', ToolCode = '', ToolChainFamily = '', FeatureFlag = '', SupArchList = None):
+ self.SourceFile = SourceFile
+ self.TagName = TagName
+ self.ToolCode = ToolCode
+ self.ToolChainFamily = ToolChainFamily
+ self.FileType = ''
+ CommonClass.__init__(self, FeatureFlag = FeatureFlag, SupArchList = SupArchList)
+
+## ModuleBinaryFileClass
+#
+# This class defined binary file item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+# @param BinaryFile: Input value for BinaryFile, default is ''
+# @param FileType: Input value for FileType, default is ''
+# @param FeatureFlag: Input value for FeatureFlag, default is ''
+# @param SupArchList: Input value for SupArchList, default is []
+#
+# @var BinaryFile: To store value for BinaryFile
+# @var FileType: To store value for FileType, selection scope is in below list
+# FW | GUID | PREEFORM | UEFI_APP | UNI_UI | UNI_VER | LIB | PE32 | PIC | PEI_DEPEX | DXE_DEPEX | TE | VER | UI | BIN | FV
+# @var Target: To store value for Target
+# @var ToolChainFamily: To store value for ToolChainFamily
+#
+class ModuleBinaryFileClass(CommonClass):
+ def __init__(self, BinaryFile = '', FileType = '', Target = '', FeatureFlag = '', SupArchList = None):
+ self.BinaryFile = BinaryFile
+ self.FileType = FileType
+ self.Target = Target
+ CommonClass.__init__(self, FeatureFlag = FeatureFlag, SupArchList = SupArchList)
+ self.Filenames = []
+ self.PatchPcdValues = []
+ self.PcdExValues = []
+ self.LibraryInstances = []
+ self.BuildFlags = []
+
+## ModulePackageDependencyClass
+#
+# This class defined package dependency item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+# @param DefineClass: Input value for DefineClass class
+#
+# @var FilePath: To store value for FilePath
+# @var PackageName: To store value for PackageName
+# @var PackageVersion: To store value for PackageVersion
+# @var PackageGuid: To store value for PackageGuid
+#
+class ModulePackageDependencyClass(CommonClass, DefineClass):
+ def __init__(self):
+ self.FilePath = ''
+ self.PackageName = ''
+ self.PackageVersion = ''
+ self.PackageGuid = ''
+ self.Description = ''
+ CommonClass.__init__(self)
+ DefineClass.__init__(self)
+
+## ModuleLibraryClass
+#
+# This class defined library item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var Library: To store value for Library
+#
+class ModuleLibraryClass(CommonClass):
+ def __init__(self):
+ self.Library = ''
+ CommonClass.__init__(self)
+
+## ModuleEventClass
+#
+# This class defined event item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var CName: To store value for CName
+# @var GuidCName: To store value for GuidCName
+# @var Type: To store value for Type, selection scope is in below list
+# CREATE_EVENT | SIGNAL_EVENT
+#
+class ModuleEventClass(CommonClass):
+ def __init__(self):
+ self.CName = ''
+ self.GuidCName = ''
+ self.Type = ''
+ CommonClass.__init__(self)
+
+## ModuleHobClass
+#
+# This class defined hob item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var GuidCName: To store value for GuidCName
+# @var Type: To store value for Type, selection scope is in below list
+# PHIT | MEMORY_ALLOCATION | RESOURCE_DESCRIPTOR | GUID_EXTENSION | FIRMWARE_VOLUME | CPU | POOL | CAPSULE_VOLUME
+#
+class ModuleHobClass(CommonClass):
+ def __init__(self):
+ self.Type = ''
+ self.GuidCName = ''
+ CommonClass.__init__(self)
+
+## ModuleVariableClass
+#
+# This class defined variable item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var GuidCName: To store value for GuidCName
+# @var Name: To store value for Name
+#
+class ModuleVariableClass(CommonClass):
+ def __init__(self):
+ self.Name = ''
+ self.GuidCName = ''
+ CommonClass.__init__(self)
+
+## ModuleBootModeClass
+#
+# This class defined boot mode item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var Name: To store value for Name, selection scope is in below list
+# FULL | MINIMAL | NO_CHANGE | DIAGNOSTICS | DEFAULT | S2_RESUME | S3_RESUME | S4_RESUME | S5_RESUME | FLASH_UPDATE | RECOVERY_FULL | RECOVERY_MINIMAL | RECOVERY_NO_CHANGE | RECOVERY_DIAGNOSTICS | RECOVERY_DEFAULT | RECOVERY_S2_RESUME | RECOVERY_S3_RESUME | RECOVERY_S4_RESUME | RECOVERY_S5_RESUME | RECOVERY_FLASH_UPDATE
+#
+class ModuleBootModeClass(CommonClass):
+ def __init__(self):
+ self.Name = ''
+ CommonClass.__init__(self)
+
+## ModuleSystemTableClass
+#
+# This class defined system table item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var CName: To store value for CName
+#
+class ModuleSystemTableClass(CommonClass):
+ def __init__(self):
+ self.CName = ''
+ CommonClass.__init__(self)
+
+## ModuleDataHubClass
+#
+# This class defined data hub item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var CName: To store value for CName
+#
+class ModuleDataHubClass(CommonClass):
+ def __init__(self):
+ self.CName = ''
+ CommonClass.__init__(self)
+
+## ModuleHiiPackageClass
+#
+# This class defined Hii package item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var CName: To store value for CName
+#
+class ModuleHiiPackageClass(CommonClass):
+ def __init__(self):
+ self.CName = ''
+ CommonClass.__init__(self)
+
+## ModuleExternImageClass
+#
+# This class defined Extern Image item used in Module file
+#
+# @param object: Inherited from object class
+#
+# @var ModuleEntryPoint: To store value for ModuleEntryPoint
+# @var ModuleUnloadImage: To store value for ModuleUnloadImage
+#
+class ModuleExternImageClass(object):
+ def __init__(self):
+ self.ModuleEntryPoint = ''
+ self.ModuleUnloadImage = ''
+
+## ModuleExternLibraryClass
+#
+# This class defined Extern Library item used in Module file
+#
+# @param object: Inherited from object class
+#
+# @var Constructor: To store value for Constructor
+# @var Destructor: To store value for Destructor
+#
+class ModuleExternLibraryClass(object):
+ def __init__(self):
+ self.Constructor = ''
+ self.Destructor = ''
+
+## ModuleExternDriverClass
+#
+# This class defined Extern Driver item used in Module file
+#
+# @param object: Inherited from object class
+#
+# @var DriverBinding: To store value for DriverBinding
+# @var ComponentName: To store value for ComponentName
+# @var DriverConfig: To store value for DriverConfig
+# @var DriverDiag: To store value for DriverDiag
+#
+class ModuleExternDriverClass(object):
+ def __init__(self):
+ self.DriverBinding= ''
+ self.ComponentName = ''
+ self.DriverConfig = ''
+ self.DriverDiag = ''
+
+## ModuleExternCallBackClass
+#
+# This class defined Extern Call Back item used in Module file
+#
+# @param object: Inherited from object class
+#
+# @var SetVirtualAddressMapCallBack: To store value for SetVirtualAddressMapCallBack
+# @var ExitBootServicesCallBack: To store value for ExitBootServicesCallBack
+#
+class ModuleExternCallBackClass(object):
+ def __init__(self):
+ self.SetVirtualAddressMapCallBack = ''
+ self.ExitBootServicesCallBack = ''
+
+## ModuleExternClass
+#
+# This class defined Extern used in Module file
+#
+# @param object: Inherited from object class
+#
+#
+class ModuleExternClass(CommonClass):
+ def __init__(self):
+ self.EntryPoint = ''
+ self.UnloadImage = ''
+ self.Constructor = ''
+ self.Destructor = ''
+ CommonClass.__init__(self)
+
+## ModuleDepexClass
+#
+# This class defined depex item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+# @param DefineClass: Input value for DefineClass class
+#
+# @var Depex: To store value for Depex
+#
+class ModuleDepexClass(CommonClass, DefineClass):
+ def __init__(self):
+ CommonClass.__init__(self)
+ DefineClass.__init__(self)
+ self.Depex = ''
+
+## ModuleNmakeClass
+#
+# This class defined nmake item used in Module file
+#
+# @param CommonClass: Inherited from CommonClass class
+#
+# @var Name: To store value for Name
+# @var Value: To store value for Value
+#
+class ModuleNmakeClass(CommonClass):
+ def __init__(self):
+ CommonClass.__init__(self)
+ self.Name = ''
+ self.Value = ''
+
+## ModuleClass
+#
+# This class defined a complete module item
+#
+# @param object: Inherited from object class
+#
+# @var Header: To store value for Header, it is a structure as
+# {Arch : ModuleHeaderClass}
+# @var LibraryClasses: To store value for LibraryClasses, it is a list structure as
+# [ LibraryClassClass, ...]
+# @var Libraries: To store value for Libraries, it is a list structure as
+# [ ModuleLibraryClass, ...]
+# @var Sources: To store value for Sources, it is a list structure as
+# [ ModuleSourceFileClass, ...]
+# @var Binaries: To store value for Binaries, it is a list structure as
+# [ ModuleBinaryFileClass, ...]
+# @var NonProcessedFiles: To store value for NonProcessedFiles, it is a list structure as
+# [ '', '', ...]
+# @var PackageDependencies: To store value for PackageDependencies, it is a list structure as
+# [ ModulePackageDependencyClass, ... ]
+# @var Nmake: To store value for Nmake, it is a list structure as
+# [ ModuleNmakeClass, ... ]
+# @var Depex: To store value for Depex, it is a list structure as
+# [ ModuleDepexClass, ... ]
+# @var Includes: To store value for Includes, it is a list structure as
+# [ IncludeClass, ...]
+# @var Protocols: To store value for Protocols, it is a list structure as
+# [ ProtocolClass, ...]
+# @var Ppis: To store value for Ppis, it is a list structure as
+# [ PpiClass, ...]
+# @var Events: To store value for Events, it is a list structure as
+# [ ModuleEventClass, ...]
+# @var Hobs: To store value for Hobs, it is a list structure as
+# [ ModuleHobClass, ...]
+# @var Variables: To store value for Variables, it is a list structure as
+# [ ModuleVariableClass, ...]
+# @var BootModes: To store value for BootModes, it is a list structure as
+# [ ModuleBootModeClass, ...]
+# @var SystemTables: To store value for SystemTables, it is a list structure as
+# [ ModuleSystemTableClass, ...]
+# @var DataHubs: To store value for DataHubs, it is a list structure as
+# [ ModuleDataHubClass, ...]
+# @var HiiPackages: To store value for HiiPackages, it is a list structure as
+# [ ModuleHiiPackageClass, ...]
+# @var Guids: To store value for Guids, it is a list structure as
+# [ GuidClass, ...]
+# @var PcdCodes: To store value for PcdCodes, it is a list structure as
+# [ PcdClass, ...]
+# @var ExternImages: To store value for ExternImages, it is a list structure as
+# [ ModuleExternImageClass, ...]
+# @var ExternLibraries: To store value for ExternLibraries, it is a list structure as
+# [ ModuleExternLibraryClass, ...]
+# @var ExternDrivers: To store value for ExternDrivers, it is a list structure as
+# [ ModuleExternDriverClass, ...]
+# @var ExternCallBacks: To store value for ExternCallBacks, it is a list structure as
+# [ ModuleExternCallBackClass, ...]
+# @var BuildOptions: To store value for BuildOptions, it is a list structure as
+# [ BuildOptionClass, ...]
+# @var UserExtensions: To store value for UserExtensions, it is a list structure as
+# [ UserExtensionsClass, ...]
+#
+class ModuleClass(object):
+ def __init__(self):
+ self.Header = {}
+ self.ModuleHeader = ModuleHeaderClass()
+ self.LibraryClasses = []
+ self.Libraries = []
+ self.Sources = []
+ self.Binaries = []
+ self.NonProcessedFiles = []
+ self.PackageDependencies = []
+ self.Nmake = []
+ self.Depex = []
+ self.PeiDepex = None
+ self.DxeDepex = None
+ self.SmmDepex = None
+ self.Includes = []
+ self.Protocols = []
+ self.Ppis = []
+ self.Events = []
+ self.Hobs = []
+ self.Variables = []
+ self.BootModes = []
+ self.SystemTables = []
+ self.DataHubs = []
+ self.HiiPackages = []
+ self.Guids = []
+ self.PcdCodes = []
+ self.ExternImages = []
+ self.ExternLibraries = []
+ self.ExternDrivers = []
+ self.ExternCallBacks = []
+ self.Externs = []
+ self.BuildOptions = []
+ self.UserExtensions = None
+ self.MiscFiles = None
+ self.FileList = []
+
+##
+#
+# This acts like the main() function for the script, unless it is 'import'ed into another
+# script.
+#
+if __name__ == '__main__':
+ M = ModuleClass()