]> git.proxmox.com Git - mirror_edk2.git/blame - 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
CommitLineData
fb3df220 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
c7d265a9 27#include <Protocol/ScsiIo.h>\r
28\r
fb3df220 29//\r
30// the time unit is 100ns, since the SCSI I/O defines timeout in 100ns unit.\r
31//\r
32#define EFI_SCSI_STALL_1_MICROSECOND 10\r
33#define EFI_SCSI_STALL_1_MILLISECOND 10000\r
34#define EFI_SCSI_STALL_1_SECOND 10000000\r
35\r
36//\r
37// this macro cannot be directly used by the gBS->Stall(),\r
38// since the value output by this macro is in 100ns unit,\r
39// not 1us unit (1us = 1000ns)\r
40//\r
41#define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND\r
42\r
43EFI_STATUS\r
44SubmitTestUnitReadyCommand (\r
45 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
46 IN UINT64 Timeout,\r
47 OUT VOID *SenseData,\r
48 OUT UINT8 *SenseDataLength,\r
49 OUT UINT8 *HostAdapterStatus,\r
50 OUT UINT8 *TargetStatus\r
51 )\r
52/*++\r
53\r
54Routine Description:\r
55\r
56 TODO: Add function description\r
57\r
58Arguments:\r
59\r
60 ScsiIo - TODO: add argument description\r
61 Timeout - TODO: add argument description\r
62 SenseData - TODO: add argument description\r
63 SenseDataLength - TODO: add argument description\r
64 HostAdapterStatus - TODO: add argument description\r
65 TargetStatus - TODO: add argument description\r
66\r
67Returns:\r
68\r
69 TODO: add return values\r
70\r
71--*/\r
72;\r
73\r
74EFI_STATUS\r
75SubmitInquiryCommand (\r
76 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
77 IN UINT64 Timeout,\r
78 IN VOID *SenseData,\r
79 IN OUT UINT8 *SenseDataLength,\r
80 OUT UINT8 *HostAdapterStatus,\r
81 OUT UINT8 *TargetStatus,\r
82 IN OUT VOID *InquiryDataBuffer,\r
83 IN OUT UINT32 *InquiryDataLength,\r
84 IN BOOLEAN EnableVitalProductData\r
85 )\r
86/*++\r
87\r
88Routine Description:\r
89\r
90 TODO: Add function description\r
91\r
92Arguments:\r
93\r
94 ScsiIo - TODO: add argument description\r
95 Timeout - TODO: add argument description\r
96 SenseData - TODO: add argument description\r
97 SenseDataLength - TODO: add argument description\r
98 HostAdapterStatus - TODO: add argument description\r
99 TargetStatus - TODO: add argument description\r
100 InquiryDataBuffer - TODO: add argument description\r
101 InquiryDataLength - TODO: add argument description\r
102 EnableVitalProductData - TODO: add argument description\r
103\r
104Returns:\r
105\r
106 TODO: add return values\r
107\r
108--*/\r
109;\r
110\r
111EFI_STATUS\r
112SubmitModeSense10Command (\r
113 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
114 IN UINT64 Timeout,\r
115 IN VOID *SenseData,\r
116 IN OUT UINT8 *SenseDataLength,\r
117 OUT UINT8 *HostAdapterStatus,\r
118 OUT UINT8 *TargetStatus,\r
119 IN VOID *DataBuffer,\r
120 IN OUT UINT32 *DataLength,\r
121 IN UINT8 DBDField, OPTIONAL\r
122 IN UINT8 PageControl,\r
123 IN UINT8 PageCode\r
124 )\r
125/*++\r
126\r
127Routine Description:\r
128\r
129 TODO: Add function description\r
130\r
131Arguments:\r
132\r
133 ScsiIo - TODO: add argument description\r
134 Timeout - TODO: add argument description\r
135 SenseData - TODO: add argument description\r
136 SenseDataLength - TODO: add argument description\r
137 HostAdapterStatus - TODO: add argument description\r
138 TargetStatus - TODO: add argument description\r
139 DataBuffer - TODO: add argument description\r
140 DataLength - TODO: add argument description\r
141 DBDField - TODO: add argument description\r
142 PageControl - TODO: add argument description\r
143 PageCode - TODO: add argument description\r
144\r
145Returns:\r
146\r
147 TODO: add return values\r
148\r
149--*/\r
150;\r
151\r
152EFI_STATUS\r
153SubmitRequestSenseCommand (\r
154 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
155 IN UINT64 Timeout,\r
156 IN VOID *SenseData,\r
157 IN OUT UINT8 *SenseDataLength,\r
158 OUT UINT8 *HostAdapterStatus,\r
159 OUT UINT8 *TargetStatus\r
160 )\r
161/*++\r
162\r
163Routine Description:\r
164\r
165 TODO: Add function description\r
166\r
167Arguments:\r
168\r
169 ScsiIo - TODO: add argument description\r
170 Timeout - TODO: add argument description\r
171 SenseData - TODO: add argument description\r
172 SenseDataLength - TODO: add argument description\r
173 HostAdapterStatus - TODO: add argument description\r
174 TargetStatus - TODO: add argument description\r
175\r
176Returns:\r
177\r
178 TODO: add return values\r
179\r
180--*/\r
181;\r
182\r
183//\r
184// Commands for direct access command\r
185//\r
186EFI_STATUS\r
187SubmitReadCapacityCommand (\r
188 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
189 IN UINT64 Timeout,\r
190 IN VOID *SenseData,\r
191 IN OUT UINT8 *SenseDataLength,\r
192 OUT UINT8 *HostAdapterStatus,\r
193 OUT UINT8 *TargetStatus,\r
194 OUT VOID *DataBuffer,\r
195 IN OUT UINT32 *DataLength,\r
196 IN BOOLEAN PMI\r
197 )\r
198/*++\r
199\r
200Routine Description:\r
201\r
202 TODO: Add function description\r
203\r
204Arguments:\r
205\r
206 ScsiIo - TODO: add argument description\r
207 Timeout - TODO: add argument description\r
208 SenseData - TODO: add argument description\r
209 SenseDataLength - TODO: add argument description\r
210 HostAdapterStatus - TODO: add argument description\r
211 TargetStatus - TODO: add argument description\r
212 DataBuffer - TODO: add argument description\r
213 DataLength - TODO: add argument description\r
214 PMI - TODO: add argument description\r
215\r
216Returns:\r
217\r
218 TODO: add return values\r
219\r
220--*/\r
221;\r
222\r
223EFI_STATUS\r
224SubmitRead10Command (\r
225 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
226 IN UINT64 Timeout,\r
227 IN VOID *SenseData,\r
228 IN OUT UINT8 *SenseDataLength,\r
229 OUT UINT8 *HostAdapterStatus,\r
230 OUT UINT8 *TargetStatus,\r
231 OUT VOID *DataBuffer,\r
232 IN OUT UINT32 *DataLength,\r
233 IN UINT32 StartLba,\r
234 IN UINT32 SectorSize\r
235 )\r
236/*++\r
237\r
238Routine Description:\r
239\r
240 TODO: Add function description\r
241\r
242Arguments:\r
243\r
244 ScsiIo - TODO: add argument description\r
245 Timeout - TODO: add argument description\r
246 SenseData - TODO: add argument description\r
247 SenseDataLength - TODO: add argument description\r
248 HostAdapterStatus - TODO: add argument description\r
249 TargetStatus - TODO: add argument description\r
250 DataBuffer - TODO: add argument description\r
251 DataLength - TODO: add argument description\r
252 StartLba - TODO: add argument description\r
253 SectorSize - TODO: add argument description\r
254\r
255Returns:\r
256\r
257 TODO: add return values\r
258\r
259--*/\r
260;\r
261\r
262EFI_STATUS\r
263SubmitWrite10Command (\r
264 IN EFI_SCSI_IO_PROTOCOL *ScsiIo,\r
265 IN UINT64 Timeout,\r
266 IN VOID *SenseData,\r
267 IN OUT UINT8 *SenseDataLength,\r
268 OUT UINT8 *HostAdapterStatus,\r
269 OUT UINT8 *TargetStatus,\r
270 OUT VOID *DataBuffer,\r
271 IN OUT UINT32 *DataLength,\r
272 IN UINT32 StartLba,\r
273 IN UINT32 SectorSize\r
274 )\r
275/*++\r
276\r
277Routine Description:\r
278\r
279 TODO: Add function description\r
280\r
281Arguments:\r
282\r
283 ScsiIo - TODO: add argument description\r
284 Timeout - TODO: add argument description\r
285 SenseData - TODO: add argument description\r
286 SenseDataLength - TODO: add argument description\r
287 HostAdapterStatus - TODO: add argument description\r
288 TargetStatus - TODO: add argument description\r
289 DataBuffer - TODO: add argument description\r
290 DataLength - TODO: add argument description\r
291 StartLba - TODO: add argument description\r
292 SectorSize - TODO: add argument description\r
293\r
294Returns:\r
295\r
296 TODO: add return values\r
297\r
298--*/\r
299;\r
300\r
301#endif\r