## @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, 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 IPF 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
