1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * EFI application loader 4 * 5 * Copyright (c) 2017 Heinrich Schuchardt 6 */ 7 8#ifndef _EFI_DRIVER_H 9#define _EFI_DRIVER_H 1 10 11#include <efi_loader.h> 12 13/* 14 * Operations supported by an EFI driver with respect to the EFI uclass 15 * 16 * @protocol The GUID of the protocol which is consumed by the 17 * driver. This GUID is used by the EFI uclass in the 18 * supports() and start() methods of the 19 * EFI_DRIVER_BINDING_PROTOCOL. 20 * @child_protocol Protocol supported by the child handles generated by 21 * the EFI driver. 22 * @bind Function called by the EFI uclass to attach the 23 * driver to EFI driver to a handle. 24 */ 25struct efi_driver_ops { 26 const efi_guid_t *protocol; 27 const efi_guid_t *child_protocol; 28 int (*bind)(efi_handle_t handle, void *interface); 29}; 30 31/* 32 * This structure adds internal fields to the driver binding protocol. 33 */ 34struct efi_driver_binding_extended_protocol { 35 struct efi_driver_binding_protocol bp; 36 const struct efi_driver_ops *ops; 37}; 38 39#endif /* _EFI_DRIVER_H */ 40