Sync all class object with the latest spec.
authorhche10x <hche10x@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 17 Jul 2007 05:39:22 +0000 (05:39 +0000)
committerhche10x <hche10x@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 17 Jul 2007 05:39:22 +0000 (05:39 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@338 7335b38e-4728-0410-8992-fb3ffe349368

Source/Python/Common/DataType.py
Source/Python/CommonDataClass/CommonClass.py
Source/Python/CommonDataClass/ModuleClass.py
Source/Python/CommonDataClass/PackageClass.py
Source/Python/CommonDataClass/PlatformClass.py

index fb6561d..a7e968d 100644 (file)
@@ -55,6 +55,38 @@ SUP_MODULE_LIST = [SUP_MODULE_BASE, SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MOD
                    SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_USER_DEFINED]\r
 SUP_MODULE_LIST_STRING = TAB_SPACE_SPLIT.join(l for l in SUP_MODULE_LIST)\r
 \r
+EDK_COMPONENT_TYPE_LIBRARY = 'LIBRARY'\r
+EDK_COMPONENT_TYPE_SECUARITY_CORE = 'SECUARITY_CORE'\r
+EDK_COMPONENT_TYPE_PEI_CORE = 'PEI_CORE'\r
+EDK_COMPONENT_TYPE_COMBINED_PEIM_DRIVER = 'COMBINED_PEIM_DRIVER'\r
+EDK_COMPONENT_TYPE_PIC_PEIM = 'PIC_PEIM'\r
+EDK_COMPONENT_TYPE_RELOCATABLE_PEIM = 'RELOCATABLE_PEIM'\r
+EDK_COMPONENT_TYPE_BS_DRIVER = 'BS_DRIVER'\r
+EDK_COMPONENT_TYPE_RT_DRIVER = 'RT_DRIVER'\r
+EDK_COMPONENT_TYPE_SAL_RT_DRIVER = 'SAL_RT_DRIVER'\r
+EDK_COMPONENT_TYPE_APPLICATION = 'APPLICATION'\r
+\r
+BINARY_FILE_TYPE_FW = 'FW'\r
+BINARY_FILE_TYPE_GUID = 'GUID'\r
+BINARY_FILE_TYPE_PREEFORM = 'PREEFORM'\r
+BINARY_FILE_TYPE_UEFI_APP = 'UEFI_APP'\r
+BINARY_FILE_TYPE_UNI_UI = 'UNI_UI'\r
+BINARY_FILE_TYPE_UNI_VER = 'UNI_VER'\r
+BINARY_FILE_TYPE_LIB = 'LIB'\r
+BINARY_FILE_TYPE_PE32 = 'PE32'\r
+BINARY_FILE_TYPE_PIC = 'PIC'\r
+BINARY_FILE_TYPE_PEI_DEPEX = 'PEI_DEPEX'\r
+BINARY_FILE_TYPE_DXE_DEPEX = 'DXE_DEPEX'\r
+BINARY_FILE_TYPE_TE = 'TE'\r
+BINARY_FILE_TYPE_VER = 'VER'\r
+BINARY_FILE_TYPE_UI = 'UI'\r
+BINARY_FILE_TYPE_BIN = 'BIN'\r
+BINARY_FILE_TYPE_FV = 'FV'\r
+\r
+PLATFORM_COMPONENT_TYPE_LIBRARY = 'LIBRARY'\r
+PLATFORM_COMPONENT_TYPE_LIBRARY_CLASS = 'LIBRARY_CLASS'\r
+PLATFORM_COMPONENT_TYPE_MODULE = 'MODULE'\r
+\r
 TAB_SOURCES = 'Sources'\r
 TAB_SOURCES_COMMON = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_COMMON\r
 TAB_SOURCES_IA32 = TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IA32\r
index 32f2491..2597bfd 100644 (file)
@@ -1,7 +1,7 @@
 # Copyright (c) 2007, Intel Corporation\r
 # All rights reserved. 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
+# which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
 #\r
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 # This file is used to define common items of class object\r
 #\r
 \r
-class CommonClassObject(object):\r
-  def __init__(self):\r
-    self.Usage = []                          #ALWAYS_CONSUMED | SOMETIMES_CONSUMED | ALWAYS_PRODUCED | SOMETIMES_PRODUCED | TO_START | BY_START | PRIVATE\r
-    self.FeatureFlag = ''\r
-    self.SupArchList = []                    #EBC | IA32 | X64 | IPF | ARM | PPC\r
-    self.HelpText = ''\r
-    \r
-class CommonHeaderClassObject(object):\r
-  def __init__(self):\r
-    self.Abstract = ''\r
-    self.Description = ''\r
-    self.Copyright = ''\r
-    self.License = ''\r
-    self.Specification = ''\r
-    \r
-class ClonedRecordClassObject(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
+class CommonClass(object):\r
+    def __init__(self):\r
+        self.Usage = []                                   #ALWAYS_CONSUMED | SOMETIMES_CONSUMED | ALWAYS_PRODUCED | SOMETIMES_PRODUCED | TO_START | BY_START | PRIVATE\r
+        self.FeatureFlag = ''\r
+        self.SupArchList = []                             #EBC | IA32 | X64 | IPF | ARM | PPC\r
+        self.HelpText = ''\r
+        \r
+class CommonHeaderClass(object):\r
+    def __init__(self):\r
+        self.Abstract = ''\r
+        self.Description = ''\r
+        self.Copyright = ''\r
+        self.License = ''\r
+        self.Specification = {}                           #{ SpecificationName : SpecificationValue } \r
 \r
-class IdentificationClassObject(object):\r
-  def __init__(self):\r
-    self.Name = ''                                     #ModuleName(BaseName) / PackageName / PlatformName\r
-    self.Guid = ''\r
-    self.Version = ''\r
-    self.FileName = ''\r
-    self.FullPath = ''\r
+class DefineClass(object):\r
+    def __init__(self):\r
+        self.Define = {}                                  #{ DefineName : DefineValue, ...}\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
-class GuidProtocolPpiCommonClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.Name = ''\r
-    self.CName = ''\r
-    self.Guid = ''\r
-    self.Notify = False\r
-    self.GuidTypeList = []                             #DATA_HUB_RECORD | EFI_EVENT | EFI_SYSTEM_CONFIGURATION_TABLE | EFI_VARIABLE | GUID | HII_PACKAGE_LIST | HOB | TOKEN_SPACE_GUID\r
-    self.SupModuleList = []                            #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
-    CommonClassObject.__init__(self)\r
-    \r
-class LibraryClassClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.LibraryClass = ''\r
-    self.IncludeHeader = ''\r
-    self.RecommendedInstanceVersion = ''\r
-    self.RecommendedInstanceGuid = ''\r
-    self.SupModuleList = []                             #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
-    CommonClassObject.__init__(self)\r
+class IdentificationClass(object):\r
+    def __init__(self):\r
+        self.Name = ''                                    #ModuleName(BaseName) / PackageName / PlatformName\r
+        self.Guid = ''\r
+        self.Version = ''\r
+        self.FileName = ''\r
+        self.FullPath = ''\r
 \r
-class GuidClassObject(GuidProtocolPpiCommonClassObject):\r
-  def __init__(self):\r
-    GuidProtocolPpiCommonClassObject.__init__(self)\r
+class GuidProtocolPpiCommonClass(CommonClass):\r
+    def __init__(self):\r
+        self.Name = ''\r
+        self.CName = ''\r
+        self.Guid = ''\r
+        self.Notify = False\r
+        self.GuidTypeList = []                            #DATA_HUB_RECORD | EFI_EVENT | EFI_SYSTEM_CONFIGURATION_TABLE | EFI_VARIABLE | GUID | HII_PACKAGE_LIST | HOB | TOKEN_SPACE_GUID\r
+        self.SupModuleList = []                           #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
+        CommonClass.__init__(self)\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 = []                           #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
+        CommonClass.__init__(self)\r
+        DefineClass.__init__(self)\r
 \r
-class ProtocolClassObject(GuidProtocolPpiCommonClassObject):\r
-  def __init__(self):\r
-    GuidProtocolPpiCommonClassObject.__init__(self)\r
-    \r
-class PpiClassObject(GuidProtocolPpiCommonClassObject):    \r
-  def __init__(self):\r
-    GuidProtocolPpiCommonClassObject.__init__(self)\r
-    \r
-class SkuInfoClassObject(object):\r
-  def __init__(self):\r
-    self.SkuId = ''\r
-    #Used by Hii\r
-    self.VariableName = ''\r
-    self.VariableGuid = ''\r
-    self.VariableOffset = ''\r
-    self.HiiDefaultValue = ''\r
-    \r
-    #Used by Vpd\r
-    self.VpdOffset = ''\r
-    \r
-    #Used by Default\r
-    self.DefaultValue = ''\r
-    \r
-  def __str__(self):\r
-    rtn = rtn = str(self.SkuId) + "," + \\r
-          str(self.VariableName) + "," + \\r
-          str(self.VariableGuid) + "," + \\r
-          str(self.VariableOffset) + "," + \\r
-          str(self.HiiDefaultValue) + "," + \\r
-          str(self.VpdOffset) + "," + \\r
-          str(self.DefaultValue) + ","\r
-    return rtn\r
+class GuidClass(GuidProtocolPpiCommonClass):\r
+    def __init__(self):\r
+        GuidProtocolPpiCommonClass.__init__(self)\r
 \r
-class PcdClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.CName = ''\r
-    self.Token = ''\r
-    self.TokenSpaceGuidCName = ''\r
-    self.DatumType = ''                                 #UINT8 | UINT16 | UINT32 | UINT64 | VOID* | BOOLEAN \r
-    self.MaxDatumSize = ''\r
-    self.DefaultValue = ''\r
-    self.ItemType = ''                                  #FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX\r
-    self.ValidUsage = []                                #FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX\r
-    self.SkuInfoList = {}                               #{ [SkuId] : SkuInfoClassObject } \r
-    self.SupModuleList = []                             #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
-    CommonClassObject.__init__(self)\r
+class ProtocolClass(GuidProtocolPpiCommonClass):\r
+    def __init__(self):\r
+        GuidProtocolPpiCommonClass.__init__(self)\r
+        \r
+class PpiClass(GuidProtocolPpiCommonClass):        \r
+    def __init__(self):\r
+        GuidProtocolPpiCommonClass.__init__(self)\r
+        \r
+class SkuInfoClass(object):\r
+    def __init__(self):\r
+        self.SkuId = ''\r
+        #Used by Hii\r
+        self.VariableName = ''\r
+        self.VariableGuid = ''\r
+        self.VariableOffset = ''\r
+        self.HiiDefaultValue = ''\r
+        \r
+        #Used by Vpd\r
+        self.VpdOffset = ''\r
+        \r
+        #Used by Default\r
+        self.DefaultValue = ''\r
+        \r
+    def __str__(self):\r
+        rtn = rtn = str(self.SkuId) + "," + \\r
+                    str(self.VariableName) + "," + \\r
+                    str(self.VariableGuid) + "," + \\r
+                    str(self.VariableOffset) + "," + \\r
+                    str(self.HiiDefaultValue) + "," + \\r
+                    str(self.VpdOffset) + "," + \\r
+                    str(self.DefaultValue) + ","\r
+        return rtn\r
 \r
-class BuildOptionClassObject(object):\r
-  def __init__(self):\r
-    self.Option = ''\r
-    self.BuildTarget = ''\r
-    self.ToolChainFamily = ''\r
-    self.TagName = ''\r
-    self.ToolCode = ''\r
-    self.SupArchList = []                               #EBC | IA32 | X64 | IPF | ARM | PPC\r
-    \r
-class UserExtensionsClassObject(object):\r
-  def __init__(self):\r
-    self.UserID = ''\r
-    self.Identifier = 0\r
-    self.Content = ''\r
+class PcdClass(CommonClass):\r
+    def __init__(self):\r
+        self.CName = ''\r
+        self.Token = ''\r
+        self.TokenSpaceGuidCName = ''\r
+        self.DatumType = ''                               #UINT8 | UINT16 | UINT32 | UINT64 | VOID* | BOOLEAN \r
+        self.MaxDatumSize = ''\r
+        self.DefaultValue = ''\r
+        self.ItemType = ''                                #FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX\r
+        self.ValidUsage = []                              #FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX\r
+        self.SkuInfoList = {}                             #{ [SkuId] : SkuInfoClass } \r
+        self.SupModuleList = []                           #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
+        CommonClass.__init__(self)\r
+\r
+class BuildOptionClass(object):\r
+    def __init__(self):\r
+        self.Statement = ''                               #Family:Target_TagName_Tarch_Toolcode_FLAGS = String \r
+        self.Option = ''\r
+        self.BuildTarget = ''\r
+        self.ToolChainFamily = ''\r
+        self.TagName = ''\r
+        self.ToolCode = ''\r
+        self.SupArchList = []                             #EBC | IA32 | X64 | IPF | ARM | PPC\r
+        \r
+class IncludeClass(CommonClass):\r
+    def __init__(self):\r
+        self.FilePath = ''\r
+        self.ModuleType = ''\r
+        self.Comment = ''\r
+        CommonClass.__init__(self)        \r
+                \r
+class UserExtensionsClass(object):\r
+    def __init__(self):\r
+        self.UserID = ''\r
+        self.Identifier = 0\r
+        self.Content = ''\r
+        \r
+class IncludeStatementClass(object):\r
+    def __init__(self):\r
+        self.IncludeFile = ''\r
index 0237a58..8941bc3 100644 (file)
@@ -1,7 +1,7 @@
 # Copyright (c) 2007, Intel Corporation\r
 # All rights reserved. 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
+# which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
 #\r
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 # This file is used to define a class object to describe a module\r
 #\r
 \r
-from CommonClassObject import *\r
+from CommonClass import *\r
 \r
-class ModuleHeaderClassObject(IdentificationClassObject, CommonHeaderClassObject):\r
-  def __init__(self):\r
-    IdentificationClassObject.__init__(self)\r
-    CommonHeaderClassObject.__init__(self)\r
-    self.ModuleType = ''\r
-    self.SupArchList = []                             #EBC | IA32 | X64 | IPF | ARM | PPC\r
-    self.BinaryModule = False\r
-    self.OutputFileBasename = ''\r
-    self.ClonedFrom = []                              #[ ClonedRecordClassObject, ...]\r
-    self.PcdIsDriver = ''                             #PEI_PCD_DRIVER | DXE_PCD_DRIVER\r
-    self.TianoR8FlashMap_h = False\r
-    \r
-class ModuleSourceFileClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.SourceFile = ''\r
-    self.TagName = ''\r
-    self.ToolCode = ''\r
-    self.ToolChainFamily = ''\r
-    CommonClassObject.__init__(self)\r
-    \r
-class ModulePackageDependencyClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.FilePath = ''\r
-    self.PackageName = ''\r
-    self.PackageVersion = ''\r
-    self.PackageGuid = ''\r
-    CommonClassObject.__init__(self)\r
-    \r
-class ModuleEventClassObject(CommonClassObject):    \r
-  def __init__(self):\r
-    self.CName = ''\r
-    self.GuidCName = ''\r
-    self.Type = ''                                     #CREATE_EVENT | SIGNAL_EVENT\r
-    CommonClassObject.__init__(self)\r
-    \r
-class ModuleHobClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.Type = ''                                     #PHIT | MEMORY_ALLOCATION | RESOURCE_DESCRIPTOR | GUID_EXTENSION | FIRMWARE_VOLUME | CPU | POOL | CAPSULE_VOLUME\r
-    self.GuidCName = ''\r
-    CommonClassObject.__init__(self)\r
-    \r
-class ModuleVariableClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.Name = ''\r
-    self.GuidCName = ''\r
-    CommonClassObject.__init__(self)\r
+class ModuleHeaderClass(IdentificationClass, CommonHeaderClass, DefineClass):\r
+    def __init__(self):\r
+        IdentificationClass.__init__(self)\r
+        CommonHeaderClass.__init__(self)\r
+        DefineClass.__init__(self)\r
+        self.ModuleType = ''\r
+        self.SupArchList = []                       #EBC | IA32 | X64 | IPF | ARM | PPC\r
+        self.BinaryModule = False\r
+        self.OutputFileBasename = ''\r
+        self.ClonedFrom = []                        #[ ClonedRecordClass, ...]\r
+        self.PcdIsDriver = ''                       #PEI_PCD_DRIVER | DXE_PCD_DRIVER\r
+        self.TianoR8FlashMap_h = False\r
+        self.InfVersion = ''\r
+        self.EfiSpecificationVersion = ''\r
+        self.EdkReleaseVersion = ''\r
+        self.LibraryClass = []                      #[ LibraryClass, ...]\r
+        self.ComponentType = ''                     #LIBRARY | SECURITY_CORE | PEI_CORE | COMBINED_PEIM_DRIVER | PIC_PEIM | RELOCATABLE_PEIM | BS_DRIVER | RT_DRIVER | SAL_RT_DRIVER | APPLICATION\r
+        self.MakefileName = ''\r
+        self.BuildNumber = ''\r
+        self.BuildType = ''\r
+        self.FfsExt = ''\r
+        self.FvExt = ''\r
+        self.SourceFv = ''\r
+        self.CustomMakefile = ''\r
+        \r
+class ModuleSourceFileClass(CommonClass):\r
+    def __init__(self):\r
+        self.SourceFile = ''\r
+        self.TagName = ''\r
+        self.ToolCode = ''\r
+        self.ToolChainFamily = ''\r
+        CommonClass.__init__(self)\r
 \r
-class ModuleBootModeClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.Name = ''                                     #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 \r
-    CommonClassObject.__init__(self)\r
-    \r
-class ModuleSystemTableClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.CName = ''\r
-    CommonClassObject.__init__(self)\r
+class ModuleBinaryFileClass(CommonClass):\r
+    def __init__(self):\r
+        self.BinaryFile = ''\r
+        self.FileType = ''                          #FW | GUID | PREEFORM | UEFI_APP | UNI_UI | UNI_VER | LIB | PE32 | PIC | PEI_DEPEX | DXE_DEPEX | TE | VER | UI | BIN | FV\r
+        self.Target = ''\r
+        CommonClass.__init__(self)\r
+        \r
+class ModulePackageDependencyClass(CommonClass, DefineClass):\r
+    def __init__(self):\r
+        self.FilePath = ''\r
+        self.PackageName = ''\r
+        self.PackageVersion = ''\r
+        self.PackageGuid = ''\r
+        CommonClass.__init__(self)\r
+        DefineClass.__init__(self)       \r
+        \r
+class ModuleLibraryClass(CommonClass):\r
+    def __init__(self):\r
+        self.Library = ''\r
+        CommonClass.__init__(self)\r
+        \r
+class ModuleEventClass(CommonClass):        \r
+    def __init__(self):\r
+        self.CName = ''\r
+        self.GuidCName = ''\r
+        self.Type = ''                              #CREATE_EVENT | SIGNAL_EVENT\r
+        CommonClass.__init__(self)\r
+        \r
+class ModuleHobClass(CommonClass):\r
+    def __init__(self):\r
+        self.Type = ''                              #PHIT | MEMORY_ALLOCATION | RESOURCE_DESCRIPTOR | GUID_EXTENSION | FIRMWARE_VOLUME | CPU | POOL | CAPSULE_VOLUME\r
+        self.GuidCName = ''\r
+        CommonClass.__init__(self)\r
+        \r
+class ModuleVariableClass(CommonClass):\r
+    def __init__(self):\r
+        self.Name = ''\r
+        self.GuidCName = ''\r
+        CommonClass.__init__(self)\r
 \r
-class ModuleDataHubClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.CName = ''\r
-    CommonClassObject.__init__(self)    \r
+class ModuleBootModeClass(CommonClass):\r
+    def __init__(self):\r
+        self.Name = ''                              #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 \r
+        CommonClass.__init__(self)\r
+        \r
+class ModuleSystemTableClass(CommonClass):\r
+    def __init__(self):\r
+        self.CName = ''\r
+        CommonClass.__init__(self)\r
 \r
-class ModuleHiiPackageClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.CName = ''\r
-    CommonClassObject.__init__(self)\r
-    \r
-class ModuleExternImageClassObject(object):\r
-  def __init__(self):\r
-    self.ModuleEntryPoint = ''\r
-    self.ModuleUnloadImage = ''\r
+class ModuleDataHubClass(CommonClass):\r
+    def __init__(self):\r
+        self.CName = ''\r
+        CommonClass.__init__(self)        \r
 \r
-class ModuleExternLibraryClassObject(object):\r
-  def __init__(self):\r
-    self.Constructor = ''\r
-    self.Destructor = ''\r
+class ModuleHiiPackageClass(CommonClass):\r
+    def __init__(self):\r
+        self.CName = ''\r
+        CommonClass.__init__(self)\r
+        \r
+class ModuleExternImageClass(object):\r
+    def __init__(self):\r
+        self.ModuleEntryPoint = ''\r
+        self.ModuleUnloadImage = ''\r
 \r
-class ModuleExternDriverClassObject(object):\r
-  def __init__(self):\r
-    self.DriverBinding= ''\r
-    self.ComponentName = ''\r
-    self.DriverConfig = ''\r
-    self.DriverDiag = ''\r
+class ModuleExternLibraryClass(object):\r
+    def __init__(self):\r
+        self.Constructor = ''\r
+        self.Destructor = ''\r
 \r
-class ModuleExternCallBackClassObject(object):\r
-  def __init__(self):\r
-    self.SetVirtualAddressMapCallBack = ''\r
-    self.ExitBootServicesCallBack = ''\r
-    \r
-class ModuleClassObject(object):\r
-  def __init__(self):\r
-    self.Header = ModuleHeaderClassObject()\r
-    self.LibraryClasses = []                           #[ LibraryClassClassObject, ...]\r
-    self.Sources = []                                  #[ ModuleSourceFilesClassObject, ...]\r
-    self.BinaryFiles = []                              #[ ModuleBinaryFilesClassObject, ...]\r
-    self.NonProcessedFiles = []                        #[ '', '', ...]\r
-    self.PackageDependencies = []                      #[ PackageDependencyClassObject, ...]\r
-    self.Protocols = []                                #[ ProtocolClassObject, ...]\r
-    self.Ppis = []                                     #[ PpiClassObject, ...]\r
-    self.Events = []                                   #[ ModuleEventClassObject, ...]\r
-    self.Hobs = []                                     #[ ModuleHobClassObject, ...] \r
-    self.Variables = []                                #[ ModuleVariableClassObject, ...]\r
-    self.BootModes = []                                #[ ModuleBootModeClassObject, ...]\r
-    self.SystemTables = []                             #[ ModuleSystemTableClassObject, ...]\r
-    self.DataHubs = []                                 #[ ModuleDataHubClassObject, ...]\r
-    self.HiiPackages = []                              #[ ModuleHiiPackageClassObject, ...]\r
-    self.Guids = []                                    #[ GuidClassObject, ...]\r
-    self.PcdCodes = []                                 #[ TokenSpaceGuidCName)] : PcdClassObject, ...]\r
-    self.ExternImages = []                             #[ ModuleExternImageClassObject, ...]\r
-    self.ExternLibraries = []                          #[ ModuleExternLibraryClassObject, ...]\r
-    self.ExternDrivers = []                            #[ ModuleExternDriverClassObject, ...]\r
-    self.ExternCallBacks = []                          #[ ModuleExternCallBackClassObject, ...]        \r
-    self.BuildOptions = []                             #[ BuildOptionClassObject, ...]\r
-    self.UserExtensions = []                           #[ UserExtensionsClassObject, ...]\r
+class ModuleExternDriverClass(object):\r
+    def __init__(self):\r
+        self.DriverBinding= ''\r
+        self.ComponentName = ''\r
+        self.DriverConfig = ''\r
+        self.DriverDiag = ''\r
+\r
+class ModuleExternCallBackClass(object):\r
+    def __init__(self):\r
+        self.SetVirtualAddressMapCallBack = ''\r
+        self.ExitBootServicesCallBack = ''\r
+        \r
+class ModuleClass(object):\r
+    def __init__(self):\r
+        self.Header = ModuleHeaderClass()\r
+        self.LibraryClasses = []                    #[ LibraryClassClass, ...]\r
+        self.Libraries = []                         #[ ModuleLibraryClass, ...]\r
+        self.Sources = []                           #[ ModuleSourceFilesClass, ...]\r
+        self.Binaries = []                          #[ ModuleBinaryFilesClass, ...]\r
+        self.NonProcessedFiles = []                 #[ '', '', ...]\r
+        self.PackageDependencies = []               #[ ModulePackageDependencyClass, ... ] \r
+        self.Nmake = {}                             #{ Name : Value, ... }\r
+        self.Depex = []                             #[ '', '', ... ]\r
+        self.Includes = []                          #[ IncludeClass, ...]\r
+        self.Protocols = []                         #[ ProtocolClass, ...]\r
+        self.Ppis = []                              #[ PpiClass, ...]\r
+        self.Events = []                            #[ ModuleEventClass, ...]\r
+        self.Hobs = []                              #[ ModuleHobClass, ...] \r
+        self.Variables = []                         #[ ModuleVariableClass, ...]\r
+        self.BootModes = []                         #[ ModuleBootModeClass, ...]\r
+        self.SystemTables = []                      #[ ModuleSystemTableClass, ...]\r
+        self.DataHubs = []                          #[ ModuleDataHubClass, ...]\r
+        self.HiiPackages = []                       #[ ModuleHiiPackageClass, ...]\r
+        self.Guids = []                             #[ GuidClass, ...]\r
+        self.PcdCodes = []                          #[ TokenSpaceGuidCName)] : PcdClass, ...]\r
+        self.ExternImages = []                      #[ ModuleExternImageClass, ...]\r
+        self.ExternLibraries = []                   #[ ModuleExternLibraryClass, ...]\r
+        self.ExternDrivers = []                     #[ ModuleExternDriverClass, ...]\r
+        self.ExternCallBacks = []                   #[ ModuleExternCallBackClass, ...]                \r
+        self.BuildOptions = []                      #[ BuildOptionClass, ...]\r
+        self.UserExtensions = []                    #[ UserExtensionsClass, ...]\r
 \r
 if __name__ == '__main__':\r
-  m = ModuleClassObject()\r
+    m = ModuleClass()\r
index ed51ce8..baa89f7 100644 (file)
@@ -1,7 +1,7 @@
 # Copyright (c) 2007, Intel Corporation\r
 # All rights reserved. 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
+# which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
 #\r
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 # This file is used to define a class object to describe a package\r
 #\r
 \r
-from CommonClassObject import *\r
+from CommonClass import *\r
 \r
-class PackageHeaderClassObject(IdentificationClassObject, CommonHeaderClassObject):\r
-  def __init__(self):\r
-    IdentificationClassObject.__init__(self)\r
-    CommonHeaderClassObject.__init__(self)\r
-    self.ReadOnly = False\r
-    self.RePackage = False\r
-    self.ClonedFrom = []                               #[ ClonedRecordClassObject, ...]\r
-    \r
-class PackageIndustryStdHeaderClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    self.Name = ''\r
-    self.IncludeHeader = ''\r
-    CommonClassObject.__init__(self)\r
-    \r
-class PackageIncludePkgHeaderClassObject(object):\r
-  def __init__(self):\r
-    self.IncludeHeader = ''\r
-    self.ModuleType = []                               #BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | TOOL | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED\r
+class PackageHeaderClass(IdentificationClass, CommonHeaderClass):\r
+    def __init__(self):\r
+        IdentificationClass.__init__(self)\r
+        CommonHeaderClass.__init__(self)\r
+        self.DecSpecification = ''\r
+        self.ReadOnly = False\r
+        self.RePackage = False\r
+        self.ClonedFrom = []                                   #[ ClonedRecordClass, ...]\r
+        \r
+class PackageIndustryStdHeaderClass(CommonClass):\r
+    def __init__(self):\r
+        self.Name = ''\r
+        self.IncludeHeader = ''\r
+        CommonClass.__init__(self)\r
+        \r
+class PackageIncludePkgHeaderClass(object):\r
+    def __init__(self):\r
+        self.IncludeHeader = ''\r
+        self.ModuleType = []                                   #BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | TOOL | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED\r
 \r
-class PackageClassObject(object):\r
-  def __init__(self):\r
-    self.Header = PackageHeaderClassObject()\r
-    self.LibraryClassDeclarations = []                 #[ LibraryClassClassObject, ...]\r
-    self.IndustryStdHeaders = []                       #[ PackageIndustryStdHeader, ...]\r
-    self.ModuleFiles = []                              #[ '', '', ...] \r
-    self.PackageIncludePkgHeaders = []                 #[ PackageIncludePkgHeader, ...]\r
-    self.GuidDeclarations = []                         #[ GuidClassObject, ...]\r
-    self.ProtocolDeclarations = []                     #[ ProtocolClassObject, ...]\r
-    self.PpiDeclarations = []                          #[ PpiClassObject, ...]\r
-    self.PcdDeclarations = []                          #[ PcdClassObject, ...]\r
-    self.UserExtensions = []                           #[ UserExtensionsClassObject, ...]\r
-    \r
+class PackageClass(object):\r
+    def __init__(self):\r
+        self.Header = PackageHeaderClass()\r
+        self.Includes = []                                     #[ IncludeClass, ...]   \r
+        self.LibraryClassDeclarations = []                     #[ LibraryClassClass, ...]\r
+        self.IndustryStdHeaders = []                           #[ PackageIndustryStdHeader, ...]\r
+        self.ModuleFiles = []                                  #[ '', '', ...] \r
+        self.PackageIncludePkgHeaders = []                     #[ PackageIncludePkgHeader, ...]\r
+        self.GuidDeclarations = []                             #[ GuidClass, ...]\r
+        self.ProtocolDeclarations = []                         #[ ProtocolClass, ...]\r
+        self.PpiDeclarations = []                              #[ PpiClass, ...]\r
+        self.PcdDeclarations = []                              #[ PcdClass, ...]\r
+        self.UserExtensions = []                               #[ UserExtensionsClass, ...]\r
+        \r
 if __name__ == '__main__':\r
-  p = PackageClassObject()\r
+    p = PackageClass()\r
index 01b7d3b..0c1a8da 100644 (file)
@@ -1,7 +1,7 @@
 # Copyright (c) 2007, Intel Corporation\r
 # All rights reserved. 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
+# which accompanies this distribution.    The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
 #\r
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 # This file is used to define a class object to describe a platform\r
 #\r
 \r
-from CommonClassObject import *\r
+from CommonClass import *\r
 \r
-class PlatformSkuInfoClassObject(object):\r
-  def __init__(self):\r
-    self.SkuId = ''\r
-    self.String = ''\r
+class SkuInfoListClass(IncludeStatementClass):\r
+    def __init__(self):\r
+        IncludeStatementClass.__init__(self)\r
+        self.SkuInfoList = {}                                       #{ SkuName : SkuId }\r
 \r
-class PlatformHeaderClassObject(IdentificationClassObject, CommonHeaderClassObject):\r
-  def __init__(self):\r
-    IdentificationClassObject.__init__(self)\r
-    CommonHeaderClassObject.__init__(self)\r
-    self.SupArchList = []                              #EBC | IA32 | X64 | IPF | ARM | PPC\r
-    self.BuildTargets = []                             #RELEASE | DEBUG\r
-    self.IntermediateDirectories = ''                  #MODULE | UNIFIED\r
-    self.OutputDirectory = ''                          \r
-    self.ForceDebugTarget = ''\r
-    self.ClonedFrom = []                               #[ ClonedRecordClassObject, ...]\r
+class PlatformHeaderClass(IdentificationClass, CommonHeaderClass, DefineClass):\r
+    def __init__(self):\r
+        IdentificationClass.__init__(self)\r
+        CommonHeaderClass.__init__(self)\r
+        DefineClass.__init__(self)\r
+        self.DscSpecification = ''\r
+        self.SupArchList = []                                        #EBC | IA32 | X64 | IPF | ARM | PPC\r
+        self.BuildTargets = []                                       #RELEASE | DEBUG\r
+        self.IntermediateDirectories = ''                            #MODULE | UNIFIED\r
+        self.OutputDirectory = ''                                                    \r
+        self.ForceDebugTarget = ''\r
+        self.SkuId = ''\r
+        self.BuildNumber = ''\r
+        self.MakefileName = ''\r
+        self.ClonedFrom = []                                         #[ ClonedRecordClass, ...]\r
 \r
-class PlatformFlashDefinitionFileClassObject(object):\r
-  def __init__(self):\r
-    self.Id = ''\r
-    self.UiName = ''\r
-    self.Preferred = False\r
-    self.FilePath = ''\r
+class PlatformFlashDefinitionFileClass(object):\r
+    def __init__(self):\r
+        self.Id = ''\r
+        self.UiName = ''\r
+        self.Preferred = False\r
+        self.FilePath = ''\r
 \r
 class PlatformFvImageOption(object):\r
-  def __init__(self):\r
-    self.FvImageOptionName = ''\r
-    self.FvImageOptionValues = []\r
-    \r
-class PlatformFvImageClassObject(object):\r
-  def __init__(self):\r
-    self.Name = ''\r
-    self.Value = ''\r
-    self.Type = ''                                     #Attributes | Options | Components | ImageName \r
-    self.FvImageNames = []\r
-    self.FvImageOptions = []                           #[ PlatformFvImageOption, ...]\r
+    def __init__(self):\r
+        self.FvImageOptionName = ''\r
+        self.FvImageOptionValues = []\r
+        \r
+class PlatformFvImageClass(object):\r
+    def __init__(self):\r
+        self.Name = ''\r
+        self.Value = ''\r
+        self.Type = ''                                               #Attributes | Options | Components | ImageName \r
+        self.FvImageNames = []\r
+        self.FvImageOptions = []                                     #[ PlatformFvImageOption, ...]\r
 \r
-class PlatformFvImageNameClassObject(object):\r
-  def __init__(self):\r
-    self.Name = ''\r
-    self.Type = ''                                     #FV_MAIN | FV_MAIN_COMPACT | NV_STORAGE | FV_RECOVERY | FV_RECOVERY_FLOPPY | FV_FILE | CAPSULE_CARGO | NULL | USER_DEFINED \r
-    self.FvImageOptions = []                           #[ PlatformFvImageOption, ...]\r
-    \r
-class PlatformFvImagesClassObject(object):\r
-  def __init__(self):\r
-    self.FvImages1 = []                                #[ PlatformFvImageClassObject, ...]\r
-    self.FvImages2 = []                                #[ PlatformFvImageNameClassObject, ...]\r
+class PlatformFvImageNameClass(object):\r
+    def __init__(self):\r
+        self.Name = ''\r
+        self.Type = ''                                               #FV_MAIN | FV_MAIN_COMPACT | NV_STORAGE | FV_RECOVERY | FV_RECOVERY_FLOPPY | FV_FILE | CAPSULE_CARGO | NULL | USER_DEFINED \r
+        self.FvImageOptions = []                                     #[ PlatformFvImageOption, ...]\r
+        \r
+class PlatformFvImagesClass(object):\r
+    def __init__(self):\r
+        self.FvImages1 = []                                          #[ PlatformFvImageClass, ...]\r
+        self.FvImages2 = []                                          #[ PlatformFvImageNameClass, ...]\r
 \r
-class PlatformAntTaskClassObject(object):\r
-  def __init__(self):\r
-    self.Id = ''\r
-    self.AntCmdOptions = ''\r
-    self.FilePath = ''\r
+class PlatformAntTaskClass(object):\r
+    def __init__(self):\r
+        self.Id = ''\r
+        self.AntCmdOptions = ''\r
+        self.FilePath = ''\r
 \r
-class PlatformFfsSectionClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    CommonClassObject.__init__(self)\r
-    self.BindingOrder        = ''\r
-    self.Compressible        = ''\r
-    self.SectionType         = ''\r
-    self.EncapsulationType   = ''\r
-    self.ToolName            = ''\r
-    self.Filenames = []\r
-    self.Args                = ''\r
-    self.OutFile             = ''\r
-    self.OutputFileExtension = ''\r
-    self.ToolNameElement     = ''\r
-    \r
-class PlatformFfsSectionsClassObject(CommonClassObject):\r
-  def __init__(self):\r
-    CommonClassObject.__init__(self)    \r
-    self.BindingOrder      = ''\r
-    self.Compressible      = ''\r
-    self.SectionType       = ''\r
-    self.EncapsulationType = ''\r
-    self.ToolName          = ''\r
-    self.Section = []                                  #[ PlatformFfsSectionClassObject, ... ]\r
-    self.Sections = []                                 #[ PlatformFfsSectionsClassObject, ...]\r
-    \r
-class PlatformFfsClassObject(object):\r
-  def __init__(self):\r
-    self.Attribute = {}                                #{ [(Name, PlatformFfsSectionsClassObject)] : Value}\r
-    self.Sections = []                                 #[ PlatformFfsSectionsClassObject]\r
+class PlatformFfsSectionClass(CommonClass):\r
+    def __init__(self):\r
+        CommonClass.__init__(self)\r
+        self.BindingOrder                = ''\r
+        self.Compressible                = ''\r
+        self.SectionType                 = ''\r
+        self.EncapsulationType     = ''\r
+        self.ToolName                        = ''\r
+        self.Filenames = []\r
+        self.Args                                = ''\r
+        self.OutFile                         = ''\r
+        self.OutputFileExtension = ''\r
+        self.ToolNameElement         = ''\r
+        \r
+class PlatformFfsSectionsClass(CommonClass):\r
+    def __init__(self):\r
+        CommonClass.__init__(self)        \r
+        self.BindingOrder            = ''\r
+        self.Compressible            = ''\r
+        self.SectionType             = ''\r
+        self.EncapsulationType = ''\r
+        self.ToolName                    = ''\r
+        self.Section = []                                            #[ PlatformFfsSectionClass, ... ]\r
+        self.Sections = []                                           #[ PlatformFfsSectionsClass, ...]\r
+        \r
+class PlatformFfsClass(object):\r
+    def __init__(self):\r
+        self.Attribute = {}                                          #{ [(Name, PlatformFfsSectionsClass)] : Value}\r
+        self.Sections = []                                           #[ PlatformFfsSectionsClass]\r
 \r
-class PlatformBuildOptionClassObject(object):\r
-  def __init__(self):\r
-    self.UserDefinedAntTasks = {}                      #{ [Id] : PlatformAntTaskClassObject, ...}\r
-    self.Options = []                                  #[ BuildOptionClassObject, ...]\r
-    self.UserExtensions = {}                           #{ [(UserID, Identifier)] : UserExtensionsClassObject, ...}\r
-    self.FfsKeyList = {}                               #{ [FfsKey]: PlatformFfsClassObject, ...} \r
+class PlatformBuildOptionClass(object):\r
+    def __init__(self):\r
+        self.UserDefinedAntTasks = {}                                #{ [Id] : PlatformAntTaskClass, ...}\r
+        self.Options = []                                            #[ BuildOptionClass, ...]\r
+        self.UserExtensions = {}                                     #{ [(UserID, Identifier)] : UserExtensionsClass, ...}\r
+        self.FfsKeyList = {}                                         #{ [FfsKey]: PlatformFfsClass, ...} \r
 \r
-class PlatformLibraryInstanceClassObject(object):\r
-  def __init__(self):\r
-    self.Name = ''\r
-    self.ModuleGuid = ''\r
-    self.ModuleVersion = ''\r
-    self.PackageGuid = ''\r
-    self.PackageVersion = ''\r
+class PlatformLibraryInstanceClass(DefineClass):\r
+    def __init__(self):\r
+        DefineClass.__init__(self)\r
+        self.Name = ''\r
+        self.FilePath = ''\r
+        self.ModuleGuid = ''\r
+        self.ModuleVersion = ''\r
+        self.PackageGuid = ''\r
+        self.PackageVersion = ''\r
 \r
-class PlatformModuleSaBuildOptionClassObject(object):\r
-  def __init__(self):\r
-    self.FvBinding = ''\r
-    self.FfsFileNameGuid = ''\r
-    self.FfsFormatKey = ''\r
-    self.Options = []                                  #[ BuildOptionClassObject, ...]\r
-        \r
-class PlatformModuleClassObject(object):\r
-  def __init__(self):\r
-    self.Name = ''\r
-    self.FilePath = ''\r
-    self.LibraryInstances = []                         #[ PlatformLibraryInstanceClassObject, ...]\r
-    self.Specifications = []                           #[ '', '', ...]\r
-    self.PcdBuildDefinitions = []                      #[ PcdClassObject, ...]\r
-    self.ModuleSaBuildOption = PlatformModuleSaBuildOptionClassObject()\r
+class PlatformModuleSaBuildOptionClass(DefineClass):\r
+    def __init__(self):\r
+        self.FvBinding = ''\r
+        self.FfsFileNameGuid = ''\r
+        self.FfsFormatKey = ''\r
+        self.Options = []                                            #[ BuildOptionClass, ...]\r
+                \r
+class PlatformModuleClass(CommonClass, DefineClass, IncludeStatementClass):\r
+    def __init__(self):\r
+        CommonClass.__init__(self)\r
+        DefineClass.__init__(self)\r
+        IncludeStatementClass.__init__(self)\r
+        self.Name = ''                                               #Library name or libraryclass name or module name\r
+        self.FilePath = ''\r
+        self.Type = ''                                               #LIBRARY | LIBRARY_CLASS | MODULE, used by dsc\r
+        self.LibraryClasses = []                                     #[ PlatformLibraryInstanceClass, ...]\r
+        self.PcdBuildDefinitions = []                                #[ PcdClass, ...]\r
+        self.ModuleSaBuildOption = PlatformModuleSaBuildOptionClass()\r
+        self.Specifications = []                                     #[ '', '', ...]\r
     \r
-class PlatformClassObject(object):\r
-  def __init__(self):\r
-    self.Header = PlatformHeaderClassObject()\r
-    self.SkuInfoList = []                              #[ PlatformSkuInfoClassObject ]\r
-    self.FlashDefinitionFile = None                    #PlatformFlashDefinitionFileClassObject()\r
-    self.FvImages = []                                 #[ PlatformFvImagesClassObject, ...]\r
-    self.Modules = []                                  #[ PlatformModuleClassObject, ...]\r
-    self.BuildOptions = []                             #[ PlatformBuildOptionClassObject, ...]\r
-    self.DynamicPcdBuildDefinitions = []               #[ PcdClassObject, ...] \r
-    self.Fdf = FdfClassObject()\r
-    self.UserExtensions = []                           #[ UserExtensionsClassObject, ...]\r
+class PlatformClass(object):\r
+    def __init__(self):\r
+        self.Header = PlatformHeaderClass()\r
+        self.SkuInfoList = SkuInfoListClass()\r
+        self.Modules = []                                            #[ PlatformModuleClass, ...]\r
+        self.FlashDefinitionFile = None                              #PlatformFlashDefinitionFileClass()\r
+        self.FvImages = []                                           #[ PlatformFvImagesClass, ...]\r
+        self.BuildOptions = []                                       #[ PlatformBuildOptionClass, ...]\r
+        self.DynamicPcdBuildDefinitions = []                         #[ PcdClass, ...] \r
+        self.Fdf = []                                                #[ FdfClass, ...]\r
+        self.UserExtensions = []                                     #[ UserExtensionsClass, ...]\r
 \r
 if __name__ == '__main__':\r
-  p = PlatformClassObject()\r
+    p = PlatformClass()\r