## @file
# This module sets default policy for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType.
#
# This module sets EFI_MEMORY_XP for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType
# in UEFI memory map, if and only of PropertiesTable is published and has BIT0 set.
#
# Copyright (c) 2015 - 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                      = PropertiesTableAttributesDxe
  MODULE_UNI_FILE                = PropertiesTableAttributesDxe.uni
  FILE_GUID                      = AA48FBB2-9F87-4DFD-B416-575938F0C8F4
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializePropertiesTableAttributesDxe

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  PropertiesTableAttributesDxe.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiDriverEntryPoint
  UefiBootServicesTableLib
  DxeServicesTableLib
  DebugLib
  UefiLib
  MemoryAllocationLib

[Guids]
  gEfiEventReadyToBootGuid                      ## CONSUMES ## Event
  gEfiPropertiesTableGuid                       ## CONSUMES ## SystemTable

[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  PropertiesTableAttributesDxeExtra.uni
