]> code.delx.au - refind/blob - include/Handle.h
50dff48aa30d68332f58462c1f97616f39892e9a
[refind] / include / Handle.h
1 /*++
2
3 Copyright (c) 2005, Intel Corporation
4 All rights reserved. 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 Handle.h
15
16 Abstract:
17
18 Infomation about the handle function.
19
20 Revision History
21
22 --*/
23 #ifndef _HANDLE_H
24 #define _HANDLE_H
25
26 #include "libeg.h"
27
28 #define EFI_HANDLE_TYPE_UNKNOWN 0x000
29 #define EFI_HANDLE_TYPE_IMAGE_HANDLE 0x001
30 #define EFI_HANDLE_TYPE_DRIVER_BINDING_HANDLE 0x002
31 #define EFI_HANDLE_TYPE_DEVICE_DRIVER 0x004
32 #define EFI_HANDLE_TYPE_BUS_DRIVER 0x008
33 #define EFI_HANDLE_TYPE_DRIVER_CONFIGURATION_HANDLE 0x010
34 #define EFI_HANDLE_TYPE_DRIVER_DIAGNOSTICS_HANDLE 0x020
35 #define EFI_HANDLE_TYPE_COMPONENT_NAME_HANDLE 0x040
36 #define EFI_HANDLE_TYPE_DEVICE_HANDLE 0x080
37 #define EFI_HANDLE_TYPE_PARENT_HANDLE 0x100
38 #define EFI_HANDLE_TYPE_CONTROLLER_HANDLE 0x200
39 #define EFI_HANDLE_TYPE_CHILD_HANDLE 0x400
40
41 EFI_FILE_SYSTEM_INFO *
42 EfiLibFileSystemInfo (
43 IN EFI_FILE_HANDLE FHand
44 );
45
46 /*EFI_FILE_SYSTEM_VOLUME_LABEL_INFO *
47 LibFileSystemVolumeLabelInfo (
48 IN EFI_FILE_HANDLE FHand
49 );
50
51 EFI_STATUS
52 LibScanHandleDatabase (
53 EFI_HANDLE DriverBindingHandle, OPTIONAL
54 UINT32 *DriverBindingHandleIndex, OPTIONAL
55 EFI_HANDLE ControllerHandle, OPTIONAL
56 UINT32 *ControllerHandleIndex, OPTIONAL
57 UINTN *HandleCount,
58 EFI_HANDLE **HandleBuffer,
59 UINT32 **HandleType
60 );
61
62 EFI_STATUS
63 LibGetManagingDriverBindingHandles (
64 EFI_HANDLE ControllerHandle,
65 UINTN *DriverBindingHandleCount,
66 EFI_HANDLE **DriverBindingHandleBuffer
67 );
68
69 EFI_STATUS
70 LibGetParentControllerHandles (
71 EFI_HANDLE ControllerHandle,
72 UINTN *ParentControllerHandleCount,
73 EFI_HANDLE **ParentControllerHandleBuffer
74 );
75 */
76 EFI_STATUS
77 LibGetManagedChildControllerHandles (
78 EFI_HANDLE DriverBindingHandle,
79 EFI_HANDLE ControllerHandle,
80 UINTN *ChildControllerHandleCount,
81 EFI_HANDLE **ChildControllerHandleBuffer
82 );
83
84 EFI_STATUS
85 LibGetManagedControllerHandles (
86 EFI_HANDLE DriverBindingHandle,
87 UINTN *ControllerHandleCount,
88 EFI_HANDLE **ControllerHandleBuffer
89 );
90
91 EFI_STATUS
92 LibGetChildControllerHandles (
93 EFI_HANDLE ControllerHandle,
94 UINTN *HandleCount,
95 EFI_HANDLE **HandleBuffer
96 );
97
98 EFI_STATUS
99 LibInstallProtocolInterfaces (
100 IN OUT EFI_HANDLE *Handle,
101 ...
102 );
103
104 VOID
105 LibUninstallProtocolInterfaces (
106 IN EFI_HANDLE Handle,
107 ...
108 );
109
110 EFI_STATUS
111 LibReinstallProtocolInterfaces (
112 IN OUT EFI_HANDLE *Handle,
113 ...
114 );
115
116 EFI_STATUS
117 LibLocateHandleByDiskSignature (
118 IN UINT8 MBRType,
119 IN UINT8 SignatureType,
120 IN VOID *Signature,
121 IN OUT UINTN *NoHandles,
122 OUT EFI_HANDLE **Buffer
123 );
124
125 EFI_STATUS
126 LibLocateHandle (
127 IN EFI_LOCATE_SEARCH_TYPE SearchType,
128 IN EFI_GUID * Protocol OPTIONAL,
129 IN VOID *SearchKey OPTIONAL,
130 IN OUT UINTN *NoHandles,
131 OUT EFI_HANDLE **Buffer
132 );
133
134 EFI_STATUS
135 LibLocateProtocol (
136 IN EFI_GUID *ProtocolGuid,
137 OUT VOID **Interface
138 );
139
140 EFI_HANDLE
141 ShellHandleFromIndex (
142 IN UINTN Value
143 );
144
145 UINTN
146 ShellHandleNoFromIndex (
147 IN UINTN Value
148 );
149
150 UINTN
151 ShellHandleToIndex (
152 IN EFI_HANDLE Handle
153 );
154
155 UINTN
156 ShellHandleNoFromStr (
157 IN CHAR16 *Str
158 );
159
160 UINTN
161 ShellGetHandleNum (
162 VOID
163 );
164
165 #endif