+++ /dev/null
-/** @file\r
- Copyright (c) 2006, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
- Module Name: AtapiPassThru.h\r
-\r
-**/\r
-\r
-#ifndef _APT_H\r
-#define _APT_H\r
-\r
-\r
-#include <IndustryStandard/pci22.h>\r
-\r
-///\r
-/// bit definition\r
-///\r
-#define bit(a) (1 << (a))\r
-\r
-#define MAX_TARGET_ID 4\r
-\r
-//\r
-// IDE Registers\r
-//\r
-typedef union {\r
- UINT16 Command; /* when write */\r
- UINT16 Status; /* when read */\r
-} IDE_CMD_OR_STATUS;\r
-\r
-typedef union {\r
- UINT16 Error; /* when read */\r
- UINT16 Feature; /* when write */\r
-} IDE_ERROR_OR_FEATURE;\r
-\r
-typedef union {\r
- UINT16 AltStatus; /* when read */\r
- UINT16 DeviceControl; /* when write */\r
-} IDE_AltStatus_OR_DeviceControl;\r
-\r
-///\r
-/// IDE registers set\r
-///\r
-typedef struct {\r
- UINT16 Data;\r
- IDE_ERROR_OR_FEATURE Reg1;\r
- UINT16 SectorCount;\r
- UINT16 SectorNumber;\r
- UINT16 CylinderLsb;\r
- UINT16 CylinderMsb;\r
- UINT16 Head;\r
- IDE_CMD_OR_STATUS Reg;\r
-\r
- IDE_AltStatus_OR_DeviceControl Alt;\r
- UINT16 DriveAddress;\r
-\r
- UINT16 MasterSlave;\r
-} IDE_BASE_REGISTERS;\r
-\r
-#define ATAPI_SCSI_PASS_THRU_DEV_SIGNATURE EFI_SIGNATURE_32 ('a', 's', 'p', 't')\r
-\r
-typedef struct {\r
- UINTN Signature;\r
-\r
- EFI_HANDLE Handle;\r
- EFI_SCSI_PASS_THRU_PROTOCOL ScsiPassThru;\r
- EFI_SCSI_PASS_THRU_MODE ScsiPassThruMode;\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
-\r
- //\r
- // Local Data goes here\r
- //\r
- IDE_BASE_REGISTERS *IoPort;\r
-\r
- CHAR16 ControllerName[100];\r
- CHAR16 ChannelName[100];\r
-\r
- UINT32 LatestTargetId;\r
- UINT64 LatestLun;\r
-\r
-} ATAPI_SCSI_PASS_THRU_DEV;\r
-\r
-#define ATAPI_SCSI_PASS_THRU_DEV_FROM_THIS(a) \\r
- CR (a, \\r
- ATAPI_SCSI_PASS_THRU_DEV, \\r
- ScsiPassThru, \\r
- ATAPI_SCSI_PASS_THRU_DEV_SIGNATURE \\r
- )\r
-\r
-//\r
-// Global Variables\r
-//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gAtapiScsiPassThruDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gAtapiScsiPassThruComponentName;\r
-\r
-//\r
-// ATAPI Command op code\r
-//\r
-#define OP_INQUIRY 0x12\r
-#define OP_LOAD_UNLOAD_CD 0xa6\r
-#define OP_MECHANISM_STATUS 0xbd\r
-#define OP_MODE_SELECT_10 0x55\r
-#define OP_MODE_SENSE_10 0x5a\r
-#define OP_PAUSE_RESUME 0x4b\r
-#define OP_PLAY_AUDIO_10 0x45\r
-#define OP_PLAY_AUDIO_MSF 0x47\r
-#define OP_PLAY_CD 0xbc\r
-#define OP_PLAY_CD_MSF 0xb4\r
-#define OP_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1e\r
-#define OP_READ_10 0x28\r
-#define OP_READ_12 0xa8\r
-#define OP_READ_CAPACITY 0x25\r
-#define OP_READ_CD 0xbe\r
-#define OP_READ_CD_MSF 0xb9\r
-#define OP_READ_HEADER 0x44\r
-#define OP_READ_SUB_CHANNEL 0x42\r
-#define OP_READ_TOC 0x43\r
-#define OP_REQUEST_SENSE 0x03\r
-#define OP_SCAN 0xba\r
-#define OP_SEEK_10 0x2b\r
-#define OP_SET_CD_SPEED 0xbb\r
-#define OP_STOPPLAY_SCAN 0x4e\r
-#define OP_START_STOP_UNIT 0x1b\r
-#define OP_TEST_UNIT_READY 0x00\r
-\r
-#define OP_FORMAT_UNIT 0x04\r
-#define OP_READ_FORMAT_CAPACITIES 0x23\r
-#define OP_VERIFY 0x2f\r
-#define OP_WRITE_10 0x2a\r
-#define OP_WRITE_12 0xaa\r
-#define OP_WRITE_AND_VERIFY 0x2e\r
-\r
-//\r
-// ATA Command\r
-//\r
-#define ATAPI_SOFT_RESET_CMD 0x08\r
-\r
-typedef enum {\r
- DataIn = 0,\r
- DataOut = 1,\r
- NoData = 2,\r
- End = 0xff\r
-} DATA_DIRECTION;\r
-\r
-typedef struct {\r
- UINT8 OpCode;\r
- DATA_DIRECTION Direction;\r
-} SCSI_COMMAND_SET;\r
-\r
-#define MAX_CHANNEL 2\r
-\r
-#define ValidCdbLength(Len) ((Len) == 6 || (Len) == 10 || (Len) == 12) ? 1 : 0\r
-\r
-//\r
-// IDE registers bit definitions\r
-//\r
-// ATA Err Reg bitmap\r
-//\r
-#define BBK_ERR bit (7) ///< Bad block detected\r
-#define UNC_ERR bit (6) ///< Uncorrectable Data\r
-#define MC_ERR bit (5) ///< Media Change\r
-#define IDNF_ERR bit (4) ///< ID Not Found\r
-#define MCR_ERR bit (3) ///< Media Change Requested\r
-#define ABRT_ERR bit (2) ///< Aborted Command\r
-#define TK0NF_ERR bit (1) ///< Track 0 Not Found\r
-#define AMNF_ERR bit (0) ///< Address Mark Not Found\r
-\r
-//\r
-// ATAPI Err Reg bitmap\r
-//\r
-#define SENSE_KEY_ERR (bit (7) | bit (6) | bit (5) | bit (4))\r
-#define EOM_ERR bit (1) ///< End of Media Detected\r
-#define ILI_ERR bit (0) ///< Illegal Length Indication\r
-\r
-//\r
-// Device/Head Reg\r
-//\r
-#define LBA_MODE bit (6)\r
-#define DEV bit (4)\r
-#define HS3 bit (3)\r
-#define HS2 bit (2)\r
-#define HS1 bit (1)\r
-#define HS0 bit (0)\r
-#define CHS_MODE (0)\r
-#define DRV0 (0)\r
-#define DRV1 (1)\r
-#define MST_DRV DRV0\r
-#define SLV_DRV DRV1\r
-\r
-//\r
-// Status Reg\r
-//\r
-#define BSY bit (7) ///< Controller Busy\r
-#define DRDY bit (6) ///< Drive Ready\r
-#define DWF bit (5) ///< Drive Write Fault\r
-#define DSC bit (4) ///< Disk Seek Complete\r
-#define DRQ bit (3) ///< Data Request\r
-#define CORR bit (2) ///< Corrected Data\r
-#define IDX bit (1) ///< Index\r
-#define ERR bit (0) ///< Error\r
-#define CHECK bit (0) ///< Check bit for ATAPI Status Reg\r
-\r
-//\r
-// Device Control Reg\r
-//\r
-#define SRST bit (2) ///< Software Reset\r
-#define IEN_L bit (1) ///< Interrupt Enable\r
-\r
-//\r
-// ATAPI Feature Register\r
-//\r
-#define OVERLAP bit (1)\r
-#define DMA bit (0)\r
-\r
-//\r
-// ATAPI Interrupt Reason Reson Reg (ATA Sector Count Register)\r
-//\r
-#define RELEASE bit (2)\r
-#define IO bit (1)\r
-#define CoD bit (0)\r
-\r
-#define PACKET_CMD 0xA0\r
-\r
-#define DEFAULT_CMD (0xa0)\r
-//\r
-// default content of device control register, disable INT\r
-//\r
-#define DEFAULT_CTL (0x0a)\r
-#define MAX_ATAPI_BYTE_COUNT (0xfffe)\r
-\r
-//\r
-// function prototype\r
-//\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruDriverBindingSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruDriverBindingStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruDriverBindingStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
- );\r
-\r
-//\r
-// EFI Component Name Functions\r
-//\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruComponentNameGetDriverName (\r
- IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
- IN CHAR8 *Language,\r
- OUT CHAR16 **DriverName\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruComponentNameGetControllerName (\r
- IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL,\r
- IN CHAR8 *Language,\r
- OUT CHAR16 **ControllerName\r
- );\r
-\r
-/**\r
- AtapiScsiPassThruDriverEntryPoint\r
-\r
- @param ImageHandle\r
- @param SystemTable\r
-\r
- @todo Add function description\r
- @todo ImageHandle - add argument description\r
- @todo SystemTable - add argument description\r
- @todo add return values\r
---*/\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruDriverEntryPoint (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-;\r
-\r
-/**\r
- RegisterAtapiScsiPassThru\r
-\r
- @param This\r
- @param Controller\r
- @param PciIo\r
-\r
- @todo Add function description\r
- @todo This add argument description\r
- @todo Controller add argument description\r
- @todo PciIo add argument description\r
- @todo add return values\r
-**/\r
-EFI_STATUS\r
-RegisterAtapiScsiPassThru (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_PCI_IO_PROTOCOL *PciIo\r
- )\r
-;\r
-\r
-/**\r
- AtapiScsiPassThruFunction\r
-\r
- @param This\r
- @param Target\r
- @param Lun\r
- @param Packet\r
- @param Event\r
-\r
- @todo Add function description\r
- @todo This - add argument description\r
- @todo Target - add argument description\r
- @todo Lun - add argument description\r
- @todo Packet - add argument description\r
- @todo Event - add argument description\r
- @todo add return values\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruFunction (\r
- IN EFI_SCSI_PASS_THRU_PROTOCOL *This,\r
- IN UINT32 Target,\r
- IN UINT64 Lun,\r
- IN OUT EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet,\r
- IN EFI_EVENT Event OPTIONAL\r
- )\r
-;\r
-\r
-/**\r
- AtapiScsiPassThruGetNextDevice\r
-\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Target TODO: add argument description\r
- @param Lun TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruGetNextDevice (\r
- IN EFI_SCSI_PASS_THRU_PROTOCOL *This,\r
- IN OUT UINT32 *Target,\r
- IN OUT UINT64 *Lun\r
- )\r
-;\r
-\r
-/**\r
- AtapiScsiPassThruBuildDevicePath\r
-\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Target TODO: add argument description\r
- @param Lun TODO: add argument description\r
- @param DevicePath TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruBuildDevicePath (\r
- IN EFI_SCSI_PASS_THRU_PROTOCOL *This,\r
- IN UINT32 Target,\r
- IN UINT64 Lun,\r
- IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath\r
- )\r
-;\r
-\r
-/**\r
- AtapiScsiPassThruGetTargetLun\r
-\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param DevicePath TODO: add argument description\r
- @param Target TODO: add argument description\r
- @param Lun TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruGetTargetLun (\r
- IN EFI_SCSI_PASS_THRU_PROTOCOL *This,\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
- OUT UINT32 *Target,\r
- OUT UINT64 *Lun\r
- )\r
-;\r
-\r
-/**\r
- AtapiScsiPassThruResetChannel\r
-\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruResetChannel (\r
- IN EFI_SCSI_PASS_THRU_PROTOCOL *This\r
- )\r
-;\r
-\r
-/**\r
- AtapiScsiPassThruResetTarget\r
-\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Target TODO: add argument description\r
- @param Lun TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-AtapiScsiPassThruResetTarget (\r
- IN EFI_SCSI_PASS_THRU_PROTOCOL *This,\r
- IN UINT32 Target,\r
- IN UINT64 Lun\r
- )\r
-;\r
-\r
-/**\r
- CheckSCSIRequestPacket\r
-\r
- TODO: Add function description\r
-\r
- @param Packet TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-CheckSCSIRequestPacket (\r
- EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet\r
- )\r
-;\r
-\r
-/**\r
- SubmitBlockingIoCommand\r
-\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param Target TODO: add argument description\r
- @param Packet TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-SubmitBlockingIoCommand (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT32 Target,\r
- EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet\r
- )\r
-;\r
-\r
-/**\r
- IsCommandValid\r
-\r
- TODO: Add function description\r
-\r
- @param Packet - TODO: add argument description\r
-\r
- @return TODO: add return values\r
-\r
---*/\r
-BOOLEAN\r
-IsCommandValid (\r
- EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet\r
- )\r
-;\r
-\r
-/**\r
- RequestSenseCommand\r
-\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param Target TODO: add argument description\r
- @param Timeout TODO: add argument description\r
- @param SenseData TODO: add argument description\r
- @param SenseDataLength TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-RequestSenseCommand (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT32 Target,\r
- UINT64 Timeout,\r
- VOID *SenseData,\r
- UINT8 *SenseDataLength\r
- )\r
-;\r
-\r
-/**\r
- AtapiPacketCommand\r
-\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param Target TODO: add argument description\r
- @param PacketCommand TODO: add argument description\r
- @param Buffer TODO: add argument description\r
- @param ByteCount TODO: add argument description\r
- @param Direction TODO: add argument description\r
- @param TimeOutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-AtapiPacketCommand (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT32 Target,\r
- UINT8 *PacketCommand,\r
- VOID *Buffer,\r
- UINT32 *ByteCount,\r
- DATA_DIRECTION Direction,\r
- UINT64 TimeOutInMicroSeconds\r
- )\r
-;\r
-\r
-\r
-/**\r
- ReadPortB\r
-\r
- TODO: Add function description\r
-\r
- @param PciIo TODO: add argument description\r
- @param Port TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-UINT8\r
-ReadPortB (\r
- IN EFI_PCI_IO_PROTOCOL *PciIo,\r
- IN UINT16 Port\r
- )\r
-;\r
-\r
-\r
-/**\r
- ReadPortW\r
-\r
- TODO: Add function description\r
-\r
- @param PciIo TODO: add argument description\r
- @param Port TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-UINT16\r
-ReadPortW (\r
- IN EFI_PCI_IO_PROTOCOL *PciIo,\r
- IN UINT16 Port\r
- )\r
-;\r
-\r
-\r
-/**\r
- WritePortB\r
-\r
- TODO: Add function description\r
-\r
- @param PciIo TODO: add argument description\r
- @param Port TODO: add argument description\r
- @param Data TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-VOID\r
-WritePortB (\r
- IN EFI_PCI_IO_PROTOCOL *PciIo,\r
- IN UINT16 Port,\r
- IN UINT8 Data\r
- )\r
-;\r
-\r
-\r
-/**\r
- WritePortW\r
-\r
- TODO: Add function description\r
-\r
- @param PciIo TODO: add argument description\r
- @param Port TODO: add argument description\r
- @param Data TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-VOID\r
-WritePortW (\r
- IN EFI_PCI_IO_PROTOCOL *PciIo,\r
- IN UINT16 Port,\r
- IN UINT16 Data\r
- )\r
-;\r
-\r
-/**\r
- StatusDRQClear\r
-\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param TimeOutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-StatusDRQClear (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT64 TimeOutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- AltStatusDRQClear\r
-\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param TimeOutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-AltStatusDRQClear (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT64 TimeOutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- StatusDRQReady\r
-\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param TimeOutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-StatusDRQReady (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT64 TimeOutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- AltStatusDRQReady\r
-\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param TimeOutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-AltStatusDRQReady (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT64 TimeOutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param TimeoutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-StatusWaitForBSYClear (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT64 TimeoutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param TimeoutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-AltStatusWaitForBSYClear (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT64 TimeoutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param TimeoutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-StatusDRDYReady (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT64 TimeoutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param TimeoutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-AltStatusDRDYReady (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT64 TimeoutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
- @param Buffer TODO: add argument description\r
- @param ByteCount TODO: add argument description\r
- @param Direction TODO: add argument description\r
- @param TimeOutInMicroSeconds TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-AtapiPassThruPioReadWriteData (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate,\r
- UINT16 *Buffer,\r
- UINT32 *ByteCount,\r
- DATA_DIRECTION Direction,\r
- UINT64 TimeOutInMicroSeconds\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param AtapiScsiPrivate TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-AtapiPassThruCheckErrorStatus (\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate\r
- )\r
-;\r
-#endif\r