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