]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Bus/Pci/IdeBus/Dxe/ide.h
Add necessary files (such as *.h) in module msa and remove unused msa files.
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / IdeBus / Dxe / ide.h
CommitLineData
ed72955c 1/** @file\r
2 Header file for IDE Bus Driver, containing the helper functions' \r
3 entire prototype.\r
878ddf1f 4\r
ed72955c 5 Copyright (c) 2006, Intel Corporation \r
6 All rights reserved. This program and the accompanying materials \r
7 are licensed and made available under the terms and conditions of the BSD License \r
8 which accompanies this distribution. The full text of the license may be found at \r
9 http://opensource.org/licenses/bsd-license.php \r
878ddf1f 10\r
ed72955c 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
878ddf1f 13\r
ed72955c 14 @par Revision Reference:\r
15 2002-6: Add Atapi6 enhancement, support >120GB hard disk, including\r
16 Add - IDEBlkIoReadBlocksExt() func definition\r
17 Add - IDEBlkIoWriteBlocksExt() func definition\r
878ddf1f 18\r
ed72955c 19**/\r
878ddf1f 20\r
878ddf1f 21#ifndef _IDE_H\r
22#define _IDE_H\r
23\r
24//\r
25// Helper functions Prototype\r
26//\r
ed72955c 27/**\r
28 TODO: Add function description\r
29\r
30 @param This TODO: add argument description\r
31 @param Controller TODO: add argument description\r
32 @param Handle TODO: add argument description\r
33\r
34 TODO: add return values\r
35\r
36**/\r
878ddf1f 37EFI_STATUS\r
38DeRegisterIdeDevice (\r
39 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
40 IN EFI_HANDLE Controller,\r
41 IN EFI_HANDLE Handle\r
42 )\r
ed72955c 43;\r
878ddf1f 44\r
ed72955c 45/**\r
878ddf1f 46 TODO: Add function description\r
47\r
ed72955c 48 @param Controller TODO: add argument description\r
49 @param PciIo TODO: add argument description\r
50 @param ParentDevicePath TODO: add argument description\r
51 @param RemainingDevicePath TODO: add argument description\r
878ddf1f 52\r
53 TODO: add return values\r
54\r
ed72955c 55**/\r
878ddf1f 56EFI_STATUS\r
57EnableIdeDevice (\r
58 IN EFI_HANDLE Controller,\r
59 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
60 IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,\r
61 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
62 )\r
ed72955c 63;\r
878ddf1f 64\r
ed72955c 65/**\r
878ddf1f 66 TODO: Add function description\r
67\r
ed72955c 68 @param PciIo TODO: add argument description\r
69 @param Port TODO: add argument description\r
878ddf1f 70\r
71 TODO: add return values\r
72\r
ed72955c 73**/\r
878ddf1f 74UINT8\r
75IDEReadPortB (\r
76 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
77 IN UINT16 Port\r
78 )\r
ed72955c 79;\r
878ddf1f 80\r
ed72955c 81/**\r
878ddf1f 82 TODO: Add function description\r
83\r
ed72955c 84 @param PciIo TODO: add argument description\r
85 @param Port TODO: add argument description\r
86 @param Count TODO: add argument description\r
87 @param Buffer TODO: add argument description\r
878ddf1f 88\r
89 TODO: add return values\r
90\r
ed72955c 91**/\r
878ddf1f 92VOID\r
93IDEReadPortWMultiple (\r
94 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
95 IN UINT16 Port,\r
96 IN UINTN Count,\r
97 OUT VOID *Buffer\r
98 )\r
ed72955c 99;\r
878ddf1f 100\r
ed72955c 101/**\r
878ddf1f 102 TODO: Add function description\r
103\r
ed72955c 104 @param PciIo TODO: add argument description\r
105 @param Port TODO: add argument description\r
106 @param Data TODO: add argument description\r
878ddf1f 107\r
108 TODO: add return values\r
109\r
ed72955c 110**/\r
878ddf1f 111VOID\r
112IDEWritePortB (\r
113 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
114 IN UINT16 Port,\r
115 IN UINT8 Data\r
116 )\r
ed72955c 117;\r
878ddf1f 118\r
ed72955c 119/**\r
878ddf1f 120 TODO: Add function description\r
121\r
ed72955c 122 @param PciIo TODO: add argument description\r
123 @param Port TODO: add argument description\r
124 @param Data TODO: add argument description\r
878ddf1f 125\r
126 TODO: add return values\r
127\r
ed72955c 128**/\r
878ddf1f 129VOID\r
130IDEWritePortW (\r
131 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
132 IN UINT16 Port,\r
133 IN UINT16 Data\r
134 )\r
ed72955c 135;\r
878ddf1f 136\r
ed72955c 137/**\r
878ddf1f 138 TODO: Add function description\r
139\r
ed72955c 140 @param PciIo TODO: add argument description\r
141 @param Port TODO: add argument description\r
142 @param Count TODO: add argument description\r
143 @param Buffer TODO: add argument description\r
878ddf1f 144\r
145 TODO: add return values\r
146\r
ed72955c 147**/\r
878ddf1f 148VOID\r
149IDEWritePortWMultiple (\r
150 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
151 IN UINT16 Port,\r
152 IN UINTN Count,\r
153 IN VOID *Buffer\r
154 )\r
ed72955c 155;\r
878ddf1f 156\r
ed72955c 157/**\r
878ddf1f 158 TODO: Add function description\r
159\r
ed72955c 160 @param PciIo TODO: add argument description\r
161 @param IdeRegsBaseAddr TODO: add argument description\r
878ddf1f 162\r
163 TODO: add return values\r
164\r
ed72955c 165**/\r
878ddf1f 166EFI_STATUS\r
167GetIdeRegistersBaseAddr (\r
168 IN EFI_PCI_IO_PROTOCOL *PciIo,\r
169 OUT IDE_REGISTERS_BASE_ADDR *IdeRegsBaseAddr\r
170 )\r
ed72955c 171;\r
878ddf1f 172\r
ed72955c 173/**\r
878ddf1f 174 TODO: Add function description\r
175\r
ed72955c 176 @param IdeDev TODO: add argument description\r
878ddf1f 177\r
178 TODO: add return values\r
179\r
ed72955c 180**/\r
878ddf1f 181EFI_STATUS\r
182ReassignIdeResources (\r
183 IN IDE_BLK_IO_DEV *IdeDev\r
184 )\r
ed72955c 185;\r
878ddf1f 186\r
ed72955c 187/**\r
878ddf1f 188 TODO: Add function description\r
189\r
ed72955c 190 @param IdeDev TODO: add argument description\r
878ddf1f 191\r
192 TODO: add return values\r
193\r
ed72955c 194**/\r
878ddf1f 195EFI_STATUS\r
196DiscoverIdeDevice (\r
197 IN IDE_BLK_IO_DEV *IdeDev\r
198 )\r
ed72955c 199;\r
878ddf1f 200\r
ed72955c 201/**\r
878ddf1f 202 TODO: Add function description\r
203\r
ed72955c 204 @param IdeDev TODO: add argument description\r
878ddf1f 205\r
206 TODO: add return values\r
207\r
ed72955c 208**/\r
878ddf1f 209EFI_STATUS\r
210DetectIDEController (\r
211 IN IDE_BLK_IO_DEV *IdeDev\r
212 )\r
ed72955c 213;\r
878ddf1f 214\r
ed72955c 215/**\r
878ddf1f 216 TODO: Add function description\r
217\r
ed72955c 218 @param IdeDev TODO: add argument description\r
219 @param TimeoutInMilliSeconds TODO: add argument description\r
878ddf1f 220\r
221 TODO: add return values\r
222\r
ed72955c 223**/\r
878ddf1f 224EFI_STATUS\r
225DRQClear (\r
226 IN IDE_BLK_IO_DEV *IdeDev,\r
227 IN UINTN TimeoutInMilliSeconds\r
228 )\r
ed72955c 229;\r
878ddf1f 230\r
ed72955c 231/**\r
878ddf1f 232 TODO: Add function description\r
233\r
ed72955c 234 @param IdeDev TODO: add argument description\r
235 @param TimeoutInMilliSeconds TODO: add argument description\r
878ddf1f 236\r
237 TODO: add return values\r
238\r
ed72955c 239**/\r
878ddf1f 240EFI_STATUS\r
241DRQClear2 (\r
242 IN IDE_BLK_IO_DEV *IdeDev,\r
243 IN UINTN TimeoutInMilliSeconds\r
244 )\r
ed72955c 245;\r
878ddf1f 246\r
ed72955c 247/**\r
878ddf1f 248 TODO: Add function description\r
249\r
ed72955c 250 @param IdeDev TODO: add argument description\r
251 @param TimeoutInMilliSeconds TODO: add argument description\r
878ddf1f 252\r
253 TODO: add return values\r
254\r
ed72955c 255**/\r
878ddf1f 256EFI_STATUS\r
257DRQReady (\r
258 IN IDE_BLK_IO_DEV *IdeDev,\r
259 IN UINTN TimeoutInMilliSeconds\r
260 )\r
ed72955c 261;\r
878ddf1f 262\r
ed72955c 263/**\r
878ddf1f 264 TODO: Add function description\r
265\r
ed72955c 266 @param IdeDev TODO: add argument description\r
267 @param TimeoutInMilliSeconds TODO: add argument description\r
878ddf1f 268\r
269 TODO: add return values\r
270\r
ed72955c 271**/\r
878ddf1f 272EFI_STATUS\r
273DRQReady2 (\r
274 IN IDE_BLK_IO_DEV *IdeDev,\r
275 IN UINTN TimeoutInMilliSeconds\r
276 )\r
ed72955c 277;\r
878ddf1f 278\r
ed72955c 279/**\r
878ddf1f 280 TODO: Add function description\r
281\r
ed72955c 282 @param IdeDev TODO: add argument description\r
283 @param TimeoutInMilliSeconds TODO: add argument description\r
878ddf1f 284\r
285 TODO: add return values\r
286\r
ed72955c 287**/\r
878ddf1f 288EFI_STATUS\r
289WaitForBSYClear (\r
290 IN IDE_BLK_IO_DEV *IdeDev,\r
291 IN UINTN TimeoutInMilliSeconds\r
292 )\r
ed72955c 293;\r
878ddf1f 294\r
ed72955c 295/**\r
878ddf1f 296 TODO: Add function description\r
297\r
ed72955c 298 @param IdeDev TODO: add argument description\r
299 @param TimeoutInMilliSeconds TODO: add argument description\r
878ddf1f 300\r
301 TODO: add return values\r
302\r
ed72955c 303**/\r
878ddf1f 304EFI_STATUS\r
305WaitForBSYClear2 (\r
306 IN IDE_BLK_IO_DEV *IdeDev,\r
307 IN UINTN TimeoutInMilliSeconds\r
308 )\r
ed72955c 309;\r
878ddf1f 310\r
ed72955c 311/**\r
878ddf1f 312 TODO: Add function description\r
313\r
ed72955c 314 @param IdeDev TODO: add argument description\r
315 @param DelayInMilliSeconds TODO: add argument description\r
878ddf1f 316\r
317 TODO: add return values\r
318\r
ed72955c 319**/\r
878ddf1f 320EFI_STATUS\r
321DRDYReady (\r
322 IN IDE_BLK_IO_DEV *IdeDev,\r
323 IN UINTN DelayInMilliSeconds\r
324 )\r
ed72955c 325;\r
878ddf1f 326\r
ed72955c 327/**\r
878ddf1f 328 TODO: Add function description\r
329\r
ed72955c 330 @param IdeDev TODO: add argument description\r
331 @param DelayInMilliSeconds TODO: add argument description\r
878ddf1f 332\r
333 TODO: add return values\r
334\r
ed72955c 335**/\r
878ddf1f 336EFI_STATUS\r
337DRDYReady2 (\r
338 IN IDE_BLK_IO_DEV *IdeDev,\r
339 IN UINTN DelayInMilliSeconds\r
340 )\r
ed72955c 341;\r
878ddf1f 342\r
ed72955c 343/**\r
878ddf1f 344 TODO: Add function description\r
345\r
ed72955c 346 @param Destination TODO: add argument description\r
347 @param Source TODO: add argument description\r
348 @param Size TODO: add argument description\r
878ddf1f 349\r
350 TODO: add return values\r
351\r
ed72955c 352**/\r
878ddf1f 353VOID\r
354SwapStringChars (\r
355 IN CHAR8 *Destination,\r
356 IN CHAR8 *Source,\r
357 IN UINT32 Size\r
358 )\r
ed72955c 359;\r
878ddf1f 360\r
ed72955c 361//\r
362// ATA device functions' prototype\r
363//\r
364/**\r
878ddf1f 365 TODO: Add function description\r
366\r
ed72955c 367 @param IdeDev TODO: add argument description\r
878ddf1f 368\r
369 TODO: add return values\r
370\r
ed72955c 371**/\r
878ddf1f 372EFI_STATUS\r
373ATAIdentify (\r
374 IN IDE_BLK_IO_DEV *IdeDev\r
375 )\r
ed72955c 376;\r
878ddf1f 377\r
ed72955c 378/**\r
878ddf1f 379 TODO: Add function description\r
380\r
ed72955c 381 @param IdeDev TODO: add argument description\r
878ddf1f 382\r
383 TODO: add return values\r
384\r
ed72955c 385**/\r
878ddf1f 386VOID\r
387PrintAtaModuleName (\r
388 IN IDE_BLK_IO_DEV *IdeDev\r
389 )\r
ed72955c 390;\r
878ddf1f 391\r
ed72955c 392/**\r
878ddf1f 393 TODO: Add function description\r
394\r
ed72955c 395 @param IdeDev TODO: add argument description\r
396 @param Buffer TODO: add argument description\r
397 @param ByteCount TODO: add argument description\r
398 @param AtaCommand TODO: add argument description\r
399 @param Head TODO: add argument description\r
400 @param SectorCount TODO: add argument description\r
401 @param SectorNumber TODO: add argument description\r
402 @param CylinderLsb TODO: add argument description\r
403 @param CylinderMsb TODO: add argument description\r
878ddf1f 404\r
405 TODO: add return values\r
406\r
ed72955c 407**/\r
878ddf1f 408EFI_STATUS\r
409AtaPioDataIn (\r
410 IN IDE_BLK_IO_DEV *IdeDev,\r
411 IN VOID *Buffer,\r
412 IN UINT32 ByteCount,\r
413 IN UINT8 AtaCommand,\r
414 IN UINT8 Head,\r
415 IN UINT8 SectorCount,\r
416 IN UINT8 SectorNumber,\r
417 IN UINT8 CylinderLsb,\r
418 IN UINT8 CylinderMsb\r
419 )\r
ed72955c 420;\r
878ddf1f 421\r
ed72955c 422/**\r
878ddf1f 423 TODO: Add function description\r
424\r
ed72955c 425 @param IdeDev TODO: add argument description\r
426 @param Buffer TODO: add argument description\r
427 @param ByteCount TODO: add argument description\r
428 @param AtaCommand TODO: add argument description\r
429 @param Head TODO: add argument description\r
430 @param SectorCount TODO: add argument description\r
431 @param SectorNumber TODO: add argument description\r
432 @param CylinderLsb TODO: add argument description\r
433 @param CylinderMsb TODO: add argument description\r
878ddf1f 434\r
435 TODO: add return values\r
436\r
ed72955c 437**/\r
878ddf1f 438EFI_STATUS\r
439AtaPioDataOut (\r
440 IN IDE_BLK_IO_DEV *IdeDev,\r
441 IN VOID *Buffer,\r
442 IN UINT32 ByteCount,\r
443 IN UINT8 AtaCommand,\r
444 IN UINT8 Head,\r
445 IN UINT8 SectorCount,\r
446 IN UINT8 SectorNumber,\r
447 IN UINT8 CylinderLsb,\r
448 IN UINT8 CylinderMsb\r
449 )\r
ed72955c 450;\r
878ddf1f 451\r
ed72955c 452/**\r
878ddf1f 453 TODO: Add function description\r
454\r
ed72955c 455 @param IdeDev TODO: add argument description\r
878ddf1f 456\r
457 TODO: add return values\r
458\r
ed72955c 459**/\r
878ddf1f 460EFI_STATUS\r
461CheckErrorStatus (\r
462 IN IDE_BLK_IO_DEV *IdeDev\r
463 )\r
ed72955c 464;\r
878ddf1f 465\r
ed72955c 466/**\r
878ddf1f 467 TODO: Add function description\r
468\r
ed72955c 469 @param IdeDev TODO: add argument description\r
470 @param DataBuffer TODO: add argument description\r
471 @param Lba TODO: add argument description\r
472 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 473\r
474 TODO: add return values\r
475\r
ed72955c 476**/\r
878ddf1f 477EFI_STATUS\r
478AtaReadSectors (\r
479 IN IDE_BLK_IO_DEV *IdeDev,\r
480 IN VOID *DataBuffer,\r
481 IN EFI_LBA Lba,\r
482 IN UINTN NumberOfBlocks\r
483 )\r
ed72955c 484;\r
878ddf1f 485\r
ed72955c 486/**\r
878ddf1f 487 TODO: Add function description\r
488\r
ed72955c 489 @param IdeDev TODO: add argument description\r
490 @param BufferData TODO: add argument description\r
491 @param Lba TODO: add argument description\r
492 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 493\r
494 TODO: add return values\r
495\r
ed72955c 496**/\r
878ddf1f 497EFI_STATUS\r
498AtaWriteSectors (\r
499 IN IDE_BLK_IO_DEV *IdeDev,\r
500 IN VOID *BufferData,\r
501 IN EFI_LBA Lba,\r
502 IN UINTN NumberOfBlocks\r
503 )\r
ed72955c 504;\r
878ddf1f 505\r
ed72955c 506/**\r
878ddf1f 507 TODO: Add function description\r
508\r
ed72955c 509 @param IdeDev TODO: add argument description\r
878ddf1f 510\r
511 TODO: add return values\r
512\r
ed72955c 513**/\r
878ddf1f 514EFI_STATUS\r
515AtaSoftReset (\r
516 IN IDE_BLK_IO_DEV *IdeDev\r
517 )\r
ed72955c 518;\r
878ddf1f 519\r
ed72955c 520/**\r
878ddf1f 521 TODO: Add function description\r
522\r
ed72955c 523 @param IdeBlkIoDevice TODO: add argument description\r
524 @param MediaId TODO: add argument description\r
525 @param LBA TODO: add argument description\r
526 @param BufferSize TODO: add argument description\r
527 @param Buffer TODO: add argument description\r
878ddf1f 528\r
529 TODO: add return values\r
530\r
ed72955c 531**/\r
878ddf1f 532EFI_STATUS\r
533AtaBlkIoReadBlocks (\r
534 IN IDE_BLK_IO_DEV *IdeBlkIoDevice,\r
535 IN UINT32 MediaId,\r
536 IN EFI_LBA LBA,\r
537 IN UINTN BufferSize,\r
538 OUT VOID *Buffer\r
539 )\r
ed72955c 540;\r
878ddf1f 541\r
ed72955c 542/**\r
878ddf1f 543 TODO: Add function description\r
544\r
ed72955c 545 @param IdeBlkIoDevice TODO: add argument description\r
546 @param MediaId TODO: add argument description\r
547 @param LBA TODO: add argument description\r
548 @param BufferSize TODO: add argument description\r
549 @param Buffer TODO: add argument description\r
878ddf1f 550\r
551 TODO: add return values\r
552\r
ed72955c 553**/\r
878ddf1f 554EFI_STATUS\r
555AtaBlkIoWriteBlocks (\r
556 IN IDE_BLK_IO_DEV *IdeBlkIoDevice,\r
557 IN UINT32 MediaId,\r
558 IN EFI_LBA LBA,\r
559 IN UINTN BufferSize,\r
560 OUT VOID *Buffer\r
561 )\r
ed72955c 562;\r
878ddf1f 563\r
ed72955c 564//\r
565// ATAPI device functions' prototype\r
566//\r
567/**\r
878ddf1f 568 TODO: Add function description\r
569\r
ed72955c 570 @param IdeDev TODO: add argument description\r
878ddf1f 571\r
572 TODO: add return values\r
573\r
ed72955c 574**/\r
878ddf1f 575EFI_STATUS\r
576ATAPIIdentify (\r
577 IN IDE_BLK_IO_DEV *IdeDev\r
578 )\r
ed72955c 579;\r
878ddf1f 580\r
ed72955c 581/**\r
878ddf1f 582 TODO: Add function description\r
583\r
ed72955c 584 @param IdeDev TODO: add argument description\r
878ddf1f 585\r
586 TODO: add return values\r
587\r
ed72955c 588**/\r
878ddf1f 589EFI_STATUS\r
590AtapiInquiry (\r
591 IN IDE_BLK_IO_DEV *IdeDev\r
592 )\r
ed72955c 593;\r
878ddf1f 594\r
ed72955c 595/**\r
878ddf1f 596 TODO: Add function description\r
597\r
ed72955c 598 @param IdeDev TODO: add argument description\r
599 @param Packet TODO: add argument description\r
600 @param Buffer TODO: add argument description\r
601 @param ByteCount TODO: add argument description\r
602 @param TimeOut TODO: add argument description\r
878ddf1f 603\r
604 TODO: add return values\r
605\r
ed72955c 606**/\r
878ddf1f 607EFI_STATUS\r
608AtapiPacketCommandIn (\r
609 IN IDE_BLK_IO_DEV *IdeDev,\r
610 IN ATAPI_PACKET_COMMAND *Packet,\r
611 IN UINT16 *Buffer,\r
612 IN UINT32 ByteCount,\r
613 IN UINTN TimeOut\r
614 )\r
ed72955c 615;\r
878ddf1f 616\r
ed72955c 617/**\r
878ddf1f 618 TODO: Add function description\r
619\r
ed72955c 620 @param IdeDev TODO: add argument description\r
621 @param Packet TODO: add argument description\r
622 @param Buffer TODO: add argument description\r
623 @param ByteCount TODO: add argument description\r
624 @param TimeOut TODO: add argument description\r
878ddf1f 625\r
626 TODO: add return values\r
627\r
ed72955c 628**/\r
878ddf1f 629EFI_STATUS\r
630AtapiPacketCommandOut (\r
631 IN IDE_BLK_IO_DEV *IdeDev,\r
632 IN ATAPI_PACKET_COMMAND *Packet,\r
633 IN UINT16 *Buffer,\r
634 IN UINT32 ByteCount,\r
635 IN UINTN TimeOut\r
636 )\r
ed72955c 637;\r
878ddf1f 638\r
ed72955c 639/**\r
878ddf1f 640 TODO: Add function description\r
641\r
ed72955c 642 @param IdeDev TODO: add argument description\r
643 @param Buffer TODO: add argument description\r
644 @param ByteCount TODO: add argument description\r
645 @param Read TODO: add argument description\r
646 @param TimeOut TODO: add argument description\r
878ddf1f 647\r
648 TODO: add return values\r
649\r
ed72955c 650**/\r
878ddf1f 651EFI_STATUS\r
652PioReadWriteData (\r
653 IN IDE_BLK_IO_DEV *IdeDev,\r
654 IN UINT16 *Buffer,\r
655 IN UINT32 ByteCount,\r
656 IN BOOLEAN Read,\r
657 IN UINTN TimeOut\r
658 )\r
ed72955c 659;\r
878ddf1f 660\r
ed72955c 661/**\r
878ddf1f 662 TODO: Add function description\r
663\r
ed72955c 664 @param IdeDev TODO: add argument description\r
878ddf1f 665\r
666 TODO: add return values\r
667\r
ed72955c 668**/\r
878ddf1f 669EFI_STATUS\r
670AtapiTestUnitReady (\r
671 IN IDE_BLK_IO_DEV *IdeDev\r
672 )\r
ed72955c 673;\r
878ddf1f 674\r
ed72955c 675/**\r
878ddf1f 676 TODO: Add function description\r
677\r
ed72955c 678 @param IdeDev TODO: add argument description\r
679 @param SenseCounts TODO: add argument description\r
878ddf1f 680\r
681 TODO: add return values\r
682\r
ed72955c 683**/\r
878ddf1f 684EFI_STATUS\r
685AtapiRequestSense (\r
686 IN IDE_BLK_IO_DEV *IdeDev,\r
687 OUT UINTN *SenseCounts\r
688 )\r
ed72955c 689;\r
878ddf1f 690\r
ed72955c 691/**\r
878ddf1f 692 TODO: Add function description\r
693\r
ed72955c 694 @param IdeDev TODO: add argument description\r
878ddf1f 695\r
696 TODO: add return values\r
697\r
ed72955c 698**/\r
878ddf1f 699EFI_STATUS\r
700AtapiReadCapacity (\r
701 IN IDE_BLK_IO_DEV *IdeDev\r
702 )\r
ed72955c 703;\r
878ddf1f 704\r
ed72955c 705/**\r
878ddf1f 706 TODO: Add function description\r
707\r
ed72955c 708 @param IdeDev TODO: add argument description\r
709 @param MediaChange TODO: add argument description\r
878ddf1f 710\r
711 TODO: add return values\r
712\r
ed72955c 713**/\r
878ddf1f 714EFI_STATUS\r
715AtapiDetectMedia (\r
716 IN IDE_BLK_IO_DEV *IdeDev,\r
717 OUT BOOLEAN *MediaChange\r
718 )\r
ed72955c 719;\r
878ddf1f 720\r
ed72955c 721/**\r
878ddf1f 722 TODO: Add function description\r
723\r
ed72955c 724 @param IdeDev TODO: add argument description\r
725 @param Buffer TODO: add argument description\r
726 @param Lba TODO: add argument description\r
727 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 728\r
729 TODO: add return values\r
730\r
ed72955c 731**/\r
878ddf1f 732EFI_STATUS\r
733AtapiReadSectors (\r
734 IN IDE_BLK_IO_DEV *IdeDev,\r
735 IN VOID *Buffer,\r
736 IN EFI_LBA Lba,\r
737 IN UINTN NumberOfBlocks\r
738 )\r
ed72955c 739;\r
878ddf1f 740\r
ed72955c 741/**\r
878ddf1f 742 TODO: Add function description\r
743\r
ed72955c 744 @param IdeDev TODO: add argument description\r
745 @param Buffer TODO: add argument description\r
746 @param Lba TODO: add argument description\r
747 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 748\r
749 TODO: add return values\r
750\r
ed72955c 751**/\r
878ddf1f 752EFI_STATUS\r
753AtapiWriteSectors (\r
754 IN IDE_BLK_IO_DEV *IdeDev,\r
755 IN VOID *Buffer,\r
756 IN EFI_LBA Lba,\r
757 IN UINTN NumberOfBlocks\r
758 )\r
ed72955c 759;\r
878ddf1f 760\r
ed72955c 761/**\r
878ddf1f 762 TODO: Add function description\r
763\r
ed72955c 764 @param IdeDev TODO: add argument description\r
878ddf1f 765\r
766 TODO: add return values\r
767\r
ed72955c 768**/\r
878ddf1f 769EFI_STATUS\r
770AtapiSoftReset (\r
771 IN IDE_BLK_IO_DEV *IdeDev\r
772 )\r
ed72955c 773;\r
878ddf1f 774\r
ed72955c 775/**\r
878ddf1f 776 TODO: Add function description\r
777\r
ed72955c 778 @param IdeBlkIoDevice TODO: add argument description\r
779 @param MediaId TODO: add argument description\r
780 @param LBA TODO: add argument description\r
781 @param BufferSize TODO: add argument description\r
782 @param Buffer TODO: add argument description\r
878ddf1f 783\r
784 TODO: add return values\r
785\r
ed72955c 786**/\r
878ddf1f 787EFI_STATUS\r
788AtapiBlkIoReadBlocks (\r
789 IN IDE_BLK_IO_DEV *IdeBlkIoDevice,\r
790 IN UINT32 MediaId,\r
791 IN EFI_LBA LBA,\r
792 IN UINTN BufferSize,\r
793 OUT VOID *Buffer\r
794 )\r
ed72955c 795;\r
878ddf1f 796\r
ed72955c 797/**\r
878ddf1f 798 TODO: Add function description\r
799\r
ed72955c 800 @param IdeBlkIoDevice TODO: add argument description\r
801 @param MediaId TODO: add argument description\r
802 @param LBA TODO: add argument description\r
803 @param BufferSize TODO: add argument description\r
804 @param Buffer TODO: add argument description\r
878ddf1f 805\r
806 TODO: add return values\r
807\r
ed72955c 808**/\r
878ddf1f 809EFI_STATUS\r
810AtapiBlkIoWriteBlocks (\r
811 IN IDE_BLK_IO_DEV *IdeBlkIoDevice,\r
812 IN UINT32 MediaId,\r
813 IN EFI_LBA LBA,\r
814 IN UINTN BufferSize,\r
815 OUT VOID *Buffer\r
816 )\r
ed72955c 817;\r
878ddf1f 818\r
ed72955c 819/**\r
878ddf1f 820 TODO: Add function description\r
821\r
ed72955c 822 @param SenseData TODO: add argument description\r
823 @param SenseCounts TODO: add argument description\r
878ddf1f 824\r
825 TODO: add return values\r
826\r
ed72955c 827**/\r
878ddf1f 828BOOLEAN\r
829IsNoMedia (\r
830 IN REQUEST_SENSE_DATA *SenseData,\r
831 IN UINTN SenseCounts\r
832 )\r
ed72955c 833;\r
878ddf1f 834\r
ed72955c 835/**\r
878ddf1f 836 TODO: Add function description\r
837\r
ed72955c 838 @param SenseData TODO: add argument description\r
839 @param SenseCounts TODO: add argument description\r
878ddf1f 840\r
841 TODO: add return values\r
842\r
ed72955c 843**/\r
878ddf1f 844BOOLEAN\r
845IsMediaError (\r
846 IN REQUEST_SENSE_DATA *SenseData,\r
847 IN UINTN SenseCounts\r
848 )\r
ed72955c 849;\r
878ddf1f 850\r
ed72955c 851/**\r
878ddf1f 852 TODO: Add function description\r
853\r
ed72955c 854 @param SenseData TODO: add argument description\r
855 @param SenseCounts TODO: add argument description\r
878ddf1f 856\r
857 TODO: add return values\r
858\r
ed72955c 859**/\r
878ddf1f 860BOOLEAN\r
861IsMediaChange (\r
862 IN REQUEST_SENSE_DATA *SenseData,\r
863 IN UINTN SenseCounts\r
864 )\r
ed72955c 865;\r
878ddf1f 866\r
ed72955c 867/**\r
878ddf1f 868 TODO: Add function description\r
869\r
ed72955c 870 @param SenseData TODO: add argument description\r
871 @param SenseCounts TODO: add argument description\r
872 @param NeedRetry TODO: add argument description\r
878ddf1f 873\r
874 TODO: add return values\r
875\r
ed72955c 876**/\r
878ddf1f 877BOOLEAN\r
878IsDriveReady (\r
879 IN REQUEST_SENSE_DATA *SenseData,\r
880 IN UINTN SenseCounts,\r
881 OUT BOOLEAN *NeedRetry\r
882 )\r
ed72955c 883;\r
878ddf1f 884\r
ed72955c 885/**\r
878ddf1f 886 TODO: Add function description\r
887\r
ed72955c 888 @param SenseData TODO: add argument description\r
889 @param SenseCounts TODO: add argument description\r
878ddf1f 890\r
891 TODO: add return values\r
892\r
ed72955c 893**/\r
878ddf1f 894BOOLEAN\r
895HaveSenseKey (\r
896 IN REQUEST_SENSE_DATA *SenseData,\r
897 IN UINTN SenseCounts\r
898 )\r
ed72955c 899;\r
878ddf1f 900\r
ed72955c 901/**\r
878ddf1f 902 TODO: Add function description\r
903\r
ed72955c 904 @param IdeDev TODO: add argument description\r
905 @param WriteProtected TODO: add argument description\r
878ddf1f 906\r
907 TODO: add return values\r
908\r
ed72955c 909**/\r
878ddf1f 910EFI_STATUS\r
911IsLS120orZipWriteProtected (\r
912 IN IDE_BLK_IO_DEV *IdeDev,\r
913 OUT BOOLEAN *WriteProtected\r
914 )\r
ed72955c 915;\r
878ddf1f 916\r
ed72955c 917/**\r
878ddf1f 918 TODO: Add function description\r
919\r
ed72955c 920 @param IdeBlkIoDevice TODO: add argument description\r
878ddf1f 921\r
922 TODO: add return values\r
923\r
ed72955c 924**/\r
878ddf1f 925VOID\r
926ReleaseIdeResources (\r
927 IN IDE_BLK_IO_DEV *IdeBlkIoDevice\r
928 )\r
ed72955c 929;\r
878ddf1f 930\r
ed72955c 931/**\r
878ddf1f 932 TODO: Add function description\r
933\r
ed72955c 934 @param IdeDev TODO: add argument description\r
935 @param TransferMode TODO: add argument description\r
878ddf1f 936\r
937 TODO: add return values\r
938\r
ed72955c 939**/\r
878ddf1f 940EFI_STATUS\r
941SetDeviceTransferMode (\r
942 IN IDE_BLK_IO_DEV *IdeDev,\r
943 IN ATA_TRANSFER_MODE *TransferMode\r
944 )\r
ed72955c 945;\r
878ddf1f 946\r
ed72955c 947/**\r
878ddf1f 948 TODO: Add function description\r
949\r
ed72955c 950 @param IdeDev TODO: add argument description\r
951 @param NativeMaxAddress TODO: add argument description\r
878ddf1f 952\r
953 TODO: add return values\r
954\r
ed72955c 955**/\r
878ddf1f 956EFI_STATUS\r
957ReadNativeMaxAddress (\r
958 IN IDE_BLK_IO_DEV *IdeDev,\r
959 OUT EFI_LBA *NativeMaxAddress\r
960 )\r
ed72955c 961;\r
878ddf1f 962\r
ed72955c 963/**\r
878ddf1f 964 TODO: Add function description\r
965\r
ed72955c 966 @param IdeDev TODO: add argument description\r
967 @param MaxAddress TODO: add argument description\r
968 @param bVolatile TODO: add argument description\r
878ddf1f 969\r
970 TODO: add return values\r
971\r
ed72955c 972**/\r
878ddf1f 973EFI_STATUS\r
974SetMaxAddress (\r
975 IN IDE_BLK_IO_DEV *IdeDev,\r
976 IN EFI_LBA MaxAddress,\r
977 IN BOOLEAN bVolatile\r
978 )\r
ed72955c 979;\r
878ddf1f 980\r
ed72955c 981/**\r
878ddf1f 982 TODO: Add function description\r
983\r
ed72955c 984 @param IdeDev TODO: add argument description\r
985 @param AtaCommand TODO: add argument description\r
986 @param Device TODO: add argument description\r
987 @param Feature TODO: add argument description\r
988 @param SectorCount TODO: add argument description\r
989 @param LbaLow TODO: add argument description\r
990 @param LbaMiddle TODO: add argument description\r
991 @param LbaHigh TODO: add argument description\r
878ddf1f 992\r
993 TODO: add return values\r
994\r
ed72955c 995**/\r
878ddf1f 996EFI_STATUS\r
997AtaNonDataCommandIn (\r
998 IN IDE_BLK_IO_DEV *IdeDev,\r
999 IN UINT8 AtaCommand,\r
1000 IN UINT8 Device,\r
1001 IN UINT8 Feature,\r
1002 IN UINT8 SectorCount,\r
1003 IN UINT8 LbaLow,\r
1004 IN UINT8 LbaMiddle,\r
1005 IN UINT8 LbaHigh\r
1006 )\r
ed72955c 1007;\r
878ddf1f 1008\r
ed72955c 1009/**\r
878ddf1f 1010 TODO: Add function description\r
1011\r
ed72955c 1012 @param IdeDev TODO: add argument description\r
1013 @param AtaCommand TODO: add argument description\r
1014 @param Device TODO: add argument description\r
1015 @param Feature TODO: add argument description\r
1016 @param SectorCount TODO: add argument description\r
1017 @param LbaAddress TODO: add argument description\r
878ddf1f 1018\r
1019 TODO: add return values\r
1020\r
ed72955c 1021**/\r
878ddf1f 1022EFI_STATUS\r
1023AtaNonDataCommandInExt (\r
1024 IN IDE_BLK_IO_DEV *IdeDev,\r
1025 IN UINT8 AtaCommand,\r
1026 IN UINT8 Device,\r
1027 IN UINT16 Feature,\r
1028 IN UINT16 SectorCount,\r
1029 IN EFI_LBA LbaAddress\r
1030 )\r
ed72955c 1031;\r
878ddf1f 1032\r
ed72955c 1033/**\r
878ddf1f 1034 TODO: Add function description\r
1035\r
ed72955c 1036 @param IdeDev TODO: add argument description\r
1037 @param DataBuffer TODO: add argument description\r
1038 @param StartLba TODO: add argument description\r
1039 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 1040\r
1041 TODO: add return values\r
1042\r
ed72955c 1043**/\r
878ddf1f 1044EFI_STATUS\r
1045AtaReadSectorsExt (\r
1046 IN IDE_BLK_IO_DEV *IdeDev,\r
1047 IN VOID *DataBuffer,\r
1048 IN EFI_LBA StartLba,\r
1049 IN UINTN NumberOfBlocks\r
1050 )\r
ed72955c 1051;\r
878ddf1f 1052\r
ed72955c 1053/**\r
878ddf1f 1054 TODO: Add function description\r
1055\r
ed72955c 1056 @param IdeDev TODO: add argument description\r
1057 @param DataBuffer TODO: add argument description\r
1058 @param StartLba TODO: add argument description\r
1059 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 1060\r
1061 TODO: add return values\r
1062\r
ed72955c 1063**/\r
878ddf1f 1064EFI_STATUS\r
1065AtaWriteSectorsExt (\r
1066 IN IDE_BLK_IO_DEV *IdeDev,\r
1067 IN VOID *DataBuffer,\r
1068 IN EFI_LBA StartLba,\r
1069 IN UINTN NumberOfBlocks\r
1070 )\r
ed72955c 1071;\r
878ddf1f 1072\r
ed72955c 1073/**\r
878ddf1f 1074 TODO: Add function description\r
1075\r
ed72955c 1076 @param IdeDev TODO: add argument description\r
1077 @param DataBuffer TODO: add argument description\r
1078 @param StartLba TODO: add argument description\r
1079 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 1080\r
1081 TODO: add return values\r
1082\r
ed72955c 1083**/\r
878ddf1f 1084EFI_STATUS\r
1085AtaUdmaReadExt (\r
1086 IN IDE_BLK_IO_DEV *IdeDev,\r
1087 IN VOID *DataBuffer,\r
1088 IN EFI_LBA StartLba,\r
1089 IN UINTN NumberOfBlocks\r
1090 )\r
ed72955c 1091;\r
878ddf1f 1092\r
ed72955c 1093/**\r
878ddf1f 1094 TODO: Add function description\r
1095\r
ed72955c 1096 @param IdeDev TODO: add argument description\r
1097 @param DataBuffer TODO: add argument description\r
1098 @param StartLba TODO: add argument description\r
1099 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 1100\r
1101 TODO: add return values\r
1102\r
ed72955c 1103**/\r
878ddf1f 1104EFI_STATUS\r
1105AtaUdmaRead (\r
1106 IN IDE_BLK_IO_DEV *IdeDev,\r
1107 IN VOID *DataBuffer,\r
1108 IN EFI_LBA StartLba,\r
1109 IN UINTN NumberOfBlocks\r
1110 )\r
ed72955c 1111;\r
878ddf1f 1112\r
ed72955c 1113/**\r
878ddf1f 1114 TODO: Add function description\r
1115\r
ed72955c 1116 @param IdeDev TODO: add argument description\r
1117 @param DataBuffer TODO: add argument description\r
1118 @param StartLba TODO: add argument description\r
1119 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 1120\r
1121 TODO: add return values\r
1122\r
ed72955c 1123**/\r
878ddf1f 1124EFI_STATUS\r
1125AtaUdmaWriteExt (\r
1126 IN IDE_BLK_IO_DEV *IdeDev,\r
1127 IN VOID *DataBuffer,\r
1128 IN EFI_LBA StartLba,\r
1129 IN UINTN NumberOfBlocks\r
1130 )\r
ed72955c 1131;\r
878ddf1f 1132\r
ed72955c 1133/**\r
878ddf1f 1134 TODO: Add function description\r
1135\r
ed72955c 1136 @param IdeDev TODO: add argument description\r
1137 @param DataBuffer TODO: add argument description\r
1138 @param StartLba TODO: add argument description\r
1139 @param NumberOfBlocks TODO: add argument description\r
878ddf1f 1140\r
1141 TODO: add return values\r
1142\r
ed72955c 1143**/\r
878ddf1f 1144EFI_STATUS\r
1145AtaUdmaWrite (\r
1146 IN IDE_BLK_IO_DEV *IdeDev,\r
1147 IN VOID *DataBuffer,\r
1148 IN EFI_LBA StartLba,\r
1149 IN UINTN NumberOfBlocks\r
1150 )\r
ed72955c 1151;\r
878ddf1f 1152\r
ed72955c 1153/**\r
878ddf1f 1154 TODO: Add function description\r
1155\r
ed72955c 1156 @param IdeDev TODO: add argument description\r
1157 @param AtaCommand TODO: add argument description\r
1158 @param Device TODO: add argument description\r
1159 @param Feature TODO: add argument description\r
1160 @param SectorCount TODO: add argument description\r
1161 @param LbaAddress TODO: add argument description\r
878ddf1f 1162\r
1163 TODO: add return values\r
1164\r
ed72955c 1165**/\r
878ddf1f 1166EFI_STATUS\r
1167AtaCommandIssueExt (\r
1168 IN IDE_BLK_IO_DEV *IdeDev,\r
1169 IN UINT8 AtaCommand,\r
1170 IN UINT8 Device,\r
1171 IN UINT16 Feature,\r
1172 IN UINT16 SectorCount,\r
1173 IN EFI_LBA LbaAddress\r
1174 )\r
ed72955c 1175;\r
878ddf1f 1176\r
ed72955c 1177/**\r
878ddf1f 1178 TODO: Add function description\r
1179\r
ed72955c 1180 @param IdeDev TODO: add argument description\r
1181 @param AtaCommand TODO: add argument description\r
1182 @param Device TODO: add argument description\r
1183 @param Feature TODO: add argument description\r
1184 @param SectorCount TODO: add argument description\r
1185 @param LbaAddress TODO: add argument description\r
878ddf1f 1186\r
1187 TODO: add return values\r
1188\r
ed72955c 1189**/\r
878ddf1f 1190EFI_STATUS\r
1191AtaCommandIssue (\r
1192 IN IDE_BLK_IO_DEV *IdeDev,\r
1193 IN UINT8 AtaCommand,\r
1194 IN UINT8 Device,\r
1195 IN UINT16 Feature,\r
1196 IN UINT16 SectorCount,\r
1197 IN EFI_LBA LbaAddress\r
1198 )\r
ed72955c 1199;\r
878ddf1f 1200\r
ed72955c 1201/**\r
878ddf1f 1202 TODO: Add function description\r
1203\r
ed72955c 1204 @param IdeDev TODO: add argument description\r
878ddf1f 1205\r
1206 TODO: add return values\r
1207\r
ed72955c 1208**/\r
878ddf1f 1209EFI_STATUS\r
1210AtaAtapi6Identify (\r
1211 IN IDE_BLK_IO_DEV *IdeDev\r
1212 )\r
ed72955c 1213;\r
878ddf1f 1214\r
878ddf1f 1215\r
ed72955c 1216/**\r
878ddf1f 1217 TODO: Add function description\r
1218\r
ed72955c 1219 @param IdeDev TODO: add argument description\r
878ddf1f 1220\r
1221 TODO: add return values\r
1222\r
ed72955c 1223**/\r
878ddf1f 1224VOID\r
1225AtaSMARTSupport (\r
1226 IN IDE_BLK_IO_DEV *IdeDev\r
1227 )\r
ed72955c 1228;\r
878ddf1f 1229\r
ed72955c 1230/**\r
878ddf1f 1231 TODO: Add function description\r
1232\r
ed72955c 1233 @param IdeDev TODO: add argument description\r
1234 @param Buffer TODO: add argument description\r
1235 @param ByteCount TODO: add argument description\r
1236 @param AtaCommand TODO: add argument description\r
1237 @param StartLba TODO: add argument description\r
1238 @param SectorCount TODO: add argument description\r
878ddf1f 1239\r
1240 TODO: add return values\r
1241\r
ed72955c 1242**/\r
878ddf1f 1243EFI_STATUS\r
1244AtaPioDataInExt (\r
1245 IN IDE_BLK_IO_DEV *IdeDev,\r
1246 IN OUT VOID *Buffer,\r
1247 IN UINT32 ByteCount,\r
1248 IN UINT8 AtaCommand,\r
1249 IN EFI_LBA StartLba,\r
1250 IN UINT16 SectorCount\r
1251 )\r
ed72955c 1252;\r
878ddf1f 1253\r
ed72955c 1254/**\r
878ddf1f 1255 TODO: Add function description\r
1256\r
ed72955c 1257 @param IdeDev TODO: add argument description\r
1258 @param Buffer TODO: add argument description\r
1259 @param ByteCount TODO: add argument description\r
1260 @param AtaCommand TODO: add argument description\r
1261 @param StartLba TODO: add argument description\r
1262 @param SectorCount TODO: add argument description\r
878ddf1f 1263\r
1264 TODO: add return values\r
1265\r
ed72955c 1266**/\r
878ddf1f 1267EFI_STATUS\r
1268AtaPioDataOutExt (\r
1269 IN IDE_BLK_IO_DEV *IdeDev,\r
1270 IN VOID *Buffer,\r
1271 IN UINT32 ByteCount,\r
1272 IN UINT8 AtaCommand,\r
1273 IN EFI_LBA StartLba,\r
1274 IN UINT16 SectorCount\r
1275 )\r
ed72955c 1276;\r
878ddf1f 1277\r
ed72955c 1278/**\r
878ddf1f 1279 TODO: Add function description\r
1280\r
ed72955c 1281 @param IdeDev TODO: add argument description\r
1282 @param DriveParameters TODO: add argument description\r
878ddf1f 1283\r
1284 TODO: add return values\r
1285\r
ed72955c 1286**/\r
878ddf1f 1287EFI_STATUS\r
1288SetDriveParameters (\r
1289 IN IDE_BLK_IO_DEV *IdeDev,\r
1290 IN ATA_DRIVE_PARMS *DriveParameters\r
1291 )\r
ed72955c 1292;\r
878ddf1f 1293\r
ed72955c 1294/**\r
878ddf1f 1295 TODO: Add function description\r
1296\r
ed72955c 1297 @param IdeDev TODO: add argument description\r
878ddf1f 1298\r
1299 TODO: add return values\r
1300\r
ed72955c 1301**/\r
878ddf1f 1302EFI_STATUS\r
1303EnableInterrupt (\r
1304 IN IDE_BLK_IO_DEV *IdeDev\r
1305 )\r
878ddf1f 1306;\r
1307\r
1308#endif\r