Updated MSA by putting Specification element at the end of the header section
[mirror_edk2.git] / EdkModulePkg / Bus / Scsi / ScsiBus / Dxe / ScsiBus.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
f0ec738d 14 ScsiBus.h\r
878ddf1f 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
61ScsiGetDeviceType (\r
62 IN EFI_SCSI_IO_PROTOCOL *This,\r
63 OUT UINT8 *DeviceType\r
64 )\r
65/*++\r
66\r
67Routine Description:\r
68\r
69 TODO: Add function description\r
70\r
71Arguments:\r
72\r
73 This - TODO: add argument description\r
74 DeviceType - TODO: add argument description\r
75\r
76Returns:\r
77\r
78 TODO: add return values\r
79\r
80--*/\r
81;\r
82\r
83EFI_STATUS\r
84EFIAPI\r
85ScsiResetBus (\r
86 IN EFI_SCSI_IO_PROTOCOL *This\r
87 )\r
88/*++\r
89\r
90Routine Description:\r
91\r
92 TODO: Add function description\r
93\r
94Arguments:\r
95\r
96 This - TODO: add argument description\r
97\r
98Returns:\r
99\r
100 TODO: add return values\r
101\r
102--*/\r
103;\r
104\r
105EFI_STATUS\r
106EFIAPI\r
107ScsiResetDevice (\r
108 IN EFI_SCSI_IO_PROTOCOL *This\r
109 )\r
110/*++\r
111\r
112Routine Description:\r
113\r
114 TODO: Add function description\r
115\r
116Arguments:\r
117\r
118 This - TODO: add argument description\r
119\r
120Returns:\r
121\r
122 TODO: add return values\r
123\r
124--*/\r
125;\r
126\r
127EFI_STATUS\r
128EFIAPI\r
129ScsiExecuteSCSICommand (\r
130 IN EFI_SCSI_IO_PROTOCOL *This,\r
131 IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *CommandPacket,\r
132 IN EFI_EVENT Event\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 CommandPacket - TODO: add argument description\r
144 Event - TODO: add argument description\r
145\r
146Returns:\r
147\r
148 TODO: add return values\r
149\r
150--*/\r
151;\r
152\r
153EFI_STATUS\r
154ScsiScanCreateDevice (\r
155 EFI_DRIVER_BINDING_PROTOCOL *This,\r
156 EFI_HANDLE Controller,\r
157 UINT32 Pun,\r
158 UINT64 Lun,\r
159 EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,\r
160 EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath\r
161 )\r
162/*++\r
163\r
164Routine Description:\r
165\r
166 TODO: Add function description\r
167\r
168Arguments:\r
169\r
170 This - TODO: add argument description\r
171 Controller - TODO: add argument description\r
172 Pun - TODO: add argument description\r
173 Lun - TODO: add argument description\r
174 ScsiPassThru - TODO: add argument description\r
175 ParentDevicePath - TODO: add argument description\r
176\r
177Returns:\r
178\r
179 TODO: add return values\r
180\r
181--*/\r
182;\r
183\r
184BOOLEAN\r
185DiscoverScsiDevice (\r
186 SCSI_IO_DEV *ScsiIoDevice\r
187 )\r
188/*++\r
189\r
190Routine Description:\r
191\r
192 TODO: Add function description\r
193\r
194Arguments:\r
195\r
196 ScsiIoDevice - TODO: add argument description\r
197\r
198Returns:\r
199\r
200 TODO: add return values\r
201\r
202--*/\r
203;\r
204\r
205EFI_STATUS\r
206GetLunList (\r
207 EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,\r
208 UINT32 Target,\r
209 UINT64 **LunArray,\r
210 UINTN *NumberOfLuns\r
211 )\r
212/*++\r
213\r
214Routine Description:\r
215\r
216 TODO: Add function description\r
217\r
218Arguments:\r
219\r
220 ScsiPassThru - TODO: add argument description\r
221 Target - TODO: add argument description\r
222 LunArray - TODO: add argument description\r
223 NumberOfLuns - TODO: add argument description\r
224\r
225Returns:\r
226\r
227 TODO: add return values\r
228\r
229--*/\r
230;\r
231\r
232EFI_STATUS\r
233ScsiBusSubmitReportLunCommand (\r
234 EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru,\r
235 UINT32 Target,\r
236 UINTN AllocationLength,\r
237 VOID *Buffer,\r
238 EFI_SCSI_SENSE_DATA *SenseData,\r
239 UINT8 *SenseDataLength,\r
240 UINT8 *HostAdapterStatus,\r
241 UINT8 *TargetStatus\r
242 )\r
243/*++\r
244\r
245Routine Description:\r
246\r
247 TODO: Add function description\r
248\r
249Arguments:\r
250\r
251 ScsiPassThru - TODO: add argument description\r
252 Target - TODO: add argument description\r
253 AllocationLength - TODO: add argument description\r
254 Buffer - TODO: add argument description\r
255 SenseData - TODO: add argument description\r
256 SenseDataLength - TODO: add argument description\r
257 HostAdapterStatus - TODO: add argument description\r
258 TargetStatus - TODO: add argument description\r
259\r
260Returns:\r
261\r
262 TODO: add return values\r
263\r
264--*/\r
265;\r
266#endif\r