## @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>
#  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.
#
##

[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

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  SmmPerformanceLib.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  PcdLib
  SmmServicesTableLib
  DebugLib
  BaseMemoryLib

[Guids]
  gEdkiiSmmPerformanceMeasurementProtocolGuid          ## SOMETIMES_CONSUMES   ## UNDEFINED # Locate protocol

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask    ## CONSUMES
