menu: Update bootmenu_autoboot_loop() to return the code

Use the return value to save having to pass around a pointer. This also
resolves any ambiguity about what *key contains when the function is
called.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2023-01-06 08:52:23 -06:00
committed by Tom Rini
parent 2da4a15e7e
commit 5712976b26
3 changed files with 13 additions and 12 deletions

View File

@@ -93,7 +93,7 @@ static char *bootmenu_choice_entry(void *data)
while (1) {
if (menu->delay >= 0) {
/* Autoboot was not stopped */
bootmenu_autoboot_loop(menu, &key, &esc);
key = bootmenu_autoboot_loop(menu, &esc);
} else {
/* Some key was pressed, so autoboot was stopped */
bootmenu_loop(menu, &key, &esc);

View File

@@ -425,9 +425,9 @@ int menu_destroy(struct menu *m)
return 1;
}
void bootmenu_autoboot_loop(struct bootmenu_data *menu,
enum bootmenu_key *key, int *esc)
enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu, int *esc)
{
enum bootmenu_key key = BKEY_NONE;
int i, c;
while (menu->delay > 0) {
@@ -446,16 +446,16 @@ void bootmenu_autoboot_loop(struct bootmenu_data *menu,
switch (c) {
case '\e':
*esc = 1;
*key = BKEY_NONE;
key = BKEY_NONE;
break;
case '\r':
*key = BKEY_SELECT;
key = BKEY_SELECT;
break;
case 0x3: /* ^C */
*key = BKEY_QUIT;
key = BKEY_QUIT;
break;
default:
*key = BKEY_NONE;
key = BKEY_NONE;
break;
}
@@ -471,7 +471,9 @@ void bootmenu_autoboot_loop(struct bootmenu_data *menu,
printf(ANSI_CURSOR_POSITION ANSI_CLEAR_LINE, menu->count + 5, 1);
if (menu->delay == 0)
*key = BKEY_SELECT;
key = BKEY_SELECT;
return key;
}
void bootmenu_loop(struct bootmenu_data *menu,

View File

@@ -65,14 +65,13 @@ enum bootmenu_key {
* indicating that the current option should be chosen.
*
* @menu: Menu being processed
* @key: Returns the code for the key the user pressed:
* @esc: Set to 1 if the escape key is pressed, otherwise not updated
* Returns: code for the key the user pressed:
* enter: KEY_SELECT
* Ctrl-C: KEY_QUIT
* anything else: KEY_NONE
* @esc: Set to 1 if the escape key is pressed, otherwise not updated
*/
void bootmenu_autoboot_loop(struct bootmenu_data *menu,
enum bootmenu_key *key, int *esc);
enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu, int *esc);
/**
* bootmenu_loop() - handle waiting for a keypress when autoboot is disabled