mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 22:49:02 +00:00
menu: don't bother going interactive with just one menu item
If there is only one menu item available, prompting user to enter choice makes little sense and just causes unnecessary boot delay. This change makes menu_get_choice return the only one item when there is no other choices. Signed-off-by: Leon Yu <leoyu@nvidia.com> Cc: Tom Warren <twarren@nvidia.com> Cc: Stephen Warren <swarren@nvidia.com> Cc: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
be683756f6
commit
dfaad8208f
1 changed files with 5 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2010-2011 Calxeda, Inc.
|
||||
* Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
|
@ -39,6 +40,7 @@ struct menu {
|
|||
char *(*item_choice)(void *);
|
||||
void *item_choice_data;
|
||||
struct list_head items;
|
||||
int item_cnt;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -271,7 +273,7 @@ int menu_get_choice(struct menu *m, void **choice)
|
|||
if (!m || !choice)
|
||||
return -EINVAL;
|
||||
|
||||
if (!m->prompt)
|
||||
if (!m->prompt || m->item_cnt == 1)
|
||||
return menu_default_choice(m, choice);
|
||||
|
||||
return menu_interactive_choice(m, choice);
|
||||
|
@ -323,6 +325,7 @@ int menu_item_add(struct menu *m, char *item_key, void *item_data)
|
|||
item->data = item_data;
|
||||
|
||||
list_add_tail(&item->list, &m->items);
|
||||
m->item_cnt++;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -374,6 +377,7 @@ struct menu *menu_create(char *title, int timeout, int prompt,
|
|||
m->item_data_print = item_data_print;
|
||||
m->item_choice = item_choice;
|
||||
m->item_choice_data = item_choice_data;
|
||||
m->item_cnt = 0;
|
||||
|
||||
if (title) {
|
||||
m->title = strdup(title);
|
||||
|
|
Loading…
Add table
Reference in a new issue