## @file
#  Driver for the virtual Xen PCI device
#
#  Copyright (C) 2015, Linaro Ltd.
#
#  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                 = XenIoPciDxe
  FILE_GUID                 = cf569f50-de44-4f54-b4d7-f4ae25cda599
  MODULE_TYPE               = UEFI_DRIVER
  VERSION_STRING            = 1.0
  ENTRY_POINT               = XenIoPciDeviceEntryPoint

[Packages]
  MdePkg/MdePkg.dec
  OvmfPkg/OvmfPkg.dec

[Sources]
  XenIoPciDxe.c

[LibraryClasses]
  UefiDriverEntryPoint
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  BaseLib
  UefiLib
  DebugLib

[Protocols]
  gEfiDriverBindingProtocolGuid
  gEfiPciIoProtocolGuid
  gEfiComponentName2ProtocolGuid
  gEfiComponentNameProtocolGuid
  gXenIoProtocolGuid
