menu: Update bootmenu_autoboot_loop() to return the code
authorSimon Glass <sjg@chromium.org>
Fri, 6 Jan 2023 14:52:23 +0000 (08:52 -0600)
committerTom Rini <trini@konsulko.com>
Mon, 16 Jan 2023 19:14:11 +0000 (14:14 -0500)
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>
cmd/bootmenu.c
common/menu.c
include/menu.h

index 1a14e8a..086d041 100644 (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);
index a245c5a..bafc847 100644 (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,
index 29b4579..9f30a3c 100644 (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