]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Library/ScsiLib.h
Checked in part of MDE library instances following PI and UEFI. It includes:
[mirror_edk2.git] / MdePkg / Include / Library / ScsiLib.h
1 /*++
2
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
8
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.
11
12 Module Name:
13
14 ScsiLib.h
15
16 Abstract:
17
18 Common Libarary for SCSI
19
20 Revision History
21
22 --*/
23
24 #ifndef _SCSI_LIB_H
25 #define _SCSI_LIB_H
26
27 #include <Protocol/ScsiIo.h>
28
29 //
30 // the time unit is 100ns, since the SCSI I/O defines timeout in 100ns unit.
31 //
32 #define EFI_SCSI_STALL_1_MICROSECOND 10
33 #define EFI_SCSI_STALL_1_MILLISECOND 10000
34 #define EFI_SCSI_STALL_1_SECOND 10000000
35
36 //
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)
40 //
41 #define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND
42
43 EFI_STATUS
44 SubmitTestUnitReadyCommand (
45 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
46 IN UINT64 Timeout,
47 OUT VOID *SenseData,
48 OUT UINT8 *SenseDataLength,
49 OUT UINT8 *HostAdapterStatus,
50 OUT UINT8 *TargetStatus
51 )
52 /*++
53
54 Routine Description:
55
56 TODO: Add function description
57
58 Arguments:
59
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
66
67 Returns:
68
69 TODO: add return values
70
71 --*/
72 ;
73
74 EFI_STATUS
75 SubmitInquiryCommand (
76 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
77 IN UINT64 Timeout,
78 IN VOID *SenseData,
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
85 )
86 /*++
87
88 Routine Description:
89
90 TODO: Add function description
91
92 Arguments:
93
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
103
104 Returns:
105
106 TODO: add return values
107
108 --*/
109 ;
110
111 EFI_STATUS
112 SubmitModeSense10Command (
113 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
114 IN UINT64 Timeout,
115 IN VOID *SenseData,
116 IN OUT UINT8 *SenseDataLength,
117 OUT UINT8 *HostAdapterStatus,
118 OUT UINT8 *TargetStatus,
119 IN VOID *DataBuffer,
120 IN OUT UINT32 *DataLength,
121 IN UINT8 DBDField, OPTIONAL
122 IN UINT8 PageControl,
123 IN UINT8 PageCode
124 )
125 /*++
126
127 Routine Description:
128
129 TODO: Add function description
130
131 Arguments:
132
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
144
145 Returns:
146
147 TODO: add return values
148
149 --*/
150 ;
151
152 EFI_STATUS
153 SubmitRequestSenseCommand (
154 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
155 IN UINT64 Timeout,
156 IN VOID *SenseData,
157 IN OUT UINT8 *SenseDataLength,
158 OUT UINT8 *HostAdapterStatus,
159 OUT UINT8 *TargetStatus
160 )
161 /*++
162
163 Routine Description:
164
165 TODO: Add function description
166
167 Arguments:
168
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
175
176 Returns:
177
178 TODO: add return values
179
180 --*/
181 ;
182
183 //
184 // Commands for direct access command
185 //
186 EFI_STATUS
187 SubmitReadCapacityCommand (
188 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
189 IN UINT64 Timeout,
190 IN VOID *SenseData,
191 IN OUT UINT8 *SenseDataLength,
192 OUT UINT8 *HostAdapterStatus,
193 OUT UINT8 *TargetStatus,
194 OUT VOID *DataBuffer,
195 IN OUT UINT32 *DataLength,
196 IN BOOLEAN PMI
197 )
198 /*++
199
200 Routine Description:
201
202 TODO: Add function description
203
204 Arguments:
205
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
215
216 Returns:
217
218 TODO: add return values
219
220 --*/
221 ;
222
223 EFI_STATUS
224 SubmitRead10Command (
225 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
226 IN UINT64 Timeout,
227 IN VOID *SenseData,
228 IN OUT UINT8 *SenseDataLength,
229 OUT UINT8 *HostAdapterStatus,
230 OUT UINT8 *TargetStatus,
231 OUT VOID *DataBuffer,
232 IN OUT UINT32 *DataLength,
233 IN UINT32 StartLba,
234 IN UINT32 SectorSize
235 )
236 /*++
237
238 Routine Description:
239
240 TODO: Add function description
241
242 Arguments:
243
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
254
255 Returns:
256
257 TODO: add return values
258
259 --*/
260 ;
261
262 EFI_STATUS
263 SubmitWrite10Command (
264 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,
265 IN UINT64 Timeout,
266 IN VOID *SenseData,
267 IN OUT UINT8 *SenseDataLength,
268 OUT UINT8 *HostAdapterStatus,
269 OUT UINT8 *TargetStatus,
270 OUT VOID *DataBuffer,
271 IN OUT UINT32 *DataLength,
272 IN UINT32 StartLba,
273 IN UINT32 SectorSize
274 )
275 /*++
276
277 Routine Description:
278
279 TODO: Add function description
280
281 Arguments:
282
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
293
294 Returns:
295
296 TODO: add return values
297
298 --*/
299 ;
300
301 #endif