]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.h
In IdeBus driver block I/O read/write interface, it will always try to use UDMA mode...
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / IdeBus / Dxe / idebus.h
index d1721b956fc3b5a474956fac7a9601c222d7595b..78c79d7665dacc22f14871d6588e20da94b93923 100644 (file)
 #define MAX_IDE_CHANNELS  2\r
 #define MAX_IDE_DRIVES    2\r
 \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
 typedef struct {\r
   BOOLEAN HaveScannedDevice[MAX_IDE_DEVICE];\r
   BOOLEAN DeviceFound[MAX_IDE_DEVICE];\r
@@ -61,12 +65,17 @@ typedef struct {
   INQUIRY_DATA                *pInquiryData;\r
   EFI_IDENTIFY_DATA           *pIdData;\r
   ATA_PIO_MODE                PioMode;\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
   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
   EFI_UNICODE_STRING_TABLE    *ControllerNameTable;\r
 } IDE_BLK_IO_DEV;\r
 \r
@@ -162,6 +171,49 @@ IDEBusDriverBindingStop (
   )\r
 ;\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
 //\r
 // Block I/O Protocol Interface\r
 //\r