## @file
#  Instance of SMM memory check library.
#
#  SMM memory check library library implementation. This library consumes SMM_ACCESS2_PROTOCOL
#  to get SMRAM information. In order to use this library instance, the platform should produce
#  all SMRAM range via SMM_ACCESS2_PROTOCOL, including the range for firmware (like SMM Core
#  and SMM driver) and/or specific dedicated hardware.
#
#  Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = SmmMemLib
  MODULE_UNI_FILE                = SmmMemLib.uni
  FILE_GUID                      = 7F23F839-C81C-4B89-8132-69746FCBCE52
  MODULE_TYPE                    = DXE_SMM_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = SmmMemLib|DXE_SMM_DRIVER SMM_CORE
  CONSTRUCTOR                    = SmmMemLibConstructor
  DESTRUCTOR                     = SmmMemLibDestructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  SmmMemLib.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  SmmServicesTableLib
  UefiBootServicesTableLib
  DxeServicesTableLib
  DebugLib
  BaseMemoryLib
  HobLib
  MemoryAllocationLib
  UefiLib

[Protocols]
  gEfiSmmAccess2ProtocolGuid     ## CONSUMES
  gEfiSmmReadyToLockProtocolGuid ## CONSUMES
  gEfiSmmEndOfDxeProtocolGuid    ## CONSUMES

[Guids]
  gEfiMemoryAttributesTableGuid  ## CONSUMES ## SystemTable

[Depex]
  gEfiSmmAccess2ProtocolGuid
