git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2434 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			1329 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			1329 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Header file for IDE Bus Driver, containing the helper functions'
 | |
|   entire prototype.
 | |
| 
 | |
|   Copyright (c) 2006 - 2007 Intel Corporation. <BR>
 | |
|   All rights reserved. This program and the accompanying materials
 | |
|   are licensed and made available under the terms and conditions of the BSD License
 | |
|   which accompanies this distribution.  The full text of the license may be found at
 | |
|   http://opensource.org/licenses/bsd-license.php
 | |
| 
 | |
|   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
|   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
|   @par Revision Reference:
 | |
|   2002-6: Add Atapi6 enhancement, support >120GB hard disk, including
 | |
|   Add - IDEBlkIoReadBlocksExt() func definition
 | |
|   Add - IDEBlkIoWriteBlocksExt() func definition
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _IDE_H
 | |
| #define _IDE_H
 | |
| 
 | |
| //
 | |
| // Helper functions Prototype
 | |
| //
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  This TODO: add argument description
 | |
|   @param  Controller TODO: add argument description
 | |
|   @param  Handle TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DeRegisterIdeDevice (
 | |
|   IN  EFI_DRIVER_BINDING_PROTOCOL    *This,
 | |
|   IN  EFI_HANDLE                     Controller,
 | |
|   IN  EFI_HANDLE                     Handle
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  Controller TODO: add argument description
 | |
|   @param  PciIo TODO: add argument description
 | |
|   @param  ParentDevicePath TODO: add argument description
 | |
|   @param  RemainingDevicePath TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EnableIdeDevice (
 | |
|   IN EFI_HANDLE                          Controller,
 | |
|   IN EFI_PCI_IO_PROTOCOL                 *PciIo,
 | |
|   IN EFI_DEVICE_PATH_PROTOCOL            *ParentDevicePath,
 | |
|   IN EFI_DEVICE_PATH_PROTOCOL            *RemainingDevicePath
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  PciIo TODO: add argument description
 | |
|   @param  Port TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| UINT8
 | |
| IDEReadPortB (
 | |
|   IN  EFI_PCI_IO_PROTOCOL   *PciIo,
 | |
|   IN  UINT16                Port
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  PciIo TODO: add argument description
 | |
|   @param  Port TODO: add argument description
 | |
|   @param  Count TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| IDEReadPortWMultiple (
 | |
|   IN  EFI_PCI_IO_PROTOCOL   *PciIo,
 | |
|   IN  UINT16                Port,
 | |
|   IN  UINTN                 Count,
 | |
|   OUT  VOID                 *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  PciIo TODO: add argument description
 | |
|   @param  Port TODO: add argument description
 | |
|   @param  Data TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| IDEWritePortB (
 | |
|   IN  EFI_PCI_IO_PROTOCOL   *PciIo,
 | |
|   IN  UINT16                Port,
 | |
|   IN  UINT8                 Data
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  PciIo TODO: add argument description
 | |
|   @param  Port TODO: add argument description
 | |
|   @param  Data TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| IDEWritePortW (
 | |
|   IN  EFI_PCI_IO_PROTOCOL   *PciIo,
 | |
|   IN  UINT16                Port,
 | |
|   IN  UINT16                Data
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  PciIo TODO: add argument description
 | |
|   @param  Port TODO: add argument description
 | |
|   @param  Count TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| IDEWritePortWMultiple (
 | |
|   IN  EFI_PCI_IO_PROTOCOL   *PciIo,
 | |
|   IN  UINT16                Port,
 | |
|   IN  UINTN                 Count,
 | |
|   IN  VOID                  *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  PciIo TODO: add argument description
 | |
|   @param  IdeRegsBaseAddr TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| GetIdeRegistersBaseAddr (
 | |
|   IN  EFI_PCI_IO_PROTOCOL         *PciIo,
 | |
|   OUT IDE_REGISTERS_BASE_ADDR     *IdeRegsBaseAddr
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| ReassignIdeResources (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DiscoverIdeDevice (
 | |
|   IN IDE_BLK_IO_DEV *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   This interface is used to initialize all state data related to the
 | |
|   detection of one channel.
 | |
| 
 | |
|   @retval EFI_SUCCESS Completed successfully.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| InitializeIDEChannelData (
 | |
|   VOID
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DetectIDEController (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  TimeoutInMilliSeconds TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DRQClear (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINTN           TimeoutInMilliSeconds
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  TimeoutInMilliSeconds TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DRQClear2 (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINTN           TimeoutInMilliSeconds
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  TimeoutInMilliSeconds TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DRQReady (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINTN           TimeoutInMilliSeconds
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  TimeoutInMilliSeconds TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DRQReady2 (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINTN           TimeoutInMilliSeconds
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  TimeoutInMilliSeconds TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| WaitForBSYClear (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINTN           TimeoutInMilliSeconds
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  TimeoutInMilliSeconds TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| WaitForBSYClear2 (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINTN           TimeoutInMilliSeconds
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DelayInMilliSeconds TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DRDYReady (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINTN           DelayInMilliSeconds
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DelayInMilliSeconds TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DRDYReady2 (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINTN           DelayInMilliSeconds
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  Destination TODO: add argument description
 | |
|   @param  Source TODO: add argument description
 | |
|   @param  Size TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| SwapStringChars (
 | |
|   IN CHAR8  *Destination,
 | |
|   IN CHAR8  *Source,
 | |
|   IN UINT32 Size
 | |
|   )
 | |
| ;
 | |
| 
 | |
| //
 | |
| //  ATA device functions' prototype
 | |
| //
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| ATAIdentify (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| PrintAtaModuleName (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  ByteCount TODO: add argument description
 | |
|   @param  AtaCommand TODO: add argument description
 | |
|   @param  Head TODO: add argument description
 | |
|   @param  SectorCount TODO: add argument description
 | |
|   @param  SectorNumber TODO: add argument description
 | |
|   @param  CylinderLsb TODO: add argument description
 | |
|   @param  CylinderMsb TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaPioDataIn (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *Buffer,
 | |
|   IN  UINT32          ByteCount,
 | |
|   IN  UINT8           AtaCommand,
 | |
|   IN  UINT8           Head,
 | |
|   IN  UINT8           SectorCount,
 | |
|   IN  UINT8           SectorNumber,
 | |
|   IN  UINT8           CylinderLsb,
 | |
|   IN  UINT8           CylinderMsb
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  ByteCount TODO: add argument description
 | |
|   @param  AtaCommand TODO: add argument description
 | |
|   @param  Head TODO: add argument description
 | |
|   @param  SectorCount TODO: add argument description
 | |
|   @param  SectorNumber TODO: add argument description
 | |
|   @param  CylinderLsb TODO: add argument description
 | |
|   @param  CylinderMsb TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaPioDataOut (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *Buffer,
 | |
|   IN  UINT32          ByteCount,
 | |
|   IN  UINT8           AtaCommand,
 | |
|   IN  UINT8           Head,
 | |
|   IN  UINT8           SectorCount,
 | |
|   IN  UINT8           SectorNumber,
 | |
|   IN  UINT8           CylinderLsb,
 | |
|   IN  UINT8           CylinderMsb
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| CheckErrorStatus (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DataBuffer TODO: add argument description
 | |
|   @param  Lba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaReadSectors (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *DataBuffer,
 | |
|   IN  EFI_LBA         Lba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  BufferData TODO: add argument description
 | |
|   @param  Lba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaWriteSectors (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *BufferData,
 | |
|   IN  EFI_LBA         Lba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaSoftReset (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeBlkIoDevice TODO: add argument description
 | |
|   @param  MediaId TODO: add argument description
 | |
|   @param  LBA TODO: add argument description
 | |
|   @param  BufferSize TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaBlkIoReadBlocks (
 | |
|   IN IDE_BLK_IO_DEV   *IdeBlkIoDevice,
 | |
|   IN UINT32           MediaId,
 | |
|   IN EFI_LBA          LBA,
 | |
|   IN UINTN            BufferSize,
 | |
|   OUT VOID            *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeBlkIoDevice TODO: add argument description
 | |
|   @param  MediaId TODO: add argument description
 | |
|   @param  LBA TODO: add argument description
 | |
|   @param  BufferSize TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaBlkIoWriteBlocks (
 | |
|   IN IDE_BLK_IO_DEV   *IdeBlkIoDevice,
 | |
|   IN UINT32           MediaId,
 | |
|   IN EFI_LBA          LBA,
 | |
|   IN UINTN            BufferSize,
 | |
|   OUT VOID            *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| //
 | |
| // ATAPI device functions' prototype
 | |
| //
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| ATAPIIdentify (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiInquiry (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Packet TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  ByteCount TODO: add argument description
 | |
|   @param  TimeOut TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiPacketCommandIn (
 | |
|   IN  IDE_BLK_IO_DEV        *IdeDev,
 | |
|   IN  ATAPI_PACKET_COMMAND  *Packet,
 | |
|   IN  UINT16                *Buffer,
 | |
|   IN  UINT32                ByteCount,
 | |
|   IN  UINTN                 TimeOut
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Packet TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  ByteCount TODO: add argument description
 | |
|   @param  TimeOut TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiPacketCommandOut (
 | |
|   IN  IDE_BLK_IO_DEV        *IdeDev,
 | |
|   IN  ATAPI_PACKET_COMMAND  *Packet,
 | |
|   IN  UINT16                *Buffer,
 | |
|   IN  UINT32                ByteCount,
 | |
|   IN  UINTN                 TimeOut
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  ByteCount TODO: add argument description
 | |
|   @param  Read TODO: add argument description
 | |
|   @param  TimeOut TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| PioReadWriteData (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINT16          *Buffer,
 | |
|   IN  UINT32          ByteCount,
 | |
|   IN  BOOLEAN         Read,
 | |
|   IN  UINTN           TimeOut
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiTestUnitReady (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   OUT UINTN           *SenseCount
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  SenseCounts TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiRequestSense (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   OUT UINTN           *SenseCounts
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiReadCapacity (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   OUT UINTN           *SenseCount
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  MediaChange TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiDetectMedia (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   OUT BOOLEAN         *MediaChange
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  Lba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiReadSectors (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *Buffer,
 | |
|   IN  EFI_LBA         Lba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  Lba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiWriteSectors (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *Buffer,
 | |
|   IN  EFI_LBA         Lba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiSoftReset (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeBlkIoDevice TODO: add argument description
 | |
|   @param  MediaId TODO: add argument description
 | |
|   @param  LBA TODO: add argument description
 | |
|   @param  BufferSize TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiBlkIoReadBlocks (
 | |
|   IN IDE_BLK_IO_DEV   *IdeBlkIoDevice,
 | |
|   IN UINT32           MediaId,
 | |
|   IN EFI_LBA          LBA,
 | |
|   IN UINTN            BufferSize,
 | |
|   OUT VOID            *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeBlkIoDevice TODO: add argument description
 | |
|   @param  MediaId TODO: add argument description
 | |
|   @param  LBA TODO: add argument description
 | |
|   @param  BufferSize TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiBlkIoWriteBlocks (
 | |
|   IN IDE_BLK_IO_DEV   *IdeBlkIoDevice,
 | |
|   IN UINT32           MediaId,
 | |
|   IN EFI_LBA          LBA,
 | |
|   IN UINTN            BufferSize,
 | |
|   OUT VOID            *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  SenseCount TODO: add argument description
 | |
|   @param  Result TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| ParseSenseData (
 | |
|   IN IDE_BLK_IO_DEV     *IdeDev,
 | |
|   IN UINTN              SenseCount,
 | |
|   OUT SENSE_RESULT      *Result
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtapiReadPendingData (
 | |
|   IN IDE_BLK_IO_DEV     *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  WriteProtected TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| IsLS120orZipWriteProtected (
 | |
|   IN  IDE_BLK_IO_DEV    *IdeDev,
 | |
|   OUT BOOLEAN           *WriteProtected
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeBlkIoDevice TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| ReleaseIdeResources (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeBlkIoDevice
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  TransferMode TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| SetDeviceTransferMode (
 | |
|   IN IDE_BLK_IO_DEV       *IdeDev,
 | |
|   IN ATA_TRANSFER_MODE    *TransferMode
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  NativeMaxAddress TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| ReadNativeMaxAddress (
 | |
|   IN  IDE_BLK_IO_DEV                *IdeDev,
 | |
|   OUT EFI_LBA                       *NativeMaxAddress
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  MaxAddress TODO: add argument description
 | |
|   @param  bVolatile TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| SetMaxAddress (
 | |
|   IN  IDE_BLK_IO_DEV                *IdeDev,
 | |
|   IN  EFI_LBA                       MaxAddress,
 | |
|   IN  BOOLEAN                       bVolatile
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  AtaCommand TODO: add argument description
 | |
|   @param  Device TODO: add argument description
 | |
|   @param  Feature TODO: add argument description
 | |
|   @param  SectorCount TODO: add argument description
 | |
|   @param  LbaLow TODO: add argument description
 | |
|   @param  LbaMiddle TODO: add argument description
 | |
|   @param  LbaHigh TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaNonDataCommandIn (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINT8           AtaCommand,
 | |
|   IN  UINT8           Device,
 | |
|   IN  UINT8           Feature,
 | |
|   IN  UINT8           SectorCount,
 | |
|   IN  UINT8           LbaLow,
 | |
|   IN  UINT8           LbaMiddle,
 | |
|   IN  UINT8           LbaHigh
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  AtaCommand TODO: add argument description
 | |
|   @param  Device TODO: add argument description
 | |
|   @param  Feature TODO: add argument description
 | |
|   @param  SectorCount TODO: add argument description
 | |
|   @param  LbaAddress TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaNonDataCommandInExt (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINT8           AtaCommand,
 | |
|   IN  UINT8           Device,
 | |
|   IN  UINT16          Feature,
 | |
|   IN  UINT16          SectorCount,
 | |
|   IN  EFI_LBA         LbaAddress
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DataBuffer TODO: add argument description
 | |
|   @param  StartLba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaReadSectorsExt (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *DataBuffer,
 | |
|   IN  EFI_LBA         StartLba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DataBuffer TODO: add argument description
 | |
|   @param  StartLba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaWriteSectorsExt (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *DataBuffer,
 | |
|   IN  EFI_LBA         StartLba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DataBuffer TODO: add argument description
 | |
|   @param  StartLba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaUdmaReadExt (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *DataBuffer,
 | |
|   IN  EFI_LBA         StartLba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DataBuffer TODO: add argument description
 | |
|   @param  StartLba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaUdmaRead (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *DataBuffer,
 | |
|   IN  EFI_LBA         StartLba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DataBuffer TODO: add argument description
 | |
|   @param  StartLba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaUdmaWriteExt (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *DataBuffer,
 | |
|   IN  EFI_LBA         StartLba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   Perform an ATA Udma operation (Read, ReadExt, Write, WriteExt).
 | |
|   
 | |
|   @param[in] *IdeDev
 | |
|   pointer pointing to IDE_BLK_IO_DEV data structure, used
 | |
|   to record all the information of the IDE device.
 | |
| 
 | |
|   @param[in] *DataBuffer
 | |
|   A pointer to the source buffer for the data.
 | |
| 
 | |
|   @param[in] StartLba
 | |
|   The starting logical block address to write to
 | |
|   on the device media.
 | |
| 
 | |
|   @param[in] NumberOfBlocks
 | |
|   The number of transfer data blocks.
 | |
|   
 | |
|   @param[in] UdmaOp
 | |
|   The perform operations could be AtaUdmaReadOp, AtaUdmaReadExOp,
 | |
|   AtaUdmaWriteOp, AtaUdmaWriteExOp
 | |
| 
 | |
|   @return The device status of UDMA operation. If the operation is
 | |
|   successful, return EFI_SUCCESS.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| DoAtaUdma (
 | |
|   IN  IDE_BLK_IO_DEV      *IdeDev,
 | |
|   IN  VOID                *DataBuffer,
 | |
|   IN  EFI_LBA             StartLba,
 | |
|   IN  UINTN               NumberOfBlocks,
 | |
|   IN  ATA_UDMA_OPERATION  UdmaOp
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DataBuffer TODO: add argument description
 | |
|   @param  StartLba TODO: add argument description
 | |
|   @param  NumberOfBlocks TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaUdmaWrite (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *DataBuffer,
 | |
|   IN  EFI_LBA         StartLba,
 | |
|   IN  UINTN           NumberOfBlocks
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  AtaCommand TODO: add argument description
 | |
|   @param  Device TODO: add argument description
 | |
|   @param  Feature TODO: add argument description
 | |
|   @param  SectorCount TODO: add argument description
 | |
|   @param  LbaAddress TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaCommandIssueExt (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINT8           AtaCommand,
 | |
|   IN  UINT8           Device,
 | |
|   IN  UINT16          Feature,
 | |
|   IN  UINT16          SectorCount,
 | |
|   IN  EFI_LBA         LbaAddress
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  AtaCommand TODO: add argument description
 | |
|   @param  Device TODO: add argument description
 | |
|   @param  Feature TODO: add argument description
 | |
|   @param  SectorCount TODO: add argument description
 | |
|   @param  LbaAddress TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaCommandIssue (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  UINT8           AtaCommand,
 | |
|   IN  UINT8           Device,
 | |
|   IN  UINT16          Feature,
 | |
|   IN  UINT16          SectorCount,
 | |
|   IN  EFI_LBA         LbaAddress
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaAtapi6Identify (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| AtaSMARTSupport (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  ByteCount TODO: add argument description
 | |
|   @param  AtaCommand TODO: add argument description
 | |
|   @param  StartLba TODO: add argument description
 | |
|   @param  SectorCount TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaPioDataInExt (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  OUT VOID        *Buffer,
 | |
|   IN  UINT32          ByteCount,
 | |
|   IN  UINT8           AtaCommand,
 | |
|   IN  EFI_LBA         StartLba,
 | |
|   IN  UINT16          SectorCount
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  Buffer TODO: add argument description
 | |
|   @param  ByteCount TODO: add argument description
 | |
|   @param  AtaCommand TODO: add argument description
 | |
|   @param  StartLba TODO: add argument description
 | |
|   @param  SectorCount TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| AtaPioDataOutExt (
 | |
|   IN  IDE_BLK_IO_DEV  *IdeDev,
 | |
|   IN  VOID            *Buffer,
 | |
|   IN  UINT32          ByteCount,
 | |
|   IN  UINT8           AtaCommand,
 | |
|   IN  EFI_LBA         StartLba,
 | |
|   IN  UINT16          SectorCount
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
|   @param  DriveParameters TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| SetDriveParameters (
 | |
|   IN IDE_BLK_IO_DEV       *IdeDev,
 | |
|   IN ATA_DRIVE_PARMS      *DriveParameters
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  IdeDev TODO: add argument description
 | |
| 
 | |
|   TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EnableInterrupt (
 | |
|   IN IDE_BLK_IO_DEV       *IdeDev
 | |
|   )
 | |
| ;
 | |
| 
 | |
| /**
 | |
|   Clear pending IDE interrupt before OS loader/kernel take control of the IDE device.
 | |
| 
 | |
|   @param[in]  Event   Pointer to this event
 | |
|   @param[in]  Context Event hanlder private data
 | |
| 
 | |
|   @retval  EFI_SUCCESS - Interrupt cleared
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| EFIAPI
 | |
| ClearInterrupt (
 | |
|   IN EFI_EVENT  Event,
 | |
|   IN VOID       *Context
 | |
|   )
 | |
| ;
 | |
| 
 | |
| #endif
 |