#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
INQUIRY_DATA *pInquiryData;\r
EFI_IDENTIFY_DATA *pIdData;\r
ATA_PIO_MODE PioMode;\r
- ATA_UDMA_MODE UDma_Mode;\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
)\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