+++ /dev/null
-/** @file\r
- Header file for IDE Bus Driver.\r
-\r
- Copyright (c) 2006 - 2007 Intel Corporation. <BR>\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
-**/\r
-\r
-#ifndef _IDE_BUS_H\r
-#define _IDE_BUS_H\r
-\r
-\r
-#include <IndustryStandard/pci22.h>\r
-#include "idedata.h"\r
-\r
-//\r
-// Extra Definition to porting\r
-//\r
-#define EFI_MIN(a, b) (((a) < (b)) ? (a) : (b))\r
-\r
-#define MAX_IDE_DEVICE 4\r
-#define MAX_IDE_CHANNELS 2\r
-#define MAX_IDE_DRIVES 2\r
-\r
-#define INVALID_DEVICE_TYPE 0xff\r
-#define ATA_DEVICE_TYPE 0x00\r
-#define ATAPI_DEVICE_TYPE 0x01\r
-\r
-typedef struct {\r
- BOOLEAN HaveScannedDevice[MAX_IDE_DEVICE];\r
- BOOLEAN DeviceFound[MAX_IDE_DEVICE];\r
- BOOLEAN DeviceProcessed[MAX_IDE_DEVICE];\r
-} IDE_BUS_DRIVER_PRIVATE_DATA;\r
-\r
-#define IDE_BLK_IO_DEV_SIGNATURE EFI_SIGNATURE_32 ('i', 'b', 'i', 'd')\r
-\r
-typedef struct {\r
- UINT32 Signature;\r
-\r
- EFI_HANDLE Handle;\r
- EFI_BLOCK_IO_PROTOCOL BlkIo;\r
- EFI_BLOCK_IO_MEDIA BlkMedia;\r
- EFI_DISK_INFO_PROTOCOL DiskInfo;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
- IDE_BUS_DRIVER_PRIVATE_DATA *IdeBusDriverPrivateData;\r
-\r
- //\r
- // Local Data for IDE interface goes here\r
- //\r
- EFI_IDE_CHANNEL Channel;\r
- EFI_IDE_DEVICE Device;\r
- UINT16 Lun;\r
- IDE_DEVICE_TYPE Type;\r
-\r
- IDE_BASE_REGISTERS *IoPort;\r
- UINT16 AtapiError;\r
-\r
- INQUIRY_DATA *pInquiryData;\r
- EFI_IDENTIFY_DATA *pIdData;\r
- ATA_PIO_MODE PioMode;\r
- EFI_ATA_MODE UdmaMode;\r
- CHAR8 ModelName[41];\r
- REQUEST_SENSE_DATA *SenseData;\r
- UINT8 SenseDataNumber;\r
- UINT8 *Cache;\r
-\r
- //\r
- // ExitBootService Event, it is used to clear pending IDE interrupt\r
- //\r
- EFI_EVENT ExitBootServiceEvent;\r
-\r
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
-} IDE_BLK_IO_DEV;\r
-\r
-#include "ComponentName.h"\r
-\r
-#define IDE_BLOCK_IO_DEV_FROM_THIS(a) CR (a, IDE_BLK_IO_DEV, BlkIo, IDE_BLK_IO_DEV_SIGNATURE)\r
-#define IDE_BLOCK_IO_DEV_FROM_DISK_INFO_THIS(a) CR (a, IDE_BLK_IO_DEV, DiskInfo, IDE_BLK_IO_DEV_SIGNATURE)\r
-\r
-//\r
-// Global Variables\r
-//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gIDEBusDriverBinding;\r
-\r
-#include "ide.h"\r
-\r
-//\r
-// Prototypes\r
-// Driver model protocol interface\r
-//\r
-/**\r
- TODO: Add function description\r
-\r
- @param ImageHandle TODO: add argument description\r
- @param SystemTable TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEBusControllerDriverEntryPoint (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Controller TODO: add argument description\r
- @param RemainingDevicePath TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEBusDriverBindingSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Controller TODO: add argument description\r
- @param RemainingDevicePath TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEBusDriverBindingStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param Controller TODO: add argument description\r
- @param NumberOfChildren TODO: add argument description\r
- @param ChildHandleBuffer TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEBusDriverBindingStop (\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
-//\r
-// EFI Driver Configuration Functions\r
-//\r
-EFI_STATUS\r
-IDEBusDriverConfigurationSetOptions (\r
- IN EFI_DRIVER_CONFIGURATION_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL,\r
- IN CHAR8 *Language,\r
- OUT EFI_DRIVER_CONFIGURATION_ACTION_REQUIRED *ActionRequired\r
- );\r
-\r
-EFI_STATUS\r
-IDEBusDriverConfigurationOptionsValid (\r
- IN EFI_DRIVER_CONFIGURATION_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL\r
- );\r
-\r
-EFI_STATUS\r
-IDEBusDriverConfigurationForceDefaults (\r
- IN EFI_DRIVER_CONFIGURATION_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL,\r
- IN UINT32 DefaultType,\r
- OUT EFI_DRIVER_CONFIGURATION_ACTION_REQUIRED *ActionRequired\r
- );\r
-\r
-//\r
-// EFI Driver Diagnostics Functions\r
-//\r
-EFI_STATUS\r
-IDEBusDriverDiagnosticsRunDiagnostics (\r
- IN EFI_DRIVER_DIAGNOSTICS_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL,\r
- IN EFI_DRIVER_DIAGNOSTIC_TYPE DiagnosticType,\r
- IN CHAR8 *Language,\r
- OUT EFI_GUID **ErrorType,\r
- OUT UINTN *BufferSize,\r
- OUT CHAR16 **Buffer\r
- );\r
-\r
-//\r
-// Block I/O Protocol Interface\r
-//\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param ExtendedVerification TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEBlkIoReset (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param MediaId TODO: add argument description\r
- @param LBA TODO: add argument description\r
- @param BufferSize TODO: add argument description\r
- @param Buffer TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEBlkIoReadBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA LBA,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param MediaId TODO: add argument description\r
- @param LBA TODO: add argument description\r
- @param BufferSize TODO: add argument description\r
- @param Buffer TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEBlkIoWriteBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA LBA,\r
- IN UINTN BufferSize,\r
- IN VOID *Buffer\r
- )\r
-;\r
-\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
-IDEBlkIoFlushBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param PciIo TODO: add argument description\r
- @param Enable TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-IDERegisterDecodeEnableorDisable (\r
- IN EFI_PCI_IO_PROTOCOL *PciIo,\r
- IN BOOLEAN Enable\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param InquiryData TODO: add argument description\r
- @param IntquiryDataSize TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEDiskInfoInquiry (\r
- IN EFI_DISK_INFO_PROTOCOL *This,\r
- IN OUT VOID *InquiryData,\r
- IN OUT UINT32 *IntquiryDataSize\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param IdentifyData TODO: add argument description\r
- @param IdentifyDataSize TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEDiskInfoIdentify (\r
- IN EFI_DISK_INFO_PROTOCOL *This,\r
- IN OUT VOID *IdentifyData,\r
- IN OUT UINT32 *IdentifyDataSize\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param SenseData TODO: add argument description\r
- @param SenseDataSize TODO: add argument description\r
- @param SenseDataNumber TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEDiskInfoSenseData (\r
- IN EFI_DISK_INFO_PROTOCOL *This,\r
- IN OUT VOID *SenseData,\r
- IN OUT UINT32 *SenseDataSize,\r
- OUT UINT8 *SenseDataNumber\r
- )\r
-;\r
-\r
-/**\r
- TODO: Add function description\r
-\r
- @param This TODO: add argument description\r
- @param IdeChannel TODO: add argument description\r
- @param IdeDevice TODO: add argument description\r
-\r
- TODO: add return values\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-IDEDiskInfoWhichIde (\r
- IN EFI_DISK_INFO_PROTOCOL *This,\r
- OUT UINT32 *IdeChannel,\r
- OUT UINT32 *IdeDevice\r
- )\r
-;\r
-\r
-#endif\r