diff options
Diffstat (limited to 'include/efi/efi-device.h')
-rw-r--r-- | include/efi/efi-device.h | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/include/efi/efi-device.h b/include/efi/efi-device.h index 5ec59a8a2d..5d2110356f 100644 --- a/include/efi/efi-device.h +++ b/include/efi/efi-device.h @@ -1,8 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef __EFI_EFI_DEVICE_H #define __EFI_EFI_DEVICE_H +#include <efi/types.h> +#include <efi/efi-util.h> +#include <driver.h> +#include <efi/efi-init.h> + struct efi_device { - struct device_d dev; + struct device dev; efi_guid_t *guids; int num_guids; efi_handle_t handle; @@ -12,29 +18,26 @@ struct efi_device { }; struct efi_driver { - struct driver_d driver; + struct driver driver; int (*probe)(struct efi_device *efidev); void (*remove)(struct efi_device *efidev); + int (*dev_pause)(struct efi_device *efidev); + int (*dev_continue)(struct efi_device *efidev); efi_guid_t guid; }; extern struct bus_type efi_bus; -static inline struct efi_device *to_efi_device(struct device_d *dev) +static inline struct efi_device *to_efi_device(struct device *dev) { return container_of(dev, struct efi_device, dev); } -static inline struct efi_driver *to_efi_driver(struct driver_d *drv) +static inline struct efi_driver *to_efi_driver(struct driver *drv) { return container_of(drv, struct efi_driver, driver); } -#define device_efi_driver(drv) \ - register_driver_macro(device, efi, drv) - -#define fs_efi_driver(drv) \ - register_driver_macro(fs, efi, drv) static inline int efi_driver_register(struct efi_driver *efidrv) { efidrv->driver.bus = &efi_bus; @@ -45,6 +48,9 @@ int efi_connect_all(void); void efi_register_devices(void); struct efi_device *efi_get_bootsource(void); +void efi_pause_devices(void); +void efi_continue_devices(void); + static inline bool efi_device_has_guid(struct efi_device *efidev, efi_guid_t guid) { int i; @@ -57,4 +63,13 @@ static inline bool efi_device_has_guid(struct efi_device *efidev, efi_guid_t gui return false; } +enum efi_locate_search_type; + +int __efi_locate_handle(struct efi_boot_services *bs, + enum efi_locate_search_type search_type, + efi_guid_t *protocol, + void *search_key, + unsigned long *no_handles, + efi_handle_t **buffer); + #endif /* __EFI_EFI_DEVICE_H */ |