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