## @file
#  This module collects performance data for SMM driver boot records and S3 Suspend Performance Record.
#
#  This module registers report status code listener to collect performance data
#  for SMM boot performance records and S3 Suspend Performance Record.
#
#  Copyright (c) 2011 - 2021, Intel Corporation. All rights reserved.<BR>
#  Copyright (c) Microsoft Corporation.
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = FirmwarePerformanceStandaloneMm
  FILE_GUID                      = 827AC29D-E52D-4B1A-874A-C6577E0699CF
  MODULE_TYPE                    = MM_STANDALONE
  VERSION_STRING                 = 1.0
  PI_SPECIFICATION_VERSION       = 0x00010032
  ENTRY_POINT                    = FirmwarePerformanceStandaloneMmEntryPoint

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  FirmwarePerformanceCommon.c
  FirmwarePerformanceCommon.h
  FirmwarePerformanceStandaloneMm.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  StandaloneMmPkg/StandaloneMmPkg.dec

[LibraryClasses]
  StandaloneMmDriverEntryPoint
  MmServicesTableLib
  BaseLib
  DebugLib
  TimerLib
  LockBoxLib
  PcdLib
  BaseMemoryLib
  MemoryAllocationLib
  SynchronizationLib
  MemLib

[Protocols]
  gEfiMmRscHandlerProtocolGuid                 ## CONSUMES

[Guids]
  ## SOMETIMES_PRODUCES   ## UNDEFINED # SaveLockBox
  ## SOMETIMES_CONSUMES   ## UNDEFINED # StatusCode Data
  gEfiFirmwarePerformanceGuid

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdProgressCodeS3SuspendStart  ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdProgressCodeS3SuspendEnd    ## CONSUMES

[Depex]
  gEfiMmRscHandlerProtocolGuid
