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: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
@@ -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 {
|
|||||||
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 {
|
|||||||
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user