]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Efi/Protocol/DriverBinding/DriverBinding.h
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Protocol / DriverBinding / DriverBinding.h
1 /*++
2
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
8
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.
11
12 Module Name:
13
14 DriverBinding.h
15
16 Abstract:
17
18 EFI ControllerHandle Driver Protocol
19
20 Revision History
21
22 --*/
23
24 #ifndef _EFI_DRIVER_BINDING_H_
25 #define _EFI_DRIVER_BINDING_H_
26
27 //
28 // Global ID for the ControllerHandle Driver Protocol
29 //
30 #define EFI_DRIVER_BINDING_PROTOCOL_GUID \
31 { \
32 0x18a031ab, 0xb443, 0x4d1a, {0xa5, 0xc0, 0xc, 0x9, 0x26, 0x1e, 0x9f, 0x71} \
33 }
34
35 EFI_FORWARD_DECLARATION (EFI_DRIVER_BINDING_PROTOCOL);
36
37 typedef
38 EFI_STATUS
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
43 )
44 /*++
45
46 Routine Description:
47 Test to see if this driver supports ControllerHandle.
48
49 Arguments:
50 This - Protocol instance pointer.
51 ControllerHandle - Handle of device to test
52 RemainingDevicePath - Optional parameter use to pick a specific child
53 device to start.
54
55 Returns:
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
59
60 --*/
61 ;
62
63 typedef
64 EFI_STATUS
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
69 )
70 /*++
71
72 Routine Description:
73 Start this driver on ControllerHandle.
74
75 Arguments:
76 This - Protocol instance pointer.
77 ControllerHandle - Handle of device to bind driver to
78 RemainingDevicePath - Optional parameter use to pick a specific child
79 device to start.
80
81 Returns:
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
85
86 --*/
87 ;
88
89 typedef
90 EFI_STATUS
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
96 )
97 /*++
98
99 Routine Description:
100 Stop this driver on ControllerHandle.
101
102 Arguments:
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.
108
109 Returns:
110 EFI_SUCCESS - This driver is removed ControllerHandle
111 other - This driver was not removed from this device
112
113 --*/
114 ;
115
116 //
117 // Interface structure for the ControllerHandle Driver Protocol
118 //
119 struct _EFI_DRIVER_BINDING_PROTOCOL {
120 EFI_DRIVER_BINDING_SUPPORTED Supported;
121 EFI_DRIVER_BINDING_START Start;
122 EFI_DRIVER_BINDING_STOP Stop;
123 UINT32 Version;
124 EFI_HANDLE ImageHandle;
125 EFI_HANDLE DriverBindingHandle;
126 };
127
128 extern EFI_GUID gEfiDriverBindingProtocolGuid;
129
130 #endif