]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Include/Library/EdkScsiLib.h
Follow up EDKT236.
[mirror_edk2.git] / EdkModulePkg / Include / Library / EdkScsiLib.h
CommitLineData
878ddf1f 1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 ScsiLib.h\r
15\r
16 Abstract:\r
17\r
18 Common Libarary for SCSI\r
19\r
20 Revision History\r
21\r
22--*/\r
23\r
24#ifndef _SCSI_LIB_H\r
25#define _SCSI_LIB_H\r
26\r
27//\r
28// the time unit is 100ns, since the SCSI I/O defines timeout in 100ns unit.\r
29//\r
30#define EFI_SCSI_STALL_1_MICROSECOND 10\r
31#define EFI_SCSI_STALL_1_MILLISECOND 10000\r
32#define EFI_SCSI_STALL_1_SECOND 10000000\r
33\r
34//\r
35// this macro cannot be directly used by the gBS->Stall(),\r
36// since the value output by this macro is in 100ns unit,\r
37// not 1us unit (1us = 1000ns)\r
38//\r
39#define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND\r
40\r
41EFI_STATUS\r
42SubmitTestUnitReadyCommand (\r
43 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
44 IN UINT64 Timeout,\r
45 OUT VOID *SenseData,\r
46 OUT UINT8 *SenseDataLength,\r
47 OUT UINT8 *HostAdapterStatus,\r
48 OUT UINT8 *TargetStatus\r
49 )\r
50/*++\r
51\r
52Routine Description:\r
53\r
54 TODO: Add function description\r
55\r
56Arguments:\r
57\r
58 ScsiIo - TODO: add argument description\r
59 Timeout - TODO: add argument description\r
60 SenseData - TODO: add argument description\r
61 SenseDataLength - TODO: add argument description\r
62 HostAdapterStatus - TODO: add argument description\r
63 TargetStatus - TODO: add argument description\r
64\r
65Returns:\r
66\r
67 TODO: add return values\r
68\r
69--*/\r
70;\r
71\r
72EFI_STATUS\r
73SubmitInquiryCommand (\r
74 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
75 IN UINT64 Timeout,\r
76 IN VOID *SenseData,\r
77 IN OUT UINT8 *SenseDataLength,\r
78 OUT UINT8 *HostAdapterStatus,\r
79 OUT UINT8 *TargetStatus,\r
80 IN OUT VOID *InquiryDataBuffer,\r
81 IN OUT UINT32 *InquiryDataLength,\r
82 IN BOOLEAN EnableVitalProductData\r
83 )\r
84/*++\r
85\r
86Routine Description:\r
87\r
88 TODO: Add function description\r
89\r
90Arguments:\r
91\r
92 ScsiIo - TODO: add argument description\r
93 Timeout - TODO: add argument description\r
94 SenseData - TODO: add argument description\r
95 SenseDataLength - TODO: add argument description\r
96 HostAdapterStatus - TODO: add argument description\r
97 TargetStatus - TODO: add argument description\r
98 InquiryDataBuffer - TODO: add argument description\r
99 InquiryDataLength - TODO: add argument description\r
100 EnableVitalProductData - TODO: add argument description\r
101\r
102Returns:\r
103\r
104 TODO: add return values\r
105\r
106--*/\r
107;\r
108\r
109EFI_STATUS\r
110SubmitModeSense10Command (\r
111 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
112 IN UINT64 Timeout,\r
113 IN VOID *SenseData,\r
114 IN OUT UINT8 *SenseDataLength,\r
115 OUT UINT8 *HostAdapterStatus,\r
116 OUT UINT8 *TargetStatus,\r
117 IN VOID *DataBuffer,\r
118 IN OUT UINT32 *DataLength,\r
119 IN UINT8 DBDField, OPTIONAL\r
120 IN UINT8 PageControl,\r
121 IN UINT8 PageCode\r
122 )\r
123/*++\r
124\r
125Routine Description:\r
126\r
127 TODO: Add function description\r
128\r
129Arguments:\r
130\r
131 ScsiIo - TODO: add argument description\r
132 Timeout - TODO: add argument description\r
133 SenseData - TODO: add argument description\r
134 SenseDataLength - TODO: add argument description\r
135 HostAdapterStatus - TODO: add argument description\r
136 TargetStatus - TODO: add argument description\r
137 DataBuffer - TODO: add argument description\r
138 DataLength - TODO: add argument description\r
139 DBDField - TODO: add argument description\r
140 PageControl - TODO: add argument description\r
141 PageCode - TODO: add argument description\r
142\r
143Returns:\r
144\r
145 TODO: add return values\r
146\r
147--*/\r
148;\r
149\r
150EFI_STATUS\r
151SubmitRequestSenseCommand (\r
152 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
153 IN UINT64 Timeout,\r
154 IN VOID *SenseData,\r
155 IN OUT UINT8 *SenseDataLength,\r
156 OUT UINT8 *HostAdapterStatus,\r
157 OUT UINT8 *TargetStatus\r
158 )\r
159/*++\r
160\r
161Routine Description:\r
162\r
163 TODO: Add function description\r
164\r
165Arguments:\r
166\r
167 ScsiIo - TODO: add argument description\r
168 Timeout - TODO: add argument description\r
169 SenseData - TODO: add argument description\r
170 SenseDataLength - TODO: add argument description\r
171 HostAdapterStatus - TODO: add argument description\r
172 TargetStatus - TODO: add argument description\r
173\r
174Returns:\r
175\r
176 TODO: add return values\r
177\r
178--*/\r
179;\r
180\r
181//\r
182// Commands for direct access command\r
183//\r
184EFI_STATUS\r
185SubmitReadCapacityCommand (\r
186 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
187 IN UINT64 Timeout,\r
188 IN VOID *SenseData,\r
189 IN OUT UINT8 *SenseDataLength,\r
190 OUT UINT8 *HostAdapterStatus,\r
191 OUT UINT8 *TargetStatus,\r
192 OUT VOID *DataBuffer,\r
193 IN OUT UINT32 *DataLength,\r
194 IN BOOLEAN PMI\r
195 )\r
196/*++\r
197\r
198Routine Description:\r
199\r
200 TODO: Add function description\r
201\r
202Arguments:\r
203\r
204 ScsiIo - TODO: add argument description\r
205 Timeout - TODO: add argument description\r
206 SenseData - TODO: add argument description\r
207 SenseDataLength - TODO: add argument description\r
208 HostAdapterStatus - TODO: add argument description\r
209 TargetStatus - TODO: add argument description\r
210 DataBuffer - TODO: add argument description\r
211 DataLength - TODO: add argument description\r
212 PMI - TODO: add argument description\r
213\r
214Returns:\r
215\r
216 TODO: add return values\r
217\r
218--*/\r
219;\r
220\r
221EFI_STATUS\r
222SubmitRead10Command (\r
223 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
224 IN UINT64 Timeout,\r
225 IN VOID *SenseData,\r
226 IN OUT UINT8 *SenseDataLength,\r
227 OUT UINT8 *HostAdapterStatus,\r
228 OUT UINT8 *TargetStatus,\r
229 OUT VOID *DataBuffer,\r
230 IN OUT UINT32 *DataLength,\r
231 IN UINT32 StartLba,\r
232 IN UINT32 SectorSize\r
233 )\r
234/*++\r
235\r
236Routine Description:\r
237\r
238 TODO: Add function description\r
239\r
240Arguments:\r
241\r
242 ScsiIo - TODO: add argument description\r
243 Timeout - TODO: add argument description\r
244 SenseData - TODO: add argument description\r
245 SenseDataLength - TODO: add argument description\r
246 HostAdapterStatus - TODO: add argument description\r
247 TargetStatus - TODO: add argument description\r
248 DataBuffer - TODO: add argument description\r
249 DataLength - TODO: add argument description\r
250 StartLba - TODO: add argument description\r
251 SectorSize - TODO: add argument description\r
252\r
253Returns:\r
254\r
255 TODO: add return values\r
256\r
257--*/\r
258;\r
259\r
260EFI_STATUS\r
261SubmitWrite10Command (\r
262 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
263 IN UINT64 Timeout,\r
264 IN VOID *SenseData,\r
265 IN OUT UINT8 *SenseDataLength,\r
266 OUT UINT8 *HostAdapterStatus,\r
267 OUT UINT8 *TargetStatus,\r
268 OUT VOID *DataBuffer,\r
269 IN OUT UINT32 *DataLength,\r
270 IN UINT32 StartLba,\r
271 IN UINT32 SectorSize\r
272 )\r
273/*++\r
274\r
275Routine Description:\r
276\r
277 TODO: Add function description\r
278\r
279Arguments:\r
280\r
281 ScsiIo - TODO: add argument description\r
282 Timeout - TODO: add argument description\r
283 SenseData - TODO: add argument description\r
284 SenseDataLength - TODO: add argument description\r
285 HostAdapterStatus - TODO: add argument description\r
286 TargetStatus - TODO: add argument description\r
287 DataBuffer - TODO: add argument description\r
288 DataLength - TODO: add argument description\r
289 StartLba - TODO: add argument description\r
290 SectorSize - TODO: add argument description\r
291\r
292Returns:\r
293\r
294 TODO: add return values\r
295\r
296--*/\r
297;\r
298\r
299#endif\r