## @file
#  The SCSI bus driver scans all SCSI devices and creates a device handle for each of them.
#  Note that the driver will install the Device Path Protocol and SCSI I/O Protocol on
#  these handles.
#
#  Copyright (c) 2006 - 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                      = ScsiBus
  MODULE_UNI_FILE                = ScsiBus.uni
  FILE_GUID                      = 0167CCC4-D0F7-4f21-A3EF-9E64B7CDCE8B
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = InitializeScsiBus

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES              =  IA32 X64 EBC
#
#  DRIVER_BINDING                =  gSCSIBusDriverBinding
#  COMPONENT_NAME                =  gScsiBusComponentName
#  COMPONENT_NAME2               =  gScsiBusComponentName2
#

[Sources]
  ComponentName.c
  ScsiBus.c
  ScsiBus.h



[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  DevicePathLib
  UefiBootServicesTableLib
  UefiScsiLib
  BaseMemoryLib
  UefiLib
  UefiDriverEntryPoint
  DebugLib
  MemoryAllocationLib
  ReportStatusCodeLib


[Protocols]
  gEfiScsiIoProtocolGuid                        ## BY_START
  ## TO_START
  ## BY_START
  gEfiDevicePathProtocolGuid
  gEfiScsiPassThruProtocolGuid                  ## TO_START
  gEfiExtScsiPassThruProtocolGuid               ## TO_START

[UserExtensions.TianoCore."ExtraFiles"]
  ScsiBusExtra.uni
