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