]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - EdkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.h
Redefine SPEC and Release Version to 0x20000
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / IdeBus / Dxe / idebus.h
... / ...
CommitLineData
1/** @file\r
2 Header file for IDE Bus Driver.\r
3\r
4 Copyright (c) 2006, 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
9\r
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
12\r
13**/\r
14\r
15#ifndef _IDE_BUS_H\r
16#define _IDE_BUS_H\r
17\r
18\r
19#include <IndustryStandard/pci22.h>\r
20#include "idedata.h"\r
21\r
22//\r
23// Extra Definition to porting\r
24//\r
25#define EFI_MIN(a, b) (((a) < (b)) ? (a) : (b))\r
26\r
27#define MAX_IDE_DEVICE 4\r
28#define MAX_IDE_CHANNELS 2\r
29#define MAX_IDE_DRIVES 2\r
30\r
31typedef struct {\r
32 BOOLEAN HaveScannedDevice[MAX_IDE_DEVICE];\r
33 BOOLEAN DeviceFound[MAX_IDE_DEVICE];\r
34 BOOLEAN DeviceProcessed[MAX_IDE_DEVICE];\r
35} IDE_BUS_DRIVER_PRIVATE_DATA;\r
36\r
37#define IDE_BLK_IO_DEV_SIGNATURE EFI_SIGNATURE_32 ('i', 'b', 'i', 'd')\r
38\r
39typedef struct {\r
40 UINT32 Signature;\r
41\r
42 EFI_HANDLE Handle;\r
43 EFI_BLOCK_IO_PROTOCOL BlkIo;\r
44 EFI_BLOCK_IO_MEDIA BlkMedia;\r
45 EFI_DISK_INFO_PROTOCOL DiskInfo;\r
46 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
47 EFI_PCI_IO_PROTOCOL *PciIo;\r
48 IDE_BUS_DRIVER_PRIVATE_DATA *IdeBusDriverPrivateData;\r
49\r
50 //\r
51 // Local Data for IDE interface goes here\r
52 //\r
53 EFI_IDE_CHANNEL Channel;\r
54 EFI_IDE_DEVICE Device;\r
55 UINT16 Lun;\r
56 IDE_DEVICE_TYPE Type;\r
57\r
58 IDE_BASE_REGISTERS *IoPort;\r
59 UINT16 AtapiError;\r
60\r
61 INQUIRY_DATA *pInquiryData;\r
62 EFI_IDENTIFY_DATA *pIdData;\r
63 ATA_PIO_MODE PioMode;\r
64 ATA_UDMA_MODE UDma_Mode;\r
65 CHAR8 ModelName[41];\r
66 REQUEST_SENSE_DATA *SenseData;\r
67 UINT8 SenseDataNumber;\r
68 UINT8 *Cache;\r
69\r
70 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
71} IDE_BLK_IO_DEV;\r
72\r
73#include "ComponentName.h"\r
74\r
75#define IDE_BLOCK_IO_DEV_FROM_THIS(a) CR (a, IDE_BLK_IO_DEV, BlkIo, IDE_BLK_IO_DEV_SIGNATURE)\r
76#define IDE_BLOCK_IO_DEV_FROM_DISK_INFO_THIS(a) CR (a, IDE_BLK_IO_DEV, DiskInfo, IDE_BLK_IO_DEV_SIGNATURE)\r
77\r
78//\r
79// Global Variables\r
80//\r
81extern EFI_DRIVER_BINDING_PROTOCOL gIDEBusDriverBinding;\r
82\r
83#include "ide.h"\r
84\r
85//\r
86// Prototypes\r
87// Driver model protocol interface\r
88//\r
89/**\r
90 TODO: Add function description\r
91\r
92 @param ImageHandle TODO: add argument description\r
93 @param SystemTable TODO: add argument description\r
94\r
95 TODO: add return values\r
96\r
97**/\r
98EFI_STATUS\r
99EFIAPI\r
100IDEBusControllerDriverEntryPoint (\r
101 IN EFI_HANDLE ImageHandle,\r
102 IN EFI_SYSTEM_TABLE *SystemTable\r
103 )\r
104;\r
105\r
106/**\r
107 TODO: Add function description\r
108\r
109 @param This TODO: add argument description\r
110 @param Controller TODO: add argument description\r
111 @param RemainingDevicePath TODO: add argument description\r
112\r
113 TODO: add return values\r
114\r
115**/\r
116EFI_STATUS\r
117EFIAPI\r
118IDEBusDriverBindingSupported (\r
119 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
120 IN EFI_HANDLE Controller,\r
121 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
122 )\r
123;\r
124\r
125/**\r
126 TODO: Add function description\r
127\r
128 @param This TODO: add argument description\r
129 @param Controller TODO: add argument description\r
130 @param RemainingDevicePath TODO: add argument description\r
131\r
132 TODO: add return values\r
133\r
134**/\r
135EFI_STATUS\r
136EFIAPI\r
137IDEBusDriverBindingStart (\r
138 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
139 IN EFI_HANDLE Controller,\r
140 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
141 )\r
142;\r
143\r
144/**\r
145 TODO: Add function description\r
146\r
147 @param This TODO: add argument description\r
148 @param Controller TODO: add argument description\r
149 @param NumberOfChildren TODO: add argument description\r
150 @param ChildHandleBuffer TODO: add argument description\r
151\r
152 TODO: add return values\r
153\r
154**/\r
155EFI_STATUS\r
156EFIAPI\r
157IDEBusDriverBindingStop (\r
158 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
159 IN EFI_HANDLE Controller,\r
160 IN UINTN NumberOfChildren,\r
161 IN EFI_HANDLE *ChildHandleBuffer\r
162 )\r
163;\r
164\r
165//\r
166// Block I/O Protocol Interface\r
167//\r
168/**\r
169 TODO: Add function description\r
170\r
171 @param This TODO: add argument description\r
172 @param ExtendedVerification TODO: add argument description\r
173\r
174 TODO: add return values\r
175\r
176**/\r
177EFI_STATUS\r
178EFIAPI\r
179IDEBlkIoReset (\r
180 IN EFI_BLOCK_IO_PROTOCOL *This,\r
181 IN BOOLEAN ExtendedVerification\r
182 )\r
183;\r
184\r
185/**\r
186 TODO: Add function description\r
187\r
188 @param This TODO: add argument description\r
189 @param MediaId TODO: add argument description\r
190 @param LBA TODO: add argument description\r
191 @param BufferSize TODO: add argument description\r
192 @param Buffer TODO: add argument description\r
193\r
194 TODO: add return values\r
195\r
196**/\r
197EFI_STATUS\r
198EFIAPI\r
199IDEBlkIoReadBlocks (\r
200 IN EFI_BLOCK_IO_PROTOCOL *This,\r
201 IN UINT32 MediaId,\r
202 IN EFI_LBA LBA,\r
203 IN UINTN BufferSize,\r
204 OUT VOID *Buffer\r
205 )\r
206;\r
207\r
208/**\r
209 TODO: Add function description\r
210\r
211 @param This TODO: add argument description\r
212 @param MediaId TODO: add argument description\r
213 @param LBA TODO: add argument description\r
214 @param BufferSize TODO: add argument description\r
215 @param Buffer TODO: add argument description\r
216\r
217 TODO: add return values\r
218\r
219**/\r
220EFI_STATUS\r
221EFIAPI\r
222IDEBlkIoWriteBlocks (\r
223 IN EFI_BLOCK_IO_PROTOCOL *This,\r
224 IN UINT32 MediaId,\r
225 IN EFI_LBA LBA,\r
226 IN UINTN BufferSize,\r
227 IN VOID *Buffer\r
228 )\r
229;\r
230\r
231/**\r
232 TODO: Add function description\r
233\r
234 @param This TODO: add argument description\r
235\r
236 TODO: add return values\r
237\r
238**/\r
239EFI_STATUS\r
240EFIAPI\r
241IDEBlkIoFlushBlocks (\r
242 IN EFI_BLOCK_IO_PROTOCOL *This\r
243 )\r
244;\r
245\r
246/**\r
247 TODO: Add function description\r
248\r
249 @param PciIo TODO: add argument description\r
250 @param Enable TODO: add argument description\r
251\r
252 TODO: add return values\r
253\r
254**/\r
255EFI_STATUS\r
256IDERegisterDecodeEnableorDisable (\r
257 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
258 IN BOOLEAN Enable\r
259 )\r
260;\r
261\r
262/**\r
263 TODO: Add function description\r
264\r
265 @param This TODO: add argument description\r
266 @param InquiryData TODO: add argument description\r
267 @param IntquiryDataSize TODO: add argument description\r
268\r
269 TODO: add return values\r
270\r
271**/\r
272EFI_STATUS\r
273EFIAPI\r
274IDEDiskInfoInquiry (\r
275 IN EFI_DISK_INFO_PROTOCOL *This,\r
276 IN OUT VOID *InquiryData,\r
277 IN OUT UINT32 *IntquiryDataSize\r
278 )\r
279;\r
280\r
281/**\r
282 TODO: Add function description\r
283\r
284 @param This TODO: add argument description\r
285 @param IdentifyData TODO: add argument description\r
286 @param IdentifyDataSize TODO: add argument description\r
287\r
288 TODO: add return values\r
289\r
290**/\r
291EFI_STATUS\r
292EFIAPI\r
293IDEDiskInfoIdentify (\r
294 IN EFI_DISK_INFO_PROTOCOL *This,\r
295 IN OUT VOID *IdentifyData,\r
296 IN OUT UINT32 *IdentifyDataSize\r
297 )\r
298;\r
299\r
300/**\r
301 TODO: Add function description\r
302\r
303 @param This TODO: add argument description\r
304 @param SenseData TODO: add argument description\r
305 @param SenseDataSize TODO: add argument description\r
306 @param SenseDataNumber TODO: add argument description\r
307\r
308 TODO: add return values\r
309\r
310**/\r
311EFI_STATUS\r
312EFIAPI\r
313IDEDiskInfoSenseData (\r
314 IN EFI_DISK_INFO_PROTOCOL *This,\r
315 IN OUT VOID *SenseData,\r
316 IN OUT UINT32 *SenseDataSize,\r
317 OUT UINT8 *SenseDataNumber\r
318 )\r
319;\r
320\r
321/**\r
322 TODO: Add function description\r
323\r
324 @param This TODO: add argument description\r
325 @param IdeChannel TODO: add argument description\r
326 @param IdeDevice TODO: add argument description\r
327\r
328 TODO: add return values\r
329\r
330**/\r
331EFI_STATUS\r
332EFIAPI\r
333IDEDiskInfoWhichIde (\r
334 IN EFI_DISK_INFO_PROTOCOL *This,\r
335 OUT UINT32 *IdeChannel,\r
336 OUT UINT32 *IdeDevice\r
337 )\r
338;\r
339\r
340#endif\r