rename to meet naming rules
[people/mcb30/edk2.git] / edk2 / IntelFrameworkModulePkg / Bus / Pci / IdeBusDxe / Ide.h
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
37 EFI_STATUS\r
38 DeRegisterIdeDevice (\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
56 EFI_STATUS\r
57 EnableIdeDevice (\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
74 UINT8\r
75 IDEReadPortB (\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
92 VOID\r
93 IDEReadPortWMultiple (\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
111 VOID\r
112 IDEWritePortB (\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
129 VOID\r
130 IDEWritePortW (\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
148 VOID\r
149 IDEWritePortWMultiple (\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
166 EFI_STATUS\r
167 GetIdeRegistersBaseAddr (\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
181 EFI_STATUS\r
182 ReassignIdeResources (\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
195 EFI_STATUS\r
196 DiscoverIdeDevice (\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
208 EFI_STATUS\r
209 InitializeIDEChannelData (\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
222 EFI_STATUS\r
223 DetectIDEController (\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
237 EFI_STATUS\r
238 DRQClear (\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
253 EFI_STATUS\r
254 DRQClear2 (\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
269 EFI_STATUS\r
270 DRQReady (\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
285 EFI_STATUS\r
286 DRQReady2 (\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
301 EFI_STATUS\r
302 WaitForBSYClear (\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
317 EFI_STATUS\r
318 WaitForBSYClear2 (\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
333 EFI_STATUS\r
334 DRDYReady (\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
349 EFI_STATUS\r
350 DRDYReady2 (\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
366 VOID\r
367 SwapStringChars (\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
385 EFI_STATUS\r
386 ATAIdentify (\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
399 VOID\r
400 PrintAtaModuleName (\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
421 EFI_STATUS\r
422 AtaPioDataIn (\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
451 EFI_STATUS\r
452 AtaPioDataOut (\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
473 EFI_STATUS\r
474 CheckErrorStatus (\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
490 EFI_STATUS\r
491 AtaReadSectors (\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
510 EFI_STATUS\r
511 AtaWriteSectors (\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
527 EFI_STATUS\r
528 AtaSoftReset (\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
545 EFI_STATUS\r
546 AtaBlkIoReadBlocks (\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
567 EFI_STATUS\r
568 AtaBlkIoWriteBlocks (\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
588 EFI_STATUS\r
589 ATAPIIdentify (\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
602 EFI_STATUS\r
603 AtapiInquiry (\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
620 EFI_STATUS\r
621 AtapiPacketCommandIn (\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
642 EFI_STATUS\r
643 AtapiPacketCommandOut (\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
664 EFI_STATUS\r
665 PioReadWriteData (\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
683 EFI_STATUS\r
684 AtapiTestUnitReady (\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
699 EFI_STATUS\r
700 AtapiRequestSense (\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
715 EFI_STATUS\r
716 AtapiReadCapacity (\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
731 EFI_STATUS\r
732 AtapiDetectMedia (\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
749 EFI_STATUS\r
750 AtapiReadSectors (\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
769 EFI_STATUS\r
770 AtapiWriteSectors (\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
786 EFI_STATUS\r
787 AtapiSoftReset (\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
804 EFI_STATUS\r
805 AtapiBlkIoReadBlocks (\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
826 EFI_STATUS\r
827 AtapiBlkIoWriteBlocks (\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
846 EFI_STATUS\r
847 ParseSenseData (\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
862 EFI_STATUS\r
863 AtapiReadPendingData (\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
877 EFI_STATUS\r
878 IsLS120orZipWriteProtected (\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
892 VOID\r
893 ReleaseIdeResources (\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
907 EFI_STATUS\r
908 SetDeviceTransferMode (\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
923 EFI_STATUS\r
924 ReadNativeMaxAddress (\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
940 EFI_STATUS\r
941 SetMaxAddress (\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
963 EFI_STATUS\r
964 AtaNonDataCommandIn (\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
989 EFI_STATUS\r
990 AtaNonDataCommandInExt (\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
1011 EFI_STATUS\r
1012 AtaReadSectorsExt (\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
1031 EFI_STATUS\r
1032 AtaWriteSectorsExt (\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
1051 EFI_STATUS\r
1052 AtaUdmaReadExt (\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
1071 EFI_STATUS\r
1072 AtaUdmaRead (\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
1091 EFI_STATUS\r
1092 AtaUdmaWriteExt (\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
1125 EFI_STATUS\r
1126 DoAtaUdma (\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
1147 EFI_STATUS\r
1148 AtaUdmaWrite (\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
1169 EFI_STATUS\r
1170 AtaCommandIssueExt (\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
1193 EFI_STATUS\r
1194 AtaCommandIssue (\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
1212 EFI_STATUS\r
1213 AtaAtapi6Identify (\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
1227 VOID\r
1228 AtaSMARTSupport (\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
1246 EFI_STATUS\r
1247 AtaPioDataInExt (\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
1270 EFI_STATUS\r
1271 AtaPioDataOutExt (\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
1290 EFI_STATUS\r
1291 SetDriveParameters (\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
1305 EFI_STATUS\r
1306 EnableInterrupt (\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
1320 VOID\r
1321 EFIAPI\r
1322 ClearInterrupt (\r
1323   IN EFI_EVENT  Event,\r
1324   IN VOID       *Context\r
1325   )\r
1326 ;\r
1327 \r
1328 #endif\r