\r
**/\r
\r
+#include <Library/UefiLib.h>\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
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