summaryrefslogtreecommitdiffstats
path: root/include/efi/efi-device.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/efi/efi-device.h')
-rw-r--r--include/efi/efi-device.h33
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 */