]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.h
Update comments to conform to the new, Doxygen friendly, coding standard. These...
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / IdeBus / Dxe / idebus.h
CommitLineData
ed72955c 1/** @file\r
2 Header file for IDE Bus Driver.\r
878ddf1f 3\r
ed72955c 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
878ddf1f 9\r
ed72955c 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
878ddf1f 12\r
ed72955c 13**/\r
878ddf1f 14\r
878ddf1f 15#ifndef _IDE_BUS_H\r
16#define _IDE_BUS_H\r
17\r
18\r
f0ec738d 19#include <IndustryStandard/pci22.h>\r
878ddf1f 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
ed72955c 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
878ddf1f 98EFI_STATUS\r
99EFIAPI\r
100IDEBusControllerDriverEntryPoint (\r
101 IN EFI_HANDLE ImageHandle,\r
102 IN EFI_SYSTEM_TABLE *SystemTable\r
103 )\r
ed72955c 104;\r
878ddf1f 105\r
ed72955c 106/**\r
878ddf1f 107 TODO: Add function description\r
108\r
ed72955c 109 @param This TODO: add argument description\r
110 @param Controller TODO: add argument description\r
111 @param RemainingDevicePath TODO: add argument description\r
878ddf1f 112\r
113 TODO: add return values\r
114\r
ed72955c 115**/\r
878ddf1f 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
ed72955c 123;\r
878ddf1f 124\r
ed72955c 125/**\r
878ddf1f 126 TODO: Add function description\r
127\r
ed72955c 128 @param This TODO: add argument description\r
129 @param Controller TODO: add argument description\r
130 @param RemainingDevicePath TODO: add argument description\r
878ddf1f 131\r
132 TODO: add return values\r
133\r
ed72955c 134**/\r
878ddf1f 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
ed72955c 142;\r
878ddf1f 143\r
ed72955c 144/**\r
878ddf1f 145 TODO: Add function description\r
146\r
ed72955c 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
878ddf1f 151\r
152 TODO: add return values\r
153\r
ed72955c 154**/\r
878ddf1f 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
ed72955c 163;\r
878ddf1f 164\r
ed72955c 165//\r
166// Block I/O Protocol Interface\r
167//\r
168/**\r
878ddf1f 169 TODO: Add function description\r
170\r
ed72955c 171 @param This TODO: add argument description\r
172 @param ExtendedVerification TODO: add argument description\r
878ddf1f 173\r
174 TODO: add return values\r
175\r
ed72955c 176**/\r
878ddf1f 177EFI_STATUS\r
178EFIAPI\r
179IDEBlkIoReset (\r
180 IN EFI_BLOCK_IO_PROTOCOL *This,\r
181 IN BOOLEAN ExtendedVerification\r
182 )\r
ed72955c 183;\r
878ddf1f 184\r
ed72955c 185/**\r
878ddf1f 186 TODO: Add function description\r
187\r
ed72955c 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
878ddf1f 193\r
194 TODO: add return values\r
195\r
ed72955c 196**/\r
878ddf1f 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
ed72955c 206;\r
878ddf1f 207\r
ed72955c 208/**\r
878ddf1f 209 TODO: Add function description\r
210\r
ed72955c 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
878ddf1f 216\r
217 TODO: add return values\r
218\r
ed72955c 219**/\r
878ddf1f 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
ed72955c 229;\r
878ddf1f 230\r
ed72955c 231/**\r
878ddf1f 232 TODO: Add function description\r
233\r
ed72955c 234 @param This TODO: add argument description\r
878ddf1f 235\r
236 TODO: add return values\r
237\r
ed72955c 238**/\r
878ddf1f 239EFI_STATUS\r
240EFIAPI\r
241IDEBlkIoFlushBlocks (\r
242 IN EFI_BLOCK_IO_PROTOCOL *This\r
243 )\r
ed72955c 244;\r
878ddf1f 245\r
ed72955c 246/**\r
878ddf1f 247 TODO: Add function description\r
248\r
ed72955c 249 @param PciIo TODO: add argument description\r
250 @param Enable TODO: add argument description\r
878ddf1f 251\r
252 TODO: add return values\r
253\r
ed72955c 254**/\r
878ddf1f 255EFI_STATUS\r
256IDERegisterDecodeEnableorDisable (\r
257 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
258 IN BOOLEAN Enable\r
259 )\r
ed72955c 260;\r
878ddf1f 261\r
ed72955c 262/**\r
878ddf1f 263 TODO: Add function description\r
264\r
ed72955c 265 @param This TODO: add argument description\r
266 @param InquiryData TODO: add argument description\r
267 @param IntquiryDataSize TODO: add argument description\r
878ddf1f 268\r
269 TODO: add return values\r
270\r
ed72955c 271**/\r
878ddf1f 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
ed72955c 279;\r
878ddf1f 280\r
ed72955c 281/**\r
878ddf1f 282 TODO: Add function description\r
283\r
ed72955c 284 @param This TODO: add argument description\r
285 @param IdentifyData TODO: add argument description\r
286 @param IdentifyDataSize TODO: add argument description\r
878ddf1f 287\r
288 TODO: add return values\r
289\r
ed72955c 290**/\r
878ddf1f 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
ed72955c 298;\r
878ddf1f 299\r
ed72955c 300/**\r
878ddf1f 301 TODO: Add function description\r
302\r
ed72955c 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
878ddf1f 307\r
308 TODO: add return values\r
309\r
ed72955c 310**/\r
878ddf1f 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
ed72955c 319;\r
878ddf1f 320\r
ed72955c 321/**\r
878ddf1f 322 TODO: Add function description\r
323\r
ed72955c 324 @param This TODO: add argument description\r
325 @param IdeChannel TODO: add argument description\r
326 @param IdeDevice TODO: add argument description\r
878ddf1f 327\r
328 TODO: add return values\r
329\r
ed72955c 330**/\r
878ddf1f 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
878ddf1f 338;\r
339\r
340#endif\r