## @file
# Instance of Memory Allocation Library using SMM Services Table,
# with memory profile support.
#
# Memory Allocation Library that uses services from the SMM Services Table to 
# allocate and free memory, with memory profile support.
#
# The implementation of this instance is copied from UefiMemoryAllocationLib
# in MdePkg and updated to support both MemoryAllocationLib and MemoryProfileLib.
#
# Copyright (c) 2010 - 2016, 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                      = SmmMemoryAllocationProfileLib
  MODULE_UNI_FILE                = SmmMemoryAllocationProfileLib.uni
  FILE_GUID                      = DC50729F-8633-47ab-8FD3-6939688CEE4C
  MODULE_TYPE                    = DXE_SMM_DRIVER
  VERSION_STRING                 = 1.0
  PI_SPECIFICATION_VERSION       = 0x0001000A
  LIBRARY_CLASS                  = MemoryAllocationLib|DXE_SMM_DRIVER 
  CONSTRUCTOR                    = SmmMemoryAllocationLibConstructor
  DESTRUCTOR                     = SmmMemoryAllocationLibDestructor
  LIBRARY_CLASS                  = MemoryProfileLib|DXE_SMM_DRIVER
  CONSTRUCTOR                    = SmmMemoryProfileLibConstructor

#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  MemoryAllocationLib.c
  SmmMemoryProfileLib.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  DebugLib
  BaseMemoryLib
  SmmServicesTableLib
  UefiBootServicesTableLib

[Protocols]
  gEfiSmmAccess2ProtocolGuid    ## CONSUMES  

[Guids]
  gEdkiiMemoryProfileGuid       ## SOMETIMES_CONSUMES   ## GUID # Locate protocol
  gEdkiiSmmMemoryProfileGuid    ## SOMETIMES_CONSUMES   ## GUID # Locate protocol

[Depex]
  gEfiSmmAccess2ProtocolGuid

