2 Common Libarary for SCSI
4 Copyright (c) 2006 - 2007, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 #include <Protocol/ScsiIo.h>
21 // the time unit is 100ns, since the SCSI I/O defines timeout in 100ns unit.
23 #define EFI_SCSI_STALL_1_MICROSECOND 10
24 #define EFI_SCSI_STALL_1_MILLISECOND 10000
25 #define EFI_SCSI_STALL_1_SECOND 10000000
28 // this macro cannot be directly used by the gBS->Stall(),
29 // since the value output by this macro is in 100ns unit,
30 // not 1us unit (1us = 1000ns)
32 #define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND
35 SubmitTestUnitReadyCommand (
36 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
39 OUT UINT8
*SenseDataLength
,
40 OUT UINT8
*HostAdapterStatus
,
41 OUT UINT8
*TargetStatus
47 TODO: Add function description
51 ScsiIo - TODO: add argument description
52 Timeout - TODO: add argument description
53 SenseData - TODO: add argument description
54 SenseDataLength - TODO: add argument description
55 HostAdapterStatus - TODO: add argument description
56 TargetStatus - TODO: add argument description
60 TODO: add return values
66 SubmitInquiryCommand (
67 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
70 IN OUT UINT8
*SenseDataLength
,
71 OUT UINT8
*HostAdapterStatus
,
72 OUT UINT8
*TargetStatus
,
73 IN OUT VOID
*InquiryDataBuffer
,
74 IN OUT UINT32
*InquiryDataLength
,
75 IN BOOLEAN EnableVitalProductData
81 TODO: Add function description
85 ScsiIo - TODO: add argument description
86 Timeout - TODO: add argument description
87 SenseData - TODO: add argument description
88 SenseDataLength - TODO: add argument description
89 HostAdapterStatus - TODO: add argument description
90 TargetStatus - TODO: add argument description
91 InquiryDataBuffer - TODO: add argument description
92 InquiryDataLength - TODO: add argument description
93 EnableVitalProductData - TODO: add argument description
97 TODO: add return values
103 SubmitModeSense10Command (
104 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
107 IN OUT UINT8
*SenseDataLength
,
108 OUT UINT8
*HostAdapterStatus
,
109 OUT UINT8
*TargetStatus
,
111 IN OUT UINT32
*DataLength
,
112 IN UINT8 DBDField
, OPTIONAL
113 IN UINT8 PageControl
,
120 TODO: Add function description
124 ScsiIo - TODO: add argument description
125 Timeout - TODO: add argument description
126 SenseData - TODO: add argument description
127 SenseDataLength - TODO: add argument description
128 HostAdapterStatus - TODO: add argument description
129 TargetStatus - TODO: add argument description
130 DataBuffer - TODO: add argument description
131 DataLength - TODO: add argument description
132 DBDField - TODO: add argument description
133 PageControl - TODO: add argument description
134 PageCode - TODO: add argument description
138 TODO: add return values
144 SubmitRequestSenseCommand (
145 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
148 IN OUT UINT8
*SenseDataLength
,
149 OUT UINT8
*HostAdapterStatus
,
150 OUT UINT8
*TargetStatus
156 TODO: Add function description
160 ScsiIo - TODO: add argument description
161 Timeout - TODO: add argument description
162 SenseData - TODO: add argument description
163 SenseDataLength - TODO: add argument description
164 HostAdapterStatus - TODO: add argument description
165 TargetStatus - TODO: add argument description
169 TODO: add return values
175 // Commands for direct access command
178 SubmitReadCapacityCommand (
179 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
182 IN OUT UINT8
*SenseDataLength
,
183 OUT UINT8
*HostAdapterStatus
,
184 OUT UINT8
*TargetStatus
,
185 OUT VOID
*DataBuffer
,
186 IN OUT UINT32
*DataLength
,
193 TODO: Add function description
197 ScsiIo - TODO: add argument description
198 Timeout - TODO: add argument description
199 SenseData - TODO: add argument description
200 SenseDataLength - TODO: add argument description
201 HostAdapterStatus - TODO: add argument description
202 TargetStatus - TODO: add argument description
203 DataBuffer - TODO: add argument description
204 DataLength - TODO: add argument description
205 PMI - TODO: add argument description
209 TODO: add return values
215 SubmitRead10Command (
216 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
219 IN OUT UINT8
*SenseDataLength
,
220 OUT UINT8
*HostAdapterStatus
,
221 OUT UINT8
*TargetStatus
,
222 OUT VOID
*DataBuffer
,
223 IN OUT UINT32
*DataLength
,
231 TODO: Add function description
235 ScsiIo - TODO: add argument description
236 Timeout - TODO: add argument description
237 SenseData - TODO: add argument description
238 SenseDataLength - TODO: add argument description
239 HostAdapterStatus - TODO: add argument description
240 TargetStatus - TODO: add argument description
241 DataBuffer - TODO: add argument description
242 DataLength - TODO: add argument description
243 StartLba - TODO: add argument description
244 SectorSize - TODO: add argument description
248 TODO: add return values
254 SubmitWrite10Command (
255 IN EFI_SCSI_IO_PROTOCOL
*ScsiIo
,
258 IN OUT UINT8
*SenseDataLength
,
259 OUT UINT8
*HostAdapterStatus
,
260 OUT UINT8
*TargetStatus
,
261 OUT VOID
*DataBuffer
,
262 IN OUT UINT32
*DataLength
,
270 TODO: Add function description
274 ScsiIo - TODO: add argument description
275 Timeout - TODO: add argument description
276 SenseData - TODO: add argument description
277 SenseDataLength - TODO: add argument description
278 HostAdapterStatus - TODO: add argument description
279 TargetStatus - TODO: add argument description
280 DataBuffer - TODO: add argument description
281 DataLength - TODO: add argument description
282 StartLba - TODO: add argument description
283 SectorSize - TODO: add argument description
287 TODO: add return values