[RFC 03/14] efi_loader: export a couple of protocol related functions

Heinrich Schuchardt xypron.glpk at gmx.de
Tue Mar 17 08:19:33 CET 2020


  On 3/17/20 3:12 AM, AKASHI Takahiro wrote:
> This is a preparatory patch.
> Those functions will be used in an implementation of UEFI firmware
> management protocol as part of my capsule update patch.
>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>

Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>

> ---
>   include/efi_loader.h          | 14 ++++++++++++++
>   lib/efi_loader/efi_boottime.c | 16 ++++++++--------
>   2 files changed, 22 insertions(+), 8 deletions(-)
>
> diff --git a/include/efi_loader.h b/include/efi_loader.h
> index d4c59b54c48b..c55bade6a508 100644
> --- a/include/efi_loader.h
> +++ b/include/efi_loader.h
> @@ -456,6 +456,20 @@ efi_status_t efi_remove_all_protocols(const efi_handle_t handle);
>   /* Install multiple protocol interfaces */
>   efi_status_t EFIAPI efi_install_multiple_protocol_interfaces
>   				(efi_handle_t *handle, ...);
> +/* Get handles that support a given protocol */
> +efi_status_t EFIAPI efi_locate_handle_buffer(
> +			enum efi_locate_search_type search_type,
> +			const efi_guid_t *protocol, void *search_key,
> +			efi_uintn_t *no_handles, efi_handle_t **buffer);
> +/* Close an previously opened protocol interface */
> +efi_status_t EFIAPI efi_close_protocol(efi_handle_t handle,
> +				       const efi_guid_t *protocol,
> +				       efi_handle_t agent_handle,
> +				       efi_handle_t controller_handle);
> +/* Open a protocol interface */
> +efi_status_t EFIAPI efi_handle_protocol(efi_handle_t handle,
> +					const efi_guid_t *protocol,
> +					void **protocol_interface);
>   /* Call this to create an event */
>   efi_status_t efi_create_event(uint32_t type, efi_uintn_t notify_tpl,
>   			      void (EFIAPI *notify_function) (
> diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
> index 1f598b357a5c..9860d5047502 100644
> --- a/lib/efi_loader/efi_boottime.c
> +++ b/lib/efi_loader/efi_boottime.c
> @@ -2106,10 +2106,10 @@ static efi_status_t EFIAPI efi_set_watchdog_timer(unsigned long timeout,
>    *
>    * Return: status code
>    */
> -static efi_status_t EFIAPI efi_close_protocol(efi_handle_t handle,
> -					      const efi_guid_t *protocol,
> -					      efi_handle_t agent_handle,
> -					      efi_handle_t controller_handle)
> +efi_status_t EFIAPI efi_close_protocol(efi_handle_t handle,
> +				       const efi_guid_t *protocol,
> +				       efi_handle_t agent_handle,
> +				       efi_handle_t controller_handle)
>   {
>   	struct efi_handler *handler;
>   	struct efi_open_protocol_info_item *item;
> @@ -2282,7 +2282,7 @@ static efi_status_t EFIAPI efi_protocols_per_handle(
>    *
>    * Return: status code
>    */
> -static efi_status_t EFIAPI efi_locate_handle_buffer(
> +efi_status_t EFIAPI efi_locate_handle_buffer(
>   			enum efi_locate_search_type search_type,
>   			const efi_guid_t *protocol, void *search_key,
>   			efi_uintn_t *no_handles, efi_handle_t **buffer)
> @@ -3182,9 +3182,9 @@ out:
>    *
>    * Return: status code
>    */
> -static efi_status_t EFIAPI efi_handle_protocol(efi_handle_t handle,
> -					       const efi_guid_t *protocol,
> -					       void **protocol_interface)
> +efi_status_t EFIAPI efi_handle_protocol(efi_handle_t handle,
> +					const efi_guid_t *protocol,
> +					void **protocol_interface)
>   {
>   	return efi_open_protocol(handle, protocol, protocol_interface, efi_root,
>   				 NULL, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);
>



More information about the U-Boot mailing list