]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBus.h
Porting ScsiBus module for Nt32Pkg.
[mirror_edk2.git] / MdeModulePkg / Bus / Scsi / ScsiBusDxe / ScsiBus.h
CommitLineData
3a10d471 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 ScsiBus.h\r
15\r
16Abstract:\r
17\r
18 Header file for SCSI Bus Driver.\r
19\r
20Revision History\r
21++*/\r
22\r
23// TODO: fix comment to end with --*/\r
24#ifndef _SCSI_BUS_H\r
25#define _SCSI_BUS_H\r
26\r
27\r
28#include <IndustryStandard/scsi.h>\r
29//\r
30// 1000 * 1000 * 10\r
31//\r
32#define ONE_SECOND_TIMER 10000000 \r
33\r
34#define SCSI_IO_DEV_SIGNATURE EFI_SIGNATURE_32 ('s', 'c', 'i', 'o')\r
35\r
36typedef struct {\r
37 UINT32 Signature;\r
38\r
39 EFI_HANDLE Handle;\r
40 EFI_SCSI_IO_PROTOCOL ScsiIo;\r
41 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
42 EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru;\r
43\r
44 UINT32 Pun;\r
45 UINT64 Lun;\r
46 UINT8 ScsiDeviceType;\r
47 UINT8 ScsiVersion;\r
48 BOOLEAN RemovableDevice;\r
49} SCSI_IO_DEV;\r
50\r
51#define SCSI_IO_DEV_FROM_THIS(a) CR (a, SCSI_IO_DEV, ScsiIo, SCSI_IO_DEV_SIGNATURE)\r
52\r
53//\r
54// Global Variables\r
55//\r
56extern EFI_DRIVER_BINDING_PROTOCOL gScsiBusDriverBinding;\r
57extern EFI_COMPONENT_NAME_PROTOCOL gScsiBusComponentName;\r
58\r
59EFI_STATUS\r
60EFIAPI\r
61SCSIBusDriverBindingSupported (\r
62 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
63 IN EFI_HANDLE Controller,\r
64 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
65 );\r
66\r
67EFI_STATUS\r
68EFIAPI\r
69SCSIBusDriverBindingStart (\r
70 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
71 IN EFI_HANDLE Controller,\r
72 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
73 );\r
74\r
75EFI_STATUS\r
76EFIAPI\r
77SCSIBusDriverBindingStop (\r
78 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
79 IN EFI_HANDLE Controller,\r
80 IN UINTN NumberOfChildren,\r
81 IN EFI_HANDLE *ChildHandleBuffer\r
82 );\r
83\r
84//\r
85// EFI Component Name Functions\r
86//\r
87EFI_STATUS\r
88EFIAPI\r
89ScsiBusComponentNameGetDriverName (\r
90 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
91 IN CHAR8 *Language,\r
92 OUT CHAR16 **DriverName\r
93 );\r
94\r
95EFI_STATUS\r
96EFIAPI\r
97ScsiBusComponentNameGetControllerName (\r
98 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
99 IN EFI_HANDLE ControllerHandle,\r
100 IN EFI_HANDLE ChildHandle OPTIONAL,\r
101 IN CHAR8 *Language,\r
102 OUT CHAR16 **ControllerName\r
103 );\r
104\r
105EFI_STATUS\r
106EFIAPI\r
107ScsiGetDeviceType (\r
108 IN EFI_SCSI_IO_PROTOCOL *This,\r
109 OUT UINT8 *DeviceType\r
110 )\r
111/*++\r
112\r
113Routine Description:\r
114\r
115 TODO: Add function description\r
116\r
117Arguments:\r
118\r
119 This - TODO: add argument description\r
120 DeviceType - TODO: add argument description\r
121\r
122Returns:\r
123\r
124 TODO: add return values\r
125\r
126--*/\r
127;\r
128\r
129EFI_STATUS\r
130EFIAPI\r
131ScsiResetBus (\r
132 IN EFI_SCSI_IO_PROTOCOL *This\r
133 )\r
134/*++\r
135\r
136Routine Description:\r
137\r
138 TODO: Add function description\r
139\r
140Arguments:\r
141\r
142 This - TODO: add argument description\r
143\r
144Returns:\r
145\r
146 TODO: add return values\r
147\r
148--*/\r
149;\r
150\r
151EFI_STATUS\r
152EFIAPI\r
153ScsiResetDevice (\r
154 IN EFI_SCSI_IO_PROTOCOL *This\r
155 )\r
156/*++\r
157\r
158Routine Description:\r
159\r
160 TODO: Add function description\r
161\r
162Arguments:\r
163\r
164 This - TODO: add argument description\r
165\r
166Returns:\r
167\r
168 TODO: add return values\r
169\r
170--*/\r
171;\r
172\r
173EFI_STATUS\r
174EFIAPI\r
175ScsiExecuteSCSICommand (\r
176 IN EFI_SCSI_IO_PROTOCOL *This,\r
177 IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *CommandPacket,\r
178 IN EFI_EVENT Event\r
179 )\r
180/*++\r
181\r
182Routine Description:\r
183\r
184 TODO: Add function description\r
185\r
186Arguments:\r
187\r
188 This - TODO: add argument description\r
189 CommandPacket - TODO: add argument description\r
190 Event - TODO: add argument description\r
191\r
192Returns:\r
193\r
194 TODO: add return values\r
195\r
196--*/\r
197;\r
198\r
199EFI_STATUS\r
200ScsiScanCreateDevice (\r
201 EFI_DRIVER_BINDING_PROTOCOL *This,\r
202 EFI_HANDLE Controller,\r
203 UINT32 Pun,\r
204 UINT64 Lun,\r
205 EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,\r
206 EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath\r
207 )\r
208/*++\r
209\r
210Routine Description:\r
211\r
212 TODO: Add function description\r
213\r
214Arguments:\r
215\r
216 This - TODO: add argument description\r
217 Controller - TODO: add argument description\r
218 Pun - TODO: add argument description\r
219 Lun - TODO: add argument description\r
220 ScsiPassThru - TODO: add argument description\r
221 ParentDevicePath - TODO: add argument description\r
222\r
223Returns:\r
224\r
225 TODO: add return values\r
226\r
227--*/\r
228;\r
229\r
230BOOLEAN\r
231DiscoverScsiDevice (\r
232 SCSI_IO_DEV *ScsiIoDevice\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 ScsiIoDevice - TODO: add argument description\r
243\r
244Returns:\r
245\r
246 TODO: add return values\r
247\r
248--*/\r
249;\r
250\r
251EFI_STATUS\r
252GetLunList (\r
253 EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,\r
254 UINT32 Target,\r
255 UINT64 **LunArray,\r
256 UINTN *NumberOfLuns\r
257 )\r
258/*++\r
259\r
260Routine Description:\r
261\r
262 TODO: Add function description\r
263\r
264Arguments:\r
265\r
266 ScsiPassThru - TODO: add argument description\r
267 Target - TODO: add argument description\r
268 LunArray - TODO: add argument description\r
269 NumberOfLuns - TODO: add argument description\r
270\r
271Returns:\r
272\r
273 TODO: add return values\r
274\r
275--*/\r
276;\r
277\r
278EFI_STATUS\r
279ScsiBusSubmitReportLunCommand (\r
280 EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,\r
281 UINT32 Target,\r
282 UINTN AllocationLength,\r
283 VOID *Buffer,\r
284 EFI_SCSI_SENSE_DATA *SenseData,\r
285 UINT8 *SenseDataLength,\r
286 UINT8 *HostAdapterStatus,\r
287 UINT8 *TargetStatus\r
288 )\r
289/*++\r
290\r
291Routine Description:\r
292\r
293 TODO: Add function description\r
294\r
295Arguments:\r
296\r
297 ScsiPassThru - TODO: add argument description\r
298 Target - TODO: add argument description\r
299 AllocationLength - TODO: add argument description\r
300 Buffer - TODO: add argument description\r
301 SenseData - TODO: add argument description\r
302 SenseDataLength - TODO: add argument description\r
303 HostAdapterStatus - TODO: add argument description\r
304 TargetStatus - TODO: add argument description\r
305\r
306Returns:\r
307\r
308 TODO: add return values\r
309\r
310--*/\r
311;\r
312#endif\r