## @file
#  Report Status Code Router Driver which produces MM Report Stataus Code Handler Protocol and MM Status Code Protocol.
#
#  Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
#  Copyright (c) Microsoft Corporation.
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = ReportStatusCodeRouterStandaloneMm
  FILE_GUID                      = EAEEDEF9-ABE7-4B95-82B0-5A534C899B46
  MODULE_TYPE                    = MM_STANDALONE
  PI_SPECIFICATION_VERSION       = 0x00010032
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = GenericStatusCodeStandaloneMmEntry

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  ReportStatusCodeRouterCommon.c
  ReportStatusCodeRouterCommon.h
  ReportStatusCodeRouterStandaloneMm.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  MmServicesTableLib
  StandaloneMmDriverEntryPoint
  DebugLib
  BaseLib
  SynchronizationLib
  MemoryAllocationLib

[Protocols]
  gEfiMmRscHandlerProtocolGuid               ## PRODUCES
  gEfiMmStatusCodeProtocolGuid               ## PRODUCES

[Depex]
  TRUE
