[PATCH v7 1/5] eficonfig: refactor file selection handling

Ilias Apalodimas ilias.apalodimas at linaro.org
Wed Nov 9 15:50:06 CET 2022


On Wed, Nov 09, 2022 at 12:37:24PM +0900, Masahisa Kojima wrote:
> eficonfig_select_file_handler() is commonly used to select the
> file. eficonfig_display_select_file_option() adds an additional
> menu to clear the selected file.
> eficonfig_display_select_file_option() is not always necessary
> for the file selection process, so it must be outside of
> eficonfig_select_file_handler().
> 
> This commit also renames the following functions to avoid confusion.
>  eficonfig_select_file_handler() -> eficonfig_process_select_file()
>  eficonfig_select_file() -> eficonfig_show_file_selection()
>  eficonfig_display_select_file_option() -> eficonfig_process_show_file_option()
> 
> Finally, test_eficonfig.py need to be updated to get aligned with
> the above modification.
> 
> Signed-off-by: Masahisa Kojima <masahisa.kojima at linaro.org>
> ---
> Changes in v7:
> - rename functio name to avoid confusion
> - remove unused function
> - update commit message
> 
> newly created in v2
> 
>  cmd/eficonfig.c                               | 37 ++++++-------------
>  include/efi_config.h                          |  2 +-
>  .../py/tests/test_eficonfig/test_eficonfig.py |  1 +
>  3 files changed, 13 insertions(+), 27 deletions(-)
> 
> diff --git a/cmd/eficonfig.c b/cmd/eficonfig.c
> index 2595dd9563..571e2b9ac0 100644
> --- a/cmd/eficonfig.c
> +++ b/cmd/eficonfig.c
> @@ -756,14 +756,14 @@ out:
>  }
>  
>  /**
> - * eficonfig_select_file() - construct the file selection menu
> + * eficonfig_show_file_selection() - construct the file selection menu
>   *
>   * @file_info:	pointer to the file selection structure
>   * @root:	pointer to the file handle
>   * Return:	status code
>   */
> -static efi_status_t eficonfig_select_file(struct eficonfig_select_file_info *file_info,
> -					  struct efi_file_handle *root)
> +static efi_status_t eficonfig_show_file_selection(struct eficonfig_select_file_info *file_info,
> +						  struct efi_file_handle *root)
>  {
>  	u32 count = 0, i;
>  	efi_uintn_t len;
> @@ -938,17 +938,6 @@ static efi_status_t eficonfig_boot_edit_save(void *data)
>  	return EFI_SUCCESS;
>  }
>  
> -/**
> - * eficonfig_process_select_file() - callback function for "Select File" entry
> - *
> - * @data:	pointer to the data
> - * Return:	status code
> - */
> -efi_status_t eficonfig_process_select_file(void *data)
> -{
> -	return EFI_SUCCESS;
> -}
> -
>  /**
>   * eficonfig_process_clear_file_selection() - callback function for "Clear" entry
>   *
> @@ -973,19 +962,19 @@ static struct eficonfig_item select_file_menu_items[] = {
>  	{"Quit", eficonfig_process_quit},
>  };
>  
> -
>  /**
> - * eficonfig_display_select_file_option() - display select file option
> + * eficonfig_process_show_file_option() - display select file option
>   *
>   * @file_info:	pointer to the file information structure
>   * Return:	status code
>   */
> -efi_status_t eficonfig_display_select_file_option(struct eficonfig_select_file_info *file_info)
> +efi_status_t eficonfig_process_show_file_option(void *data)
>  {
>  	efi_status_t ret;
>  	struct efimenu *efi_menu;
>  
> -	select_file_menu_items[1].data = file_info;
> +	select_file_menu_items[0].data = data;
> +	select_file_menu_items[1].data = data;
>  	efi_menu = eficonfig_create_fixed_menu(select_file_menu_items,
>  					       ARRAY_SIZE(select_file_menu_items));
>  	if (!efi_menu)
> @@ -1001,12 +990,12 @@ efi_status_t eficonfig_display_select_file_option(struct eficonfig_select_file_i
>  }
>  
>  /**
> - * eficonfig_select_file_handler() - handle user file selection
> + * eficonfig_process_select_file() - handle user file selection
>   *
>   * @data:	pointer to the data
>   * Return:	status code
>   */
> -efi_status_t eficonfig_select_file_handler(void *data)
> +efi_status_t eficonfig_process_select_file(void *data)
>  {
>  	size_t len;
>  	efi_status_t ret;
> @@ -1016,10 +1005,6 @@ efi_status_t eficonfig_select_file_handler(void *data)
>  	struct eficonfig_select_file_info *tmp = NULL;
>  	struct eficonfig_select_file_info *file_info = data;
>  
> -	ret = eficonfig_display_select_file_option(file_info);
> -	if (ret != EFI_SUCCESS)
> -		return ret;
> -
>  	tmp = calloc(1, sizeof(struct eficonfig_select_file_info));
>  	if (!tmp)
>  		return EFI_OUT_OF_RESOURCES;
> @@ -1046,7 +1031,7 @@ efi_status_t eficonfig_select_file_handler(void *data)
>  		if (ret != EFI_SUCCESS)
>  			goto out;
>  
> -		ret = eficonfig_select_file(tmp, root);
> +		ret = eficonfig_show_file_selection(tmp, root);
>  		if (ret == EFI_ABORTED)
>  			continue;
>  		if (ret != EFI_SUCCESS)
> @@ -1284,7 +1269,7 @@ static efi_status_t prepare_file_selection_entry(struct efimenu *efi_menu, char
>  	utf8_utf16_strcpy(&p, devname);
>  	u16_strlcat(file_name, file_info->current_path, len);
>  	ret = create_boot_option_entry(efi_menu, title, file_name,
> -				       eficonfig_select_file_handler, file_info);
> +				       eficonfig_process_show_file_option, file_info);
>  out:
>  	free(devname);
>  	free(file_name);
> diff --git a/include/efi_config.h b/include/efi_config.h
> index 098cac2115..cc6aa51393 100644
> --- a/include/efi_config.h
> +++ b/include/efi_config.h
> @@ -89,7 +89,7 @@ void eficonfig_print_msg(char *msg);
>  void eficonfig_destroy(struct efimenu *efi_menu);
>  efi_status_t eficonfig_process_quit(void *data);
>  efi_status_t eficonfig_process_common(struct efimenu *efi_menu, char *menu_header);
> -efi_status_t eficonfig_select_file_handler(void *data);
> +efi_status_t eficonfig_process_select_file(void *data);
>  efi_status_t eficonfig_get_unused_bootoption(u16 *buf,
>  					     efi_uintn_t buf_size, u32 *index);
>  efi_status_t eficonfig_append_bootorder(u16 index);
> diff --git a/test/py/tests/test_eficonfig/test_eficonfig.py b/test/py/tests/test_eficonfig/test_eficonfig.py
> index 99606d9c4b..102bfd7541 100644
> --- a/test/py/tests/test_eficonfig/test_eficonfig.py
> +++ b/test/py/tests/test_eficonfig/test_eficonfig.py
> @@ -349,6 +349,7 @@ def test_efi_eficonfig(u_boot_console, efi_eficonfig_data):
>          press_up_down_enter_and_wait(0, 1, True, 'Quit')
>          press_up_down_enter_and_wait(0, 0, True, 'No block device found!')
>          press_escape_key(False)
> +        press_escape_key(False)
>          check_current_is_maintenance_menu()
>          # Return to U-Boot console
>          press_escape_key(True)
> -- 
> 2.17.1
> 

Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>



More information about the U-Boot mailing list