From: Rob Herring <robherring2@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/7] menu: only timeout when menu is displayed
Date: Wed, 28 Mar 2012 10:51:32 -0500 [thread overview]
Message-ID: <1332949898-6502-2-git-send-email-robherring2@gmail.com> (raw)
In-Reply-To: <1332949898-6502-1-git-send-email-robherring2@gmail.com>
From: Rob Herring <rob.herring@calxeda.com>
Make the menu timeout apply only when prompt flag is set and after the
menu is displayed. This allows auto boot to work no matter whether prompt
is set or cleared. Use the default selection if the menu times out.
This also fixes the timeout value given to readline_into_buffer to be
seconds instead of 10th of seconds.
Old behavior:
if prompt
display menu and wait for choice
else
wait for timeout
if key pressed
display menu and wait for choice
else
exit command
New behavior:
if prompt
display menu
if key pressed
wait for choice
else
boot default entry on timeout
else
boot default entry
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
| 36 ++++--------------------------------
1 files changed, 4 insertions(+), 32 deletions(-)
--git a/common/menu.c b/common/menu.c
index aa16c9a..6b2a2db 100644
--- a/common/menu.c
+++ b/common/menu.c
@@ -171,32 +171,6 @@ static inline struct menu_item *menu_item_by_key(struct menu *m,
}
/*
- * Wait for the user to hit a key according to the timeout set for the menu.
- * Returns 1 if the user hit a key, or 0 if the timeout expired.
- */
-static inline int menu_interrupted(struct menu *m)
-{
- if (!m->timeout)
- return 0;
-
- if (abortboot(m->timeout/10))
- return 1;
-
- return 0;
-}
-
-/*
- * Checks whether or not the default menu item should be used without
- * prompting for a user choice. If the menu is set to always prompt, or the
- * user hits a key during the timeout period, return 0. Otherwise, return 1 to
- * indicate we should use the default menu item.
- */
-static inline int menu_use_default(struct menu *m)
-{
- return !m->prompt && !menu_interrupted(m);
-}
-
-/*
* Set *choice to point to the default item's data, if any default item was
* set, and returns 1. If no default item was set, returns -ENOENT.
*/
@@ -231,7 +205,7 @@ static inline int menu_interactive_choice(struct menu *m, void **choice)
menu_display(m);
readret = readline_into_buffer("Enter choice: ", cbuf,
- m->timeout);
+ m->timeout / 10);
if (readret >= 0) {
choice_item = menu_item_by_key(m, cbuf);
@@ -240,10 +214,8 @@ static inline int menu_interactive_choice(struct menu *m, void **choice)
printf("%s not found\n", cbuf);
m->timeout = 0;
}
- } else {
- puts("^C\n");
- return -EINTR;
- }
+ } else
+ return menu_default_choice(m, choice);
}
*choice = choice_item->data;
@@ -300,7 +272,7 @@ int menu_get_choice(struct menu *m, void **choice)
if (!m || !choice)
return -EINVAL;
- if (menu_use_default(m))
+ if (!m->prompt)
return menu_default_choice(m, choice);
return menu_interactive_choice(m, choice);
--
1.7.5.4
next prev parent reply other threads:[~2012-03-28 15:51 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-28 15:51 [U-Boot] [PATCH 0/7] PXE parsing fixes and local file support Rob Herring
2012-03-28 15:51 ` Rob Herring [this message]
2012-06-21 20:34 ` [U-Boot] [PATCH 1/7] menu: only timeout when menu is displayed Wolfgang Denk
2012-03-28 15:51 ` [U-Boot] [PATCH 2/7] pxe: support include files at top-level Rob Herring
2012-05-25 20:43 ` [U-Boot] [PATCH v2] " Rob Herring
2012-06-21 20:34 ` Wolfgang Denk
2012-03-28 15:51 ` [U-Boot] [PATCH 3/7] pxe: add support for label menu text Rob Herring
2012-06-21 20:34 ` Wolfgang Denk
2012-03-28 15:51 ` [U-Boot] [PATCH 4/7] pxe: support linux entries for labels Rob Herring
2012-06-21 20:35 ` Wolfgang Denk
2012-03-28 15:51 ` [U-Boot] [PATCH 5/7] pxe: support absolute paths Rob Herring
2012-06-21 20:35 ` Wolfgang Denk
2012-03-28 15:51 ` [U-Boot] [PATCH 6/7] pxe: parse initrd file from append string Rob Herring
2012-06-21 20:35 ` Wolfgang Denk
2012-03-28 15:51 ` [U-Boot] [PATCH 7/7] pxe: add support for parsing local syslinux files Rob Herring
2012-05-23 22:11 ` Joe Hershberger
2012-05-23 22:57 ` Rob Herring
2012-05-23 23:02 ` Joe Hershberger
2012-05-25 18:56 ` Joe Hershberger
2012-05-25 20:47 ` [U-Boot] [PATCH v2] " Rob Herring
2012-05-25 21:44 ` Joe Hershberger
2012-06-21 20:36 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1332949898-6502-2-git-send-email-robherring2@gmail.com \
--to=robherring2@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox