3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Header file for SCSI Bus Driver.
23 // TODO: fix comment to end with --*/
28 #include <IndustryStandard/scsi.h>
32 #define ONE_SECOND_TIMER 10000000
34 #define SCSI_IO_DEV_SIGNATURE EFI_SIGNATURE_32 ('s', 'c', 'i', 'o')
40 EFI_SCSI_IO_PROTOCOL ScsiIo
;
41 EFI_DEVICE_PATH_PROTOCOL
*DevicePath
;
42 EFI_SCSI_PASS_THRU_PROTOCOL
*ScsiPassThru
;
48 BOOLEAN RemovableDevice
;
51 #define SCSI_IO_DEV_FROM_THIS(a) CR (a, SCSI_IO_DEV, ScsiIo, SCSI_IO_DEV_SIGNATURE)
56 extern EFI_DRIVER_BINDING_PROTOCOL gScsiBusDriverBinding
;
57 extern EFI_COMPONENT_NAME_PROTOCOL gScsiBusComponentName
;
61 SCSIBusDriverBindingSupported (
62 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
63 IN EFI_HANDLE Controller
,
64 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
69 SCSIBusDriverBindingStart (
70 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
71 IN EFI_HANDLE Controller
,
72 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
77 SCSIBusDriverBindingStop (
78 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
79 IN EFI_HANDLE Controller
,
80 IN UINTN NumberOfChildren
,
81 IN EFI_HANDLE
*ChildHandleBuffer
85 // EFI Component Name Functions
89 ScsiBusComponentNameGetDriverName (
90 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
92 OUT CHAR16
**DriverName
97 ScsiBusComponentNameGetControllerName (
98 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
99 IN EFI_HANDLE ControllerHandle
,
100 IN EFI_HANDLE ChildHandle OPTIONAL
,
102 OUT CHAR16
**ControllerName
108 IN EFI_SCSI_IO_PROTOCOL
*This
,
109 OUT UINT8
*DeviceType
115 TODO: Add function description
119 This - TODO: add argument description
120 DeviceType - TODO: add argument description
124 TODO: add return values
132 IN EFI_SCSI_IO_PROTOCOL
*This
138 TODO: Add function description
142 This - TODO: add argument description
146 TODO: add return values
154 IN EFI_SCSI_IO_PROTOCOL
*This
160 TODO: Add function description
164 This - TODO: add argument description
168 TODO: add return values
175 ScsiExecuteSCSICommand (
176 IN EFI_SCSI_IO_PROTOCOL
*This
,
177 IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET
*CommandPacket
,
184 TODO: Add function description
188 This - TODO: add argument description
189 CommandPacket - TODO: add argument description
190 Event - TODO: add argument description
194 TODO: add return values
200 ScsiScanCreateDevice (
201 EFI_DRIVER_BINDING_PROTOCOL
*This
,
202 EFI_HANDLE Controller
,
205 EFI_SCSI_PASS_THRU_PROTOCOL
*ScsiPassThru
,
206 EFI_DEVICE_PATH_PROTOCOL
*ParentDevicePath
212 TODO: Add function description
216 This - TODO: add argument description
217 Controller - TODO: add argument description
218 Pun - TODO: add argument description
219 Lun - TODO: add argument description
220 ScsiPassThru - TODO: add argument description
221 ParentDevicePath - TODO: add argument description
225 TODO: add return values
232 SCSI_IO_DEV
*ScsiIoDevice
238 TODO: Add function description
242 ScsiIoDevice - TODO: add argument description
246 TODO: add return values
253 EFI_SCSI_PASS_THRU_PROTOCOL
*ScsiPassThru
,
262 TODO: Add function description
266 ScsiPassThru - TODO: add argument description
267 Target - TODO: add argument description
268 LunArray - TODO: add argument description
269 NumberOfLuns - TODO: add argument description
273 TODO: add return values
279 ScsiBusSubmitReportLunCommand (
280 EFI_SCSI_PASS_THRU_PROTOCOL
*ScsiPassThru
,
282 UINTN AllocationLength
,
284 EFI_SCSI_SENSE_DATA
*SenseData
,
285 UINT8
*SenseDataLength
,
286 UINT8
*HostAdapterStatus
,
293 TODO: Add function description
297 ScsiPassThru - TODO: add argument description
298 Target - TODO: add argument description
299 AllocationLength - TODO: add argument description
300 Buffer - TODO: add argument description
301 SenseData - TODO: add argument description
302 SenseDataLength - TODO: add argument description
303 HostAdapterStatus - TODO: add argument description
304 TargetStatus - TODO: add argument description
308 TODO: add return values