3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 EFI ControllerHandle Driver Protocol
24 #ifndef _EFI_DRIVER_BINDING_H_
25 #define _EFI_DRIVER_BINDING_H_
28 // Global ID for the ControllerHandle Driver Protocol
30 #define EFI_DRIVER_BINDING_PROTOCOL_GUID \
32 0x18a031ab, 0xb443, 0x4d1a, {0xa5, 0xc0, 0xc, 0x9, 0x26, 0x1e, 0x9f, 0x71} \
35 EFI_FORWARD_DECLARATION (EFI_DRIVER_BINDING_PROTOCOL
);
39 (EFIAPI
*EFI_DRIVER_BINDING_SUPPORTED
) (
40 IN EFI_DRIVER_BINDING_PROTOCOL
* This
,
41 IN EFI_HANDLE ControllerHandle
,
42 IN EFI_DEVICE_PATH_PROTOCOL
* RemainingDevicePath OPTIONAL
47 Test to see if this driver supports ControllerHandle.
50 This - Protocol instance pointer.
51 ControllerHandle - Handle of device to test
52 RemainingDevicePath - Optional parameter use to pick a specific child
56 EFI_SUCCESS - This driver supports this device
57 EFI_ALREADY_STARTED - This driver is already running on this device
58 other - This driver does not support this device
65 (EFIAPI
*EFI_DRIVER_BINDING_START
) (
66 IN EFI_DRIVER_BINDING_PROTOCOL
* This
,
67 IN EFI_HANDLE ControllerHandle
,
68 IN EFI_DEVICE_PATH_PROTOCOL
* RemainingDevicePath OPTIONAL
73 Start this driver on ControllerHandle.
76 This - Protocol instance pointer.
77 ControllerHandle - Handle of device to bind driver to
78 RemainingDevicePath - Optional parameter use to pick a specific child
82 EFI_SUCCESS - This driver is added to ControllerHandle
83 EFI_ALREADY_STARTED - This driver is already running on ControllerHandle
84 other - This driver does not support this device
91 (EFIAPI
*EFI_DRIVER_BINDING_STOP
) (
92 IN EFI_DRIVER_BINDING_PROTOCOL
* This
,
93 IN EFI_HANDLE ControllerHandle
,
94 IN UINTN NumberOfChildren
,
95 IN EFI_HANDLE
* ChildHandleBuffer
100 Stop this driver on ControllerHandle.
103 This - Protocol instance pointer.
104 ControllerHandle - Handle of device to stop driver on
105 NumberOfChildren - Number of Handles in ChildHandleBuffer. If number of
106 children is zero stop the entire bus driver.
107 ChildHandleBuffer - List of Child Handles to Stop.
110 EFI_SUCCESS - This driver is removed ControllerHandle
111 other - This driver was not removed from this device
117 // Interface structure for the ControllerHandle Driver Protocol
119 struct _EFI_DRIVER_BINDING_PROTOCOL
{
120 EFI_DRIVER_BINDING_SUPPORTED Supported
;
121 EFI_DRIVER_BINDING_START Start
;
122 EFI_DRIVER_BINDING_STOP Stop
;
124 EFI_HANDLE ImageHandle
;
125 EFI_HANDLE DriverBindingHandle
;
128 extern EFI_GUID gEfiDriverBindingProtocolGuid
;