## @file
# Null instance of Memory Allocation Library.
#
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2018, Linaro, Ltd. 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                    = 0x0001001B
  BASE_NAME                      = BaseMemoryAllocationLibNull
  MODULE_UNI_FILE                = BaseMemoryAllocationLibNull.uni
  FILE_GUID                      = fd56f5d6-f194-448f-be69-c0cbb0c281af
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = MemoryAllocationLib


#
#  VALID_ARCHITECTURES           = IA32 X64 ARM AARCH64
#

[Sources]
  BaseMemoryAllocationLibNull.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  DebugLib
