]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/MptScsiDxe/MptScsi.c
OvmfPkg/MptScsiDxe: Install DriverBinding Protocol
[mirror_edk2.git] / OvmfPkg / MptScsiDxe / MptScsi.c
index c6c8142dfde666e001bb639608c86d56604c9797..581d3909b84d39cad550070370df06de17259821 100644 (file)
@@ -9,8 +9,66 @@
 \r
 **/\r
 \r
 \r
 **/\r
 \r
+#include <Library/UefiLib.h>\r
 #include <Uefi/UefiSpec.h>\r
 \r
 #include <Uefi/UefiSpec.h>\r
 \r
+//\r
+// Higher versions will be used before lower, 0x10-0xffffffef is the version\r
+// range for IVH (Indie Hardware Vendors)\r
+//\r
+#define MPT_SCSI_BINDING_VERSION 0x10\r
+\r
+//\r
+// Driver Binding\r
+//\r
+\r
+STATIC\r
+EFI_STATUS\r
+EFIAPI\r
+MptScsiControllerSupported (\r
+  IN EFI_DRIVER_BINDING_PROTOCOL            *This,\r
+  IN EFI_HANDLE                             ControllerHandle,\r
+  IN EFI_DEVICE_PATH_PROTOCOL               *RemainingDevicePath OPTIONAL\r
+  )\r
+{\r
+  return EFI_UNSUPPORTED;\r
+}\r
+\r
+STATIC\r
+EFI_STATUS\r
+EFIAPI\r
+MptScsiControllerStart (\r
+  IN EFI_DRIVER_BINDING_PROTOCOL            *This,\r
+  IN EFI_HANDLE                             ControllerHandle,\r
+  IN EFI_DEVICE_PATH_PROTOCOL               *RemainingDevicePath OPTIONAL\r
+  )\r
+{\r
+  return EFI_UNSUPPORTED;\r
+}\r
+\r
+STATIC\r
+EFI_STATUS\r
+EFIAPI\r
+MptScsiControllerStop (\r
+  IN EFI_DRIVER_BINDING_PROTOCOL            *This,\r
+  IN  EFI_HANDLE                            ControllerHandle,\r
+  IN  UINTN                                 NumberOfChildren,\r
+  IN  EFI_HANDLE                            *ChildHandleBuffer\r
+  )\r
+{\r
+  return EFI_UNSUPPORTED;\r
+}\r
+\r
+STATIC\r
+EFI_DRIVER_BINDING_PROTOCOL mMptScsiDriverBinding = {\r
+  &MptScsiControllerSupported,\r
+  &MptScsiControllerStart,\r
+  &MptScsiControllerStop,\r
+  MPT_SCSI_BINDING_VERSION,\r
+  NULL, // ImageHandle, filled by EfiLibInstallDriverBindingComponentName2\r
+  NULL, // DriverBindingHandle, filled as well\r
+};\r
+\r
 //\r
 // Entry Point\r
 //\r
 //\r
 // Entry Point\r
 //\r
@@ -22,5 +80,12 @@ MptScsiEntryPoint (
   IN EFI_SYSTEM_TABLE *SystemTable\r
   )\r
 {\r
   IN EFI_SYSTEM_TABLE *SystemTable\r
   )\r
 {\r
-  return EFI_UNSUPPORTED;\r
+  return EfiLibInstallDriverBindingComponentName2 (\r
+           ImageHandle,\r
+           SystemTable,\r
+           &mMptScsiDriverBinding,\r
+           ImageHandle, // The handle to install onto\r
+           NULL, // TODO Component name\r
+           NULL // TODO Component name\r
+           );\r
 }\r
 }\r