mirror of
https://xff.cz/git/u-boot/
synced 2025-09-04 10:12:14 +02:00
eficonfig: refactor file selection handling
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@linaro.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
committed by
Heinrich Schuchardt
parent
a356b50fdf
commit
a84040ab46
@@ -756,13 +756,13 @@ 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
|
* @file_info: pointer to the file selection structure
|
||||||
* @root: pointer to the file handle
|
* @root: pointer to the file handle
|
||||||
* Return: status code
|
* Return: status code
|
||||||
*/
|
*/
|
||||||
static efi_status_t eficonfig_select_file(struct eficonfig_select_file_info *file_info,
|
static efi_status_t eficonfig_show_file_selection(struct eficonfig_select_file_info *file_info,
|
||||||
struct efi_file_handle *root)
|
struct efi_file_handle *root)
|
||||||
{
|
{
|
||||||
u32 count = 0, i;
|
u32 count = 0, i;
|
||||||
@@ -938,17 +938,6 @@ static efi_status_t eficonfig_boot_edit_save(void *data)
|
|||||||
return EFI_SUCCESS;
|
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
|
* 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},
|
{"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
|
* @file_info: pointer to the file information structure
|
||||||
* Return: status code
|
* 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;
|
efi_status_t ret;
|
||||||
struct efimenu *efi_menu;
|
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,
|
efi_menu = eficonfig_create_fixed_menu(select_file_menu_items,
|
||||||
ARRAY_SIZE(select_file_menu_items));
|
ARRAY_SIZE(select_file_menu_items));
|
||||||
if (!efi_menu)
|
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
|
* @data: pointer to the data
|
||||||
* Return: status code
|
* Return: status code
|
||||||
*/
|
*/
|
||||||
efi_status_t eficonfig_select_file_handler(void *data)
|
efi_status_t eficonfig_process_select_file(void *data)
|
||||||
{
|
{
|
||||||
size_t len;
|
size_t len;
|
||||||
efi_status_t ret;
|
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 *tmp = NULL;
|
||||||
struct eficonfig_select_file_info *file_info = data;
|
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));
|
tmp = calloc(1, sizeof(struct eficonfig_select_file_info));
|
||||||
if (!tmp)
|
if (!tmp)
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
@@ -1046,7 +1031,7 @@ efi_status_t eficonfig_select_file_handler(void *data)
|
|||||||
if (ret != EFI_SUCCESS)
|
if (ret != EFI_SUCCESS)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ret = eficonfig_select_file(tmp, root);
|
ret = eficonfig_show_file_selection(tmp, root);
|
||||||
if (ret == EFI_ABORTED)
|
if (ret == EFI_ABORTED)
|
||||||
continue;
|
continue;
|
||||||
if (ret != EFI_SUCCESS)
|
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);
|
utf8_utf16_strcpy(&p, devname);
|
||||||
u16_strlcat(file_name, file_info->current_path, len);
|
u16_strlcat(file_name, file_info->current_path, len);
|
||||||
ret = create_boot_option_entry(efi_menu, title, file_name,
|
ret = create_boot_option_entry(efi_menu, title, file_name,
|
||||||
eficonfig_select_file_handler, file_info);
|
eficonfig_process_show_file_option, file_info);
|
||||||
out:
|
out:
|
||||||
free(devname);
|
free(devname);
|
||||||
free(file_name);
|
free(file_name);
|
||||||
|
@@ -89,7 +89,7 @@ void eficonfig_print_msg(char *msg);
|
|||||||
void eficonfig_destroy(struct efimenu *efi_menu);
|
void eficonfig_destroy(struct efimenu *efi_menu);
|
||||||
efi_status_t eficonfig_process_quit(void *data);
|
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_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_status_t eficonfig_get_unused_bootoption(u16 *buf,
|
||||||
efi_uintn_t buf_size, u32 *index);
|
efi_uintn_t buf_size, u32 *index);
|
||||||
efi_status_t eficonfig_append_bootorder(u16 index);
|
efi_status_t eficonfig_append_bootorder(u16 index);
|
||||||
|
@@ -352,6 +352,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, 1, True, 'Quit')
|
||||||
press_up_down_enter_and_wait(0, 0, True, 'No block device found!')
|
press_up_down_enter_and_wait(0, 0, True, 'No block device found!')
|
||||||
press_escape_key(False)
|
press_escape_key(False)
|
||||||
|
press_escape_key(False)
|
||||||
check_current_is_maintenance_menu()
|
check_current_is_maintenance_menu()
|
||||||
# Return to U-Boot console
|
# Return to U-Boot console
|
||||||
press_escape_key(True)
|
press_escape_key(True)
|
||||||
|
Reference in New Issue
Block a user