summaryrefslogtreecommitdiff
path: root/inc/efiprot.h
diff options
context:
space:
mode:
authorNigel Croxon <nigel.croxon@hpe.com>2016-05-03 14:13:43 -0400
committerNigel Croxon <nigel.croxon@hpe.com>2016-05-03 14:13:43 -0400
commit63213a7b4e73ea98e4d5de32cdd5aef9124e7b36 (patch)
treee77ae821c09957b5a89ab85a2e15797c6e428647 /inc/efiprot.h
parent78e4df7c5e506f9a9a21207a8e320865438e02ec (diff)
downloadgnu-efi-63213a7b4e73ea98e4d5de32cdd5aef9124e7b36.tar.gz
This patch adds protocol definitions (and the corresponding global
EFI_GUID instances) for EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL, EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL, and EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL, used in the driver binding search procedure to select which driver to connect when multiple drivers' Supported() functions indicate support for the same controller. Signed-off-by: Nathan Blythe <nblythe@lgsinnovations.com> Signed-off-by: Nigel Croxon <nigel.croxon@hpe.com>
Diffstat (limited to 'inc/efiprot.h')
-rw-r--r--inc/efiprot.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/inc/efiprot.h b/inc/efiprot.h
index 2209fcc..377fb5f 100644
--- a/inc/efiprot.h
+++ b/inc/efiprot.h
@@ -1017,5 +1017,80 @@ typedef struct _EFI_RNG_PROTOCOL {
} EFI_RNG_PROTOCOL;
+//
+// EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL
+//
+
+#define EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL_GUID \
+ { 0x6b30c738, 0xa391, 0x11d4, {0x9a, 0x3b, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
+
+INTERFACE_DECL(_EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER) (
+IN struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
+IN EFI_HANDLE ControllerHandle,
+IN OUT EFI_HANDLE *DriverImageHandle);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH) (
+IN struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
+IN EFI_HANDLE ControllerHandle,
+IN OUT EFI_DEVICE_PATH **DriverImagePath);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED) (
+IN struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
+IN EFI_HANDLE ControllerHandle,
+IN EFI_DEVICE_PATH *DriverImagePath,
+IN EFI_HANDLE DriverImageHandle);
+
+typedef struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL {
+ EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER GetDriver;
+ EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH GetDriverPath;
+ EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED DriverLoaded;
+} EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL;
+
+//
+// EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL
+//
+
+#define EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL_GUID \
+ { 0x3bc1b285, 0x8a15, 0x4a82, {0xaa, 0xbf, 0x4d, 0x7d, 0x13, 0xfb, 0x32, 0x65} }
+
+INTERFACE_DECL(_EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL);
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_GET_DRIVER) (
+IN struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *This,
+IN OUT EFI_HANDLE *DriverImageHandle);
+
+typedef struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL {
+ EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_GET_DRIVER GetDriver;
+} EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL;
+
+//
+// EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL
+//
+
+#define EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL_GUID \
+ { 0xb1ee129e, 0xda36, 0x4181, {0x91, 0xf8, 0x04, 0xa4, 0x92, 0x37, 0x66, 0xa7} }
+
+INTERFACE_DECL(_EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL);
+
+typedef
+UINT32
+(EFIAPI *EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION) (
+IN struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL *This);
+
+typedef struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL {
+ EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION GetVersion;
+} EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL;
+
+
#endif