]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Bus/Pci/IdeBus/Dxe/ide.h
Add ReadMe.txt to specify that the EFI image FatBinPkg provides does not contain...
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / IdeBus / Dxe / ide.h
CommitLineData
ead42efc 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 - 2007 Intel Corporation. <BR>\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 Perform an ATA Udma operation (Read, ReadExt, Write, WriteExt).\r
1102 \r
1103 @param[in] *IdeDev\r
1104 pointer pointing to IDE_BLK_IO_DEV data structure, used\r
1105 to record all the information of the IDE device.\r
1106\r
1107 @param[in] *DataBuffer\r
1108 A pointer to the source buffer for the data.\r
1109\r
1110 @param[in] StartLba\r
1111 The starting logical block address to write to\r
1112 on the device media.\r
1113\r
1114 @param[in] NumberOfBlocks\r
1115 The number of transfer data blocks.\r
1116 \r
1117 @param[in] UdmaOp\r
1118 The perform operations could be AtaUdmaReadOp, AtaUdmaReadExOp,\r
1119 AtaUdmaWriteOp, AtaUdmaWriteExOp\r
1120\r
1121 @return The device status of UDMA operation. If the operation is\r
1122 successful, return EFI_SUCCESS.\r
1123\r
1124**/\r
1125EFI_STATUS\r
1126DoAtaUdma (\r
1127 IN IDE_BLK_IO_DEV *IdeDev,\r
1128 IN VOID *DataBuffer,\r
1129 IN EFI_LBA StartLba,\r
1130 IN UINTN NumberOfBlocks,\r
1131 IN ATA_UDMA_OPERATION UdmaOp\r
1132 )\r
1133;\r
1134\r
1135\r
1136/**\r
1137 TODO: Add function description\r
1138\r
1139 @param IdeDev TODO: add argument description\r
1140 @param DataBuffer TODO: add argument description\r
1141 @param StartLba TODO: add argument description\r
1142 @param NumberOfBlocks TODO: add argument description\r
1143\r
1144 TODO: add return values\r
1145\r
1146**/\r
1147EFI_STATUS\r
1148AtaUdmaWrite (\r
1149 IN IDE_BLK_IO_DEV *IdeDev,\r
1150 IN VOID *DataBuffer,\r
1151 IN EFI_LBA StartLba,\r
1152 IN UINTN NumberOfBlocks\r
1153 )\r
1154;\r
1155\r
1156/**\r
1157 TODO: Add function description\r
1158\r
1159 @param IdeDev TODO: add argument description\r
1160 @param AtaCommand TODO: add argument description\r
1161 @param Device TODO: add argument description\r
1162 @param Feature TODO: add argument description\r
1163 @param SectorCount TODO: add argument description\r
1164 @param LbaAddress TODO: add argument description\r
1165\r
1166 TODO: add return values\r
1167\r
1168**/\r
1169EFI_STATUS\r
1170AtaCommandIssueExt (\r
1171 IN IDE_BLK_IO_DEV *IdeDev,\r
1172 IN UINT8 AtaCommand,\r
1173 IN UINT8 Device,\r
1174 IN UINT16 Feature,\r
1175 IN UINT16 SectorCount,\r
1176 IN EFI_LBA LbaAddress\r
1177 )\r
1178;\r
1179\r
1180/**\r
1181 TODO: Add function description\r
1182\r
1183 @param IdeDev TODO: add argument description\r
1184 @param AtaCommand TODO: add argument description\r
1185 @param Device TODO: add argument description\r
1186 @param Feature TODO: add argument description\r
1187 @param SectorCount TODO: add argument description\r
1188 @param LbaAddress TODO: add argument description\r
1189\r
1190 TODO: add return values\r
1191\r
1192**/\r
1193EFI_STATUS\r
1194AtaCommandIssue (\r
1195 IN IDE_BLK_IO_DEV *IdeDev,\r
1196 IN UINT8 AtaCommand,\r
1197 IN UINT8 Device,\r
1198 IN UINT16 Feature,\r
1199 IN UINT16 SectorCount,\r
1200 IN EFI_LBA LbaAddress\r
1201 )\r
1202;\r
1203\r
1204/**\r
1205 TODO: Add function description\r
1206\r
1207 @param IdeDev TODO: add argument description\r
1208\r
1209 TODO: add return values\r
1210\r
1211**/\r
1212EFI_STATUS\r
1213AtaAtapi6Identify (\r
1214 IN IDE_BLK_IO_DEV *IdeDev\r
1215 )\r
1216;\r
1217\r
1218\r
1219/**\r
1220 TODO: Add function description\r
1221\r
1222 @param IdeDev TODO: add argument description\r
1223\r
1224 TODO: add return values\r
1225\r
1226**/\r
1227VOID\r
1228AtaSMARTSupport (\r
1229 IN IDE_BLK_IO_DEV *IdeDev\r
1230 )\r
1231;\r
1232\r
1233/**\r
1234 TODO: Add function description\r
1235\r
1236 @param IdeDev TODO: add argument description\r
1237 @param Buffer TODO: add argument description\r
1238 @param ByteCount TODO: add argument description\r
1239 @param AtaCommand TODO: add argument description\r
1240 @param StartLba TODO: add argument description\r
1241 @param SectorCount TODO: add argument description\r
1242\r
1243 TODO: add return values\r
1244\r
1245**/\r
1246EFI_STATUS\r
1247AtaPioDataInExt (\r
1248 IN IDE_BLK_IO_DEV *IdeDev,\r
1249 IN OUT VOID *Buffer,\r
1250 IN UINT32 ByteCount,\r
1251 IN UINT8 AtaCommand,\r
1252 IN EFI_LBA StartLba,\r
1253 IN UINT16 SectorCount\r
1254 )\r
1255;\r
1256\r
1257/**\r
1258 TODO: Add function description\r
1259\r
1260 @param IdeDev TODO: add argument description\r
1261 @param Buffer TODO: add argument description\r
1262 @param ByteCount TODO: add argument description\r
1263 @param AtaCommand TODO: add argument description\r
1264 @param StartLba TODO: add argument description\r
1265 @param SectorCount TODO: add argument description\r
1266\r
1267 TODO: add return values\r
1268\r
1269**/\r
1270EFI_STATUS\r
1271AtaPioDataOutExt (\r
1272 IN IDE_BLK_IO_DEV *IdeDev,\r
1273 IN VOID *Buffer,\r
1274 IN UINT32 ByteCount,\r
1275 IN UINT8 AtaCommand,\r
1276 IN EFI_LBA StartLba,\r
1277 IN UINT16 SectorCount\r
1278 )\r
1279;\r
1280\r
1281/**\r
1282 TODO: Add function description\r
1283\r
1284 @param IdeDev TODO: add argument description\r
1285 @param DriveParameters TODO: add argument description\r
1286\r
1287 TODO: add return values\r
1288\r
1289**/\r
1290EFI_STATUS\r
1291SetDriveParameters (\r
1292 IN IDE_BLK_IO_DEV *IdeDev,\r
1293 IN ATA_DRIVE_PARMS *DriveParameters\r
1294 )\r
1295;\r
1296\r
1297/**\r
1298 TODO: Add function description\r
1299\r
1300 @param IdeDev TODO: add argument description\r
1301\r
1302 TODO: add return values\r
1303\r
1304**/\r
1305EFI_STATUS\r
1306EnableInterrupt (\r
1307 IN IDE_BLK_IO_DEV *IdeDev\r
1308 )\r
1309;\r
1310\r
1311/**\r
1312 Clear pending IDE interrupt before OS loader/kernel take control of the IDE device.\r
1313\r
1314 @param[in] Event Pointer to this event\r
1315 @param[in] Context Event hanlder private data\r
1316\r
1317 @retval EFI_SUCCESS - Interrupt cleared\r
1318\r
1319**/\r
1320VOID\r
1321EFIAPI\r
1322ClearInterrupt (\r
1323 IN EFI_EVENT Event,\r
1324 IN VOID *Context\r
1325 )\r
1326;\r
1327\r
1328#endif\r