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