## @file
#  Performance library instance used in SMM phase.
#
#  This library instance provides infrastructure for SMM drivers to log performance
#  data. It consumes SMM PerformanceEx or Performance Protocol published by SmmCorePerformanceLib
#  to log performance data. If both SMM PerformanceEx and Performance Protocol are not available,
#  it does not log any performance information.
#
#  Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
#  Copyright (c) Microsoft Corporation.
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = SmmPerformanceLib
  MODULE_UNI_FILE                = SmmPerformanceLib.uni
  FILE_GUID                      = 1EDD13E6-D0CD-4432-A692-FF65C9B4F039
  MODULE_TYPE                    = DXE_SMM_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PerformanceLib|DXE_SMM_DRIVER

  CONSTRUCTOR                    = SmmPerformanceLibConstructor
  DESTRUCTOR                     = SmmPerformanceLibDestructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  SmmPerformanceLibInternal.h
  SmmPerformanceLibInternal.c
  SmmPerformanceLib.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  PcdLib
  MmServicesTableLib
  DebugLib
  BaseMemoryLib

[Guids]
  gEdkiiSmmPerformanceMeasurementProtocolGuid          ## SOMETIMES_CONSUMES   ## UNDEFINED # Locate protocol

[Protocols]
  gEdkiiSmmExitBootServicesProtocolGuid                ## CONSUMES

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask    ## CONSUMES
