Commit abd26868 authored by Ard Biesheuvel's avatar Ard Biesheuvel

efi/libstub: Expose LocateDevicePath boot service

We will be adding support for loading the initrd from a GUIDed
device path in a subsequent patch, so update the prototype of
the LocateDevicePath() boot service to make it callable from
our code.
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent 91d150c0
...@@ -283,6 +283,9 @@ static inline void *efi64_zero_upper(void *p) ...@@ -283,6 +283,9 @@ static inline void *efi64_zero_upper(void *p)
#define __efi64_argmap_locate_protocol(protocol, reg, interface) \ #define __efi64_argmap_locate_protocol(protocol, reg, interface) \
((protocol), (reg), efi64_zero_upper(interface)) ((protocol), (reg), efi64_zero_upper(interface))
#define __efi64_argmap_locate_device_path(protocol, path, handle) \
((protocol), (path), efi64_zero_upper(handle))
/* PCI I/O */ /* PCI I/O */
#define __efi64_argmap_get_location(protocol, seg, bus, dev, func) \ #define __efi64_argmap_get_location(protocol, seg, bus, dev, func) \
((protocol), efi64_zero_upper(seg), efi64_zero_upper(bus), \ ((protocol), efi64_zero_upper(seg), efi64_zero_upper(bus), \
......
...@@ -100,6 +100,8 @@ struct efi_boot_memmap { ...@@ -100,6 +100,8 @@ struct efi_boot_memmap {
unsigned long *buff_size; unsigned long *buff_size;
}; };
typedef struct efi_generic_dev_path efi_device_path_protocol_t;
/* /*
* EFI Boot Services table * EFI Boot Services table
*/ */
...@@ -134,7 +136,9 @@ union efi_boot_services { ...@@ -134,7 +136,9 @@ union efi_boot_services {
efi_status_t (__efiapi *locate_handle)(int, efi_guid_t *, efi_status_t (__efiapi *locate_handle)(int, efi_guid_t *,
void *, unsigned long *, void *, unsigned long *,
efi_handle_t *); efi_handle_t *);
void *locate_device_path; efi_status_t (__efiapi *locate_device_path)(efi_guid_t *,
efi_device_path_protocol_t **,
efi_handle_t *);
efi_status_t (__efiapi *install_configuration_table)(efi_guid_t *, efi_status_t (__efiapi *install_configuration_table)(efi_guid_t *,
void *); void *);
void *load_image; void *load_image;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment