## @file
#  AtaAtapiPassThru driver to provide native IDE/AHCI mode support.
#
#  This driver installs AtaPassThru and ExtScsiPassThru protocol in each ide/sata controller
#  to access to all attached Ata/Atapi devices.
#
#  Copyright (c) 2010, 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                      = AtaAtapiPassThruDxe
  FILE_GUID                      = 5E523CB4-D397-4986-87BD-A6DD8B22F455
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeAtaAtapiPassThru

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#
#  DRIVER_BINDING                =  gAtaAtapiPassThruDriverBinding                         
#  COMPONENT_NAME                =  gAtaAtapiPassThruComponentName
#  COMPONENT_NAME2               =  gAtaAtapiPassThruComponentName2                         
#
#

[Sources]
  AtaAtapiPassThru.c
  AtaAtapiPassThru.h
  AhciMode.c
  AhciMode.h
  IdeMode.c
  IdeMode.h
  ComponentName.c
  
[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  DevicePathLib
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  UefiLib
  BaseLib
  UefiDriverEntryPoint
  DebugLib
  TimerLib

[Guids]

[Protocols]
  gEfiIdeControllerInitProtocolGuid             # BY_START
  gEfiAtaPassThruProtocolGuid                   # BY_START
  gEfiExtScsiPassThruProtocolGuid               # BY_START
  gEfiDevicePathProtocolGuid                    # TO_START
  gEfiPciIoProtocolGuid                         # TO_START
