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 Common Libarary for SCSI
27 #include <Protocol/ScsiIo.h>
30 // the time unit is 100ns, since the SCSI I/O defines timeout in 100ns unit.
32 #define EFI_SCSI_STALL_1_MICROSECOND 10
33 #define EFI_SCSI_STALL_1_MILLISECOND 10000
34 #define EFI_SCSI_STALL_1_SECOND 10000000
37 // this macro cannot be directly used by the gBS->Stall(),
38 // since the value output by this macro is in 100ns unit,
39 // not 1us unit (1us = 1000ns)
41 #define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND
44 SubmitTestUnitReadyCommand (
45 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
48 OUT UINT8
*SenseDataLength
,
49 OUT UINT8
*HostAdapterStatus
,
50 OUT UINT8
*TargetStatus
56 TODO: Add function description
60 ScsiIo - TODO: add argument description
61 Timeout - TODO: add argument description
62 SenseData - TODO: add argument description
63 SenseDataLength - TODO: add argument description
64 HostAdapterStatus - TODO: add argument description
65 TargetStatus - TODO: add argument description
69 TODO: add return values
75 SubmitInquiryCommand (
76 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
79 IN OUT UINT8
*SenseDataLength
,
80 OUT UINT8
*HostAdapterStatus
,
81 OUT UINT8
*TargetStatus
,
82 IN OUT VOID
*InquiryDataBuffer
,
83 IN OUT UINT32
*InquiryDataLength
,
84 IN BOOLEAN EnableVitalProductData
90 TODO: Add function description
94 ScsiIo - TODO: add argument description
95 Timeout - TODO: add argument description
96 SenseData - TODO: add argument description
97 SenseDataLength - TODO: add argument description
98 HostAdapterStatus - TODO: add argument description
99 TargetStatus - TODO: add argument description
100 InquiryDataBuffer - TODO: add argument description
101 InquiryDataLength - TODO: add argument description
102 EnableVitalProductData - TODO: add argument description
106 TODO: add return values
112 SubmitModeSense10Command (
113 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
116 IN OUT UINT8
*SenseDataLength
,
117 OUT UINT8
*HostAdapterStatus
,
118 OUT UINT8
*TargetStatus
,
120 IN OUT UINT32
*DataLength
,
121 IN UINT8 DBDField
, OPTIONAL
122 IN UINT8 PageControl
,
129 TODO: Add function description
133 ScsiIo - TODO: add argument description
134 Timeout - TODO: add argument description
135 SenseData - TODO: add argument description
136 SenseDataLength - TODO: add argument description
137 HostAdapterStatus - TODO: add argument description
138 TargetStatus - TODO: add argument description
139 DataBuffer - TODO: add argument description
140 DataLength - TODO: add argument description
141 DBDField - TODO: add argument description
142 PageControl - TODO: add argument description
143 PageCode - TODO: add argument description
147 TODO: add return values
153 SubmitRequestSenseCommand (
154 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
157 IN OUT UINT8
*SenseDataLength
,
158 OUT UINT8
*HostAdapterStatus
,
159 OUT UINT8
*TargetStatus
165 TODO: Add function description
169 ScsiIo - TODO: add argument description
170 Timeout - TODO: add argument description
171 SenseData - TODO: add argument description
172 SenseDataLength - TODO: add argument description
173 HostAdapterStatus - TODO: add argument description
174 TargetStatus - TODO: add argument description
178 TODO: add return values
184 // Commands for direct access command
187 SubmitReadCapacityCommand (
188 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
191 IN OUT UINT8
*SenseDataLength
,
192 OUT UINT8
*HostAdapterStatus
,
193 OUT UINT8
*TargetStatus
,
194 OUT VOID
*DataBuffer
,
195 IN OUT UINT32
*DataLength
,
202 TODO: Add function description
206 ScsiIo - TODO: add argument description
207 Timeout - TODO: add argument description
208 SenseData - TODO: add argument description
209 SenseDataLength - TODO: add argument description
210 HostAdapterStatus - TODO: add argument description
211 TargetStatus - TODO: add argument description
212 DataBuffer - TODO: add argument description
213 DataLength - TODO: add argument description
214 PMI - TODO: add argument description
218 TODO: add return values
224 SubmitRead10Command (
225 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
228 IN OUT UINT8
*SenseDataLength
,
229 OUT UINT8
*HostAdapterStatus
,
230 OUT UINT8
*TargetStatus
,
231 OUT VOID
*DataBuffer
,
232 IN OUT UINT32
*DataLength
,
240 TODO: Add function description
244 ScsiIo - TODO: add argument description
245 Timeout - TODO: add argument description
246 SenseData - TODO: add argument description
247 SenseDataLength - TODO: add argument description
248 HostAdapterStatus - TODO: add argument description
249 TargetStatus - TODO: add argument description
250 DataBuffer - TODO: add argument description
251 DataLength - TODO: add argument description
252 StartLba - TODO: add argument description
253 SectorSize - TODO: add argument description
257 TODO: add return values
263 SubmitWrite10Command (
264 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
267 IN OUT UINT8
*SenseDataLength
,
268 OUT UINT8
*HostAdapterStatus
,
269 OUT UINT8
*TargetStatus
,
270 OUT VOID
*DataBuffer
,
271 IN OUT UINT32
*DataLength
,
279 TODO: Add function description
283 ScsiIo - TODO: add argument description
284 Timeout - TODO: add argument description
285 SenseData - TODO: add argument description
286 SenseDataLength - TODO: add argument description
287 HostAdapterStatus - TODO: add argument description
288 TargetStatus - TODO: add argument description
289 DataBuffer - TODO: add argument description
290 DataLength - TODO: add argument description
291 StartLba - TODO: add argument description
292 SectorSize - TODO: add argument description
296 TODO: add return values