## @file
# Platform VTd Sample driver.
#
# Note: This module should only be used for dev/debug purposes.
#       It MUST never be used for production builds.
#
# Copyright (c) 2017 - 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                      = PlatformVTdSampleDxe
  MODULE_UNI_FILE                = PlatformVTdSampleDxe.uni
  FILE_GUID                      = 5DFAE03E-9C19-4996-85BF-65297BD4137F
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = PlatformVTdSampleInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#
#

[Sources]
  PlatformVTdSampleDxe.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelSiliconPkg/IntelSiliconPkg.dec

[LibraryClasses]
  DebugLib
  UefiDriverEntryPoint
  UefiBootServicesTableLib
  BaseLib
  IoLib
  PciSegmentLib
  BaseMemoryLib
  MemoryAllocationLib
  DevicePathLib

[Protocols]
  gEdkiiPlatformVTdPolicyProtocolGuid         ## PRODUCES
  gEfiPciIoProtocolGuid                       ## CONSUMES

[Depex]
  gEfiPciRootBridgeIoProtocolGuid

[UserExtensions.TianoCore."ExtraFiles"]
  PlatformVTdSampleDxeExtra.uni

