## @file
#   This driver installs Generic Memory Test Protocol which does not perform real memory test.
#
#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = NullMemoryTestDxe
  MODULE_UNI_FILE                = NullMemoryTestDxe.uni
  FILE_GUID                      = 96B5C032-DF4C-4b6e-8232-438DCF448D0E
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = GenericMemoryTestEntryPoint

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  NullMemoryTest.h
  NullMemoryTest.c

[Packages]
  MdeModulePkg/MdeModulePkg.dec
  MdePkg/MdePkg.dec

[LibraryClasses]
  MemoryAllocationLib
  UefiBootServicesTableLib
  DxeServicesTableLib
  UefiDriverEntryPoint
  DebugLib

[Protocols]
  gEfiGenericMemTestProtocolGuid                ## PRODUCES

[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  NullMemoryTestDxeExtra.uni
