4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# This file is used to define class objects for DEC file. It will consumed by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#DecParser
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# This program and the accompanying materials are licensed and made available
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# under the terms and conditions of the BSD License which accompanies this
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync'''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDecObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync'''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## Import modules
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncimport os.path
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.Misc import Sdict
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_GUIDS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_PPIS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_PROTOCOLS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_DEC_DEFINES
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_INCLUDES
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_LIBRARY_CLASSES
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_USER_EXTENSIONS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_PCDS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Library.DataType import TAB_ARCH_COMMON
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## _DecComments
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Base class for all data objects which have head and tail comments
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass _DecComments:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ##constructor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._HeadComment = []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._TailComment = []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetComments
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetComments(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._HeadComment, self._TailComment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetHeadComment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetHeadComment(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._HeadComment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## SetHeadComment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Comment: comment content
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def SetHeadComment(self, Comment):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._HeadComment = Comment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetTailComment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetTailComment(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._TailComment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## SetTailComment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Comment: comment content
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def SetTailComment(self, Comment):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._TailComment = Comment
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## _DecBaseObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Base class that hold common info
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass _DecBaseObject(_DecComments):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecComments.__init__(self)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Key is combined with (Arch, SectionType)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Default is common
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ValueDict = Sdict()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgFullName = PkgFullName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PackagePath, self._FileName = os.path.split(PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetSectionName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetSectionName(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._SecName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPackagePath
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPackagePath(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._PackagePath
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPackageFile
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPackageFile(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._FileName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPackageFullName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPackageFullName(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._PkgFullName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## AddItem
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Add sub-item to current object, sub-class should override it if needed
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Item: Sub-item to be added
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Scope: A list store section name and arch info
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def AddItem(self, Item, Scope):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if not Scope:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if not Item:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArchModule = []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for Ele in Scope:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if Ele[1] in self.ValueDict:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ValueDict[Ele[1]].append(Item)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync else:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ValueDict[Ele[1]] = [Item]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArchModule.append(Ele[1])
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Item.ArchAndModuleType = ArchModule
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## _GetItemByArch
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Helper class used by sub-class
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Arch: arch
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def _GetItemByArch(self, Arch):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arch = Arch.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if Arch not in self.ValueDict:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self.ValueDict[Arch]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## _GetAllItems
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Get all items, union all arches, items in returned list are unique
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def _GetAllItems(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retlst = []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for Arch in self.ValueDict:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for Item in self.ValueDict[Arch]:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if Item not in Retlst:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retlst.append(Item)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return Retlst
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## _DecItemBaseObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Module type and arch the item belongs to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass _DecItemBaseObject(_DecComments):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecComments.__init__(self)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Item's arch, if PCD, also include PCD type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ArchAndModuleType = []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetArchList
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetArchList(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArchSet = set()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for Arch in self.ArchAndModuleType:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArchSet.add(Arch)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return list(ArchSet)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecDefineObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Class to hold define section infomation
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecDefineObject(_DecBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecBaseObject.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = TAB_DEC_DEFINES.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._DecSpec = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgName = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgGuid = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgVersion = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgUniFile = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPackageSpecification
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPackageSpecification(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._DecSpec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def SetPackageSpecification(self, DecSpec):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._DecSpec = DecSpec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPackageName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPackageName(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._PkgName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def SetPackageName(self, PkgName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgName = PkgName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPackageGuid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPackageGuid(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._PkgGuid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def SetPackageGuid(self, PkgGuid):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgGuid = PkgGuid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPackageVersion
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPackageVersion(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._PkgVersion
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def SetPackageVersion(self, PkgVersion):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgVersion = PkgVersion
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPackageUniFile
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPackageUniFile(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._PkgUniFile
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def SetPackageUniFile(self, PkgUniFile):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PkgUniFile = PkgUniFile
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetDefines
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetDefines(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetItemByArch(TAB_ARCH_COMMON)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetAllDefines
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetAllDefines(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetAllItems()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecDefineItemObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Each item of define section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecDefineItemObject(_DecItemBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecItemBaseObject.__init__(self)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.Key = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.Value = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __hash__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __hash__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return hash(self.Key + self.Value)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __eq__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __eq__(self, Other):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return id(self) == id(Other)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __str__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __str__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return str(self.ArchAndModuleType) + '\n' + self.Key + \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ' = ' + self.Value
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecIncludeObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Class to hold include section info
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecIncludeObject(_DecBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecBaseObject.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = TAB_INCLUDES.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetIncludes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetIncludes(self, Arch=TAB_ARCH_COMMON):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetItemByArch(Arch)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetAllIncludes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetAllIncludes(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetAllItems()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecIncludeItemObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Item of include section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecIncludeItemObject(_DecItemBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, File, Root):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.File = File
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.Root = Root
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecItemBaseObject.__init__(self)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __hash__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __hash__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return hash(self.File)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __eq__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __eq__(self, Other):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return id(self) == id(Other)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __str__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __str__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self.File
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecLibraryclassObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Class to hold library class section info
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecLibraryclassObject(_DecBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecBaseObject.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._PackagePath, self._FileName = os.path.split(PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = TAB_LIBRARY_CLASSES.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetLibraryclasses
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetLibraryclasses(self, Arch=TAB_ARCH_COMMON):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetItemByArch(Arch)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetAllLibraryclasses
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetAllLibraryclasses(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetAllItems()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecLibraryclassItemObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Item of library class section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecLibraryclassItemObject(_DecItemBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, Libraryclass, File, Root):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecItemBaseObject.__init__(self)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.File = File
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.Root = Root
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.Libraryclass = Libraryclass
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __hash__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __hash__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return hash(self.Libraryclass + self.File)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __eq__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __eq__(self, Other):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return id(self) == id(Other)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __str__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __str__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self.Libraryclass + '|' + self.File
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecPcdObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Class to hold PCD section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecPcdObject(_DecBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecBaseObject.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = TAB_PCDS.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## AddItem
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Diff from base class
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Item: Item
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Scope: Scope
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def AddItem(self, Item, Scope):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if not Scope:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if not Item:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArchModule = []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for Type, Arch in Scope:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (Type, Arch) in self.ValueDict:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ValueDict[Type, Arch].append(Item)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync else:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ValueDict[Type, Arch] = [Item]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArchModule.append([Type, Arch])
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Item.ArchAndModuleType = ArchModule
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPcds
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param PcdType: PcdType
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Arch: Arch
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPcds(self, PcdType, Arch=TAB_ARCH_COMMON):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PcdType = PcdType.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Arch = Arch.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (PcdType, Arch) not in self.ValueDict:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self.ValueDict[PcdType, Arch]
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPcdsByType
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param PcdType: PcdType
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPcdsByType(self, PcdType):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PcdType = PcdType.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retlst = []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for TypeInDict, Arch in self.ValueDict:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if TypeInDict != PcdType:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync continue
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for Item in self.ValueDict[PcdType, Arch]:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if Item not in Retlst:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retlst.append(Item)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return Retlst
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecPcdItemObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Item of PCD section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param _DecItemBaseObject: _DecItemBaseObject object
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecPcdItemObject(_DecItemBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, Guid, Name, Value, DatumType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Token, MaxDatumSize=''):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecItemBaseObject.__init__(self)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.TokenCName = Name
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.TokenSpaceGuidCName = Guid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.DatumType = DatumType
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.DefaultValue = Value
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.TokenValue = Token
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.MaxDatumSize = MaxDatumSize
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __hash__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __hash__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return hash(self.TokenSpaceGuidCName + self.TokenCName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __eq__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __eq__(self, Other):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return id(self) == id(Other)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetArchListOfType
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param PcdType: PcdType
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetArchListOfType(self, PcdType):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ItemSet = set()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PcdType = PcdType.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for Type, Arch in self.ArchAndModuleType:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if Type != PcdType:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync continue
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ItemSet.add(Arch)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return list(ItemSet)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecGuidObjectBase
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Base class for PPI, Protocol, and GUID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Hold same data but has different method for clarification in sub-class
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param _DecBaseObject: Dec Base Object
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecGuidObjectBase(_DecBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecBaseObject.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetGuidStyleItems
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Arch: Arch
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetGuidStyleItems(self, Arch=TAB_ARCH_COMMON):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetItemByArch(Arch)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetGuidStyleAllItems
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetGuidStyleAllItems(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetAllItems()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecGuidItemObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Item of GUID, PPI and Protocol section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param _DecItemBaseObject: Dec Item Base Object
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecGuidItemObject(_DecItemBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, CName, GuidCValue, GuidString):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecItemBaseObject.__init__(self)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.GuidCName = CName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.GuidCValue = GuidCValue
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.GuidString = GuidString
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __hash__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __hash__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return hash(self.GuidCName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __eq__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __eq__(self, Other):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return id(self) == id(Other)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## __str__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __str__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self.GuidCName + ' = ' + self.GuidCValue
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecGuidObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Class for GUID section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param DecGuidObjectBase: Dec Guid Object Base
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecGuidObject(DecGuidObjectBase):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DecGuidObjectBase.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = TAB_GUIDS.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetGuids
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Arch: Arch
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetGuids(self, Arch=TAB_ARCH_COMMON):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetItemByArch(Arch)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetAllGuids
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetAllGuids(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetAllItems()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecPpiObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Class for PPI seciont
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param DecGuidObjectBase: Dec Guid Object Base
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecPpiObject(DecGuidObjectBase):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DecGuidObjectBase.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = TAB_PPIS.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetPpis
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Arch: Arch
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetPpis(self, Arch=TAB_ARCH_COMMON):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetItemByArch(Arch)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetAllPpis
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetAllPpis(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetAllItems()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecProtocolObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Class for protocol section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param DecGuidObjectBase: Dec Guid Object Base
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecProtocolObject(DecGuidObjectBase):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DecGuidObjectBase.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = TAB_PROTOCOLS.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetProtocols
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Arch: Arch
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetProtocols(self, Arch=TAB_ARCH_COMMON):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetItemByArch(Arch)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetAllProtocols
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetAllProtocols(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self._GetAllItems()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecUserExtensionObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Class for user extension section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param _DecBaseObject: Dec Guid Object Base
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecUserExtensionObject(_DecBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, PkgFullName):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecBaseObject.__init__(self, PkgFullName)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self._SecName = TAB_USER_EXTENSIONS.upper()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ItemList = []
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetProtocols
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Item: Item
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Scope: Scope
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def AddItem(self, Item, Scope):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if not Scope:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync pass
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if not Item:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ItemList.append(Item)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## GetAllUserExtensions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def GetAllUserExtensions(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self.ItemList
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## DecUserExtensionItemObject
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Item for user extension section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param _DecItemBaseObject: Dec Item Base Object
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass DecUserExtensionItemObject(_DecItemBaseObject):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _DecItemBaseObject.__init__(self)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.UserString = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.UserId = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.IdString = ''
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync