This reindents the code and introduces a switch statement, to prepare for adding F11 as a shortcut for network boot.
Signed-off-by: Paolo Bonzini pbonzini@redhat.com --- src/boot.c | 76 +++++++++++++++++++++++++++++++++----------------------------- 1 file modificato, 40 inserzioni(+), 36 rimozioni(-)
diff --git a/src/boot.c b/src/boot.c index 5101167..e3bdd7b 100644 --- a/src/boot.c +++ b/src/boot.c @@ -412,48 +412,52 @@ interactive_bootmenu(void) enable_bootsplash(); int scan_code = get_keystroke(menutime); disable_bootsplash(); - if (scan_code != 0x86) - /* not F12 */ - return; - - while (get_keystroke(0) >= 0) - ; + switch (scan_code) { + case 0x86: { // F12 + printf("Select boot device:\n\n"); + wait_threads();
- printf("Select boot device:\n\n"); - wait_threads(); + // Show menu items + struct bootentry_s *pos = BootList; + int maxmenu = 0; + while (pos) { + char desc[60]; + maxmenu++; + printf("%d. %s\n", maxmenu + , strtcpy(desc, pos->description, ARRAY_SIZE(desc))); + pos = pos->next; + }
- // Show menu items - struct bootentry_s *pos = BootList; - int maxmenu = 0; - while (pos) { - char desc[60]; - maxmenu++; - printf("%d. %s\n", maxmenu - , strtcpy(desc, pos->description, ARRAY_SIZE(desc))); - pos = pos->next; - } + // Get key press + while (get_keystroke(0) >= 0) + ;
- // Get key press - for (;;) { - scan_code = get_keystroke(1000); - if (scan_code >= 1 && scan_code <= maxmenu+1) + for (;;) { + scan_code = get_keystroke(1000); + if (scan_code >= 1 && scan_code <= maxmenu+1) + break; + } + printf("\n"); + if (scan_code == 0x01) + // ESC break; + + // Find entry and make top priority. + int choice = scan_code - 1; + struct bootentry_s **pprev = &BootList; + while (--choice) + pprev = &(*pprev)->next; + pos = *pprev; + *pprev = pos->next; + pos->next = BootList; + BootList = pos; + pos->priority = 0; + break; } - printf("\n"); - if (scan_code == 0x01) - // ESC - return;
- // Find entry and make top priority. - int choice = scan_code - 1; - struct bootentry_s **pprev = &BootList; - while (--choice) - pprev = &(*pprev)->next; - pos = *pprev; - *pprev = pos->next; - pos->next = BootList; - BootList = pos; - pos->priority = 0; + default: + break; + } }
// BEV (Boot Execution Vector) list