xref: /haiku/headers/private/kernel/platform/efi/protocol/driver-binding.h (revision 485b5cf8bc00ab5aaee5db81a91d135dc61d9cc3)
1*485b5cf8SAlexander von Gluck IV // Copyright 2016 The Fuchsia Authors. All rights reserved.
2*485b5cf8SAlexander von Gluck IV // Use of this source code is governed by a BSD-style license that can be
3*485b5cf8SAlexander von Gluck IV // found in the LICENSE file.
4*485b5cf8SAlexander von Gluck IV 
5*485b5cf8SAlexander von Gluck IV #pragma once
6*485b5cf8SAlexander von Gluck IV 
7*485b5cf8SAlexander von Gluck IV #include <efi/types.h>
8*485b5cf8SAlexander von Gluck IV #include <efi/protocol/device-path.h>
9*485b5cf8SAlexander von Gluck IV 
10*485b5cf8SAlexander von Gluck IV #define EFI_DRIVER_BINDING_PROTOCOL_GUID \
11*485b5cf8SAlexander von Gluck IV     {0x18a031ab, 0xb443, 0x4d1a, {0xa5, 0xc0, 0x0c, 0x09, 0x26, 0x1e, 0x9f, 0x71}}
12*485b5cf8SAlexander von Gluck IV extern efi_guid DriverBindingProtocol;
13*485b5cf8SAlexander von Gluck IV 
14*485b5cf8SAlexander von Gluck IV typedef struct efi_driver_binding_protocol {
15*485b5cf8SAlexander von Gluck IV     efi_status (*Supported) (struct efi_driver_binding_protocol* self,
16*485b5cf8SAlexander von Gluck IV                              efi_handle controller_handle,
17*485b5cf8SAlexander von Gluck IV                              efi_device_path_protocol* remaining_path) EFIAPI;
18*485b5cf8SAlexander von Gluck IV 
19*485b5cf8SAlexander von Gluck IV     efi_status (*Start) (struct efi_driver_binding_protocol* self,
20*485b5cf8SAlexander von Gluck IV                          efi_handle controller_handle,
21*485b5cf8SAlexander von Gluck IV                          efi_device_path_protocol* remaining_path) EFIAPI;
22*485b5cf8SAlexander von Gluck IV 
23*485b5cf8SAlexander von Gluck IV     efi_status (*Stop) (struct efi_driver_binding_protocol* self,
24*485b5cf8SAlexander von Gluck IV                         efi_handle controller_handle,
25*485b5cf8SAlexander von Gluck IV                         size_t num_children, efi_handle* child_handle_buf) EFIAPI;
26*485b5cf8SAlexander von Gluck IV 
27*485b5cf8SAlexander von Gluck IV     uint32_t Version;
28*485b5cf8SAlexander von Gluck IV     efi_handle ImageHandle;
29*485b5cf8SAlexander von Gluck IV     efi_handle DriverBindingHandle;
30*485b5cf8SAlexander von Gluck IV } efi_driver_binding_protocol;
31