## @file
# Memory Allocation Library instance dedicated to DXE Core.
# The implementation borrows the DxeCore Memory Allocation services as the primitive
# for memory allocation instead of using UEFI boot services in an indirect way.
# It is assumed that this library instance must be linked with DxeCore in this package.
#
# Copyright (c) 2008 - 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                      = DxeCoreMemoryAllocationLib
  MODULE_UNI_FILE                = DxeCoreMemoryAllocationLib.uni
  FILE_GUID                      = 632F3FAC-1CA4-4725-BAA2-BDECCF9A111C
  MODULE_TYPE                    = DXE_CORE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = MemoryAllocationLib|DXE_CORE

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  MemoryAllocationLib.c
  DxeCoreMemoryAllocationServices.h
  DxeCoreMemoryProfileLibNull.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  DebugLib
  BaseMemoryLib
