X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FInclude%2FProtocol%2FDriverBinding.h;h=43fc16593b02b8a62ada4046616635809c36f61b;hb=3354353d4d82fb12c073564ab41099ca75d02839;hp=46e85c89d26b9193f3a7d5df91fb4e788f17ad79;hpb=ed66e1bc0d2be0a185fc47adab4930c3b7e2767f;p=mirror_edk2.git diff --git a/MdePkg/Include/Protocol/DriverBinding.h b/MdePkg/Include/Protocol/DriverBinding.h index 46e85c89d2..43fc16593b 100644 --- a/MdePkg/Include/Protocol/DriverBinding.h +++ b/MdePkg/Include/Protocol/DriverBinding.h @@ -18,7 +18,6 @@ #ifndef __EFI_DRIVER_BINDING_H__ #define __EFI_DRIVER_BINDING_H__ -#include #include /// /// Global ID for the ControllerHandle Driver Protocol @@ -31,7 +30,12 @@ typedef struct _EFI_DRIVER_BINDING_PROTOCOL EFI_DRIVER_BINDING_PROTOCOL; /** - Test to see if this driver supports ControllerHandle. + Test to see if this driver supports ControllerHandle. This service + is called by the EFI boot service ConnectController(). In + order to make drivers as small as possible, there are a few calling + restrictions for this service. ConnectController() must + follow these calling restrictions. If any other agent wishes to call + Supported() it must also follow these calling restrictions. @param This Protocol instance pointer. @param ControllerHandle Handle of device to test @@ -52,7 +56,12 @@ EFI_STATUS ); /** - Start this driver on ControllerHandle. + Start this driver on ControllerHandle. This service is called by the + EFI boot service ConnectController(). In order to make + drivers as small as possible, there are a few calling restrictions for + this service. ConnectController() must follow these + calling restrictions. If any other agent wishes to call Start() it + must also follow these calling restrictions. @param This Protocol instance pointer. @param ControllerHandle Handle of device to bind driver to @@ -73,8 +82,13 @@ EFI_STATUS ); /** - Stop this driver on ControllerHandle. - + Stop this driver on ControllerHandle. This service is called by the + EFI boot service DisconnectController(). In order to + make drivers as small as possible, there are a few calling + restrictions for this service. DisconnectController() + must follow these calling restrictions. If any other agent wishes + to call Stop() it must also follow these calling restrictions. + @param This Protocol instance pointer. @param ControllerHandle Handle of device to stop driver on @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of @@ -101,63 +115,40 @@ EFI_STATUS @par Protocol Description: This protocol provides the services required to determine if a driver supports a given controller. If a controller is supported, then it also provides routines to start and stop the controller. - - @param Supported - Tests to see if this driver supports a given controller. This service - is called by the EFI boot service ConnectController(). In - order to make drivers as small as possible, there are a few calling - restrictions for this service. ConnectController() must - follow these calling restrictions. If any other agent wishes to call - Supported() it must also follow these calling restrictions. - - - @param Start - Starts a controller using this driver. This service is called by the - EFI boot service ConnectController(). In order to make - drivers as small as possible, there are a few calling restrictions for - this service. ConnectController() must follow these - calling restrictions. If any other agent wishes to call Start() it - must also follow these calling restrictions. - - @param Stop - Stops a controller using this driver. This service is called by the - EFI boot service DisconnectController(). In order to - make drivers as small as possible, there are a few calling - restrictions for this service. DisconnectController() - must follow these calling restrictions. If any other agent wishes - to call Stop() it must also follow these calling restrictions. - - @param Version - The version number of the UEFI driver that produced the - EFI_DRIVER_BINDING_PROTOCOL. This field is used by - the EFI boot service ConnectController() to determine - the order that driver's Supported() service will be used when - a controller needs to be started. EFI Driver Binding Protocol - instances with higher Version values will be used before ones - with lower Version values. The Version values of 0x0- - 0x0f and 0xfffffff0-0xffffffff are reserved for - platform/OEM specific drivers. The Version values of 0x10- - 0xffffffef are reserved for IHV-developed drivers. - - @param ImageHandle - The image handle of the UEFI driver that produced this instance - of the EFI_DRIVER_BINDING_PROTOCOL. - - @param DriverBindingHandle - The handle on which this instance of the - EFI_DRIVER_BINDING_PROTOCOL is installed. In most - cases, this is the same handle as ImageHandle. However, for - UEFI drivers that produce more than one instance of the - EFI_DRIVER_BINDING_PROTOCOL, this value may not be - the same as ImageHandle. - **/ struct _EFI_DRIVER_BINDING_PROTOCOL { EFI_DRIVER_BINDING_SUPPORTED Supported; EFI_DRIVER_BINDING_START Start; EFI_DRIVER_BINDING_STOP Stop; + + /// + /// The version number of the UEFI driver that produced the + /// EFI_DRIVER_BINDING_PROTOCOL. This field is used by + /// the EFI boot service ConnectController() to determine + /// the order that driver's Supported() service will be used when + /// a controller needs to be started. EFI Driver Binding Protocol + /// instances with higher Version values will be used before ones + /// with lower Version values. The Version values of 0x0- + /// 0x0f and 0xfffffff0-0xffffffff are reserved for + /// platform/OEM specific drivers. The Version values of 0x10- + /// 0xffffffef are reserved for IHV-developed drivers. + /// UINT32 Version; + + /// + /// The image handle of the UEFI driver that produced this instance + /// of the EFI_DRIVER_BINDING_PROTOCOL. + /// EFI_HANDLE ImageHandle; + + /// + /// The handle on which this instance of the + /// EFI_DRIVER_BINDING_PROTOCOL is installed. In most + /// cases, this is the same handle as ImageHandle. However, for + /// UEFI drivers that produce more than one instance of the + /// EFI_DRIVER_BINDING_PROTOCOL, this value may not be + /// the same as ImageHandle. + /// EFI_HANDLE DriverBindingHandle; };