summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-01-06 08:52:26 -0600
committerTom Rini <trini@konsulko.com>2023-01-16 14:14:11 -0500
commit32bab0eae51b55898d1e2804e6614d9143840581 (patch)
tree67686cc8705aaf301695e8b66f50f613422b60b9 /include
parent86cc3c5215fc6e3c2cb77ee162c22ad91dbfaff5 (diff)
menu: Make use of CLI character processing
Avoid duplicating some of the escape-sequence processing here and use the CLI function instead. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/cli.h4
-rw-r--r--include/menu.h7
2 files changed, 8 insertions, 3 deletions
diff --git a/include/cli.h b/include/cli.h
index 863519e4b1..c777c90313 100644
--- a/include/cli.h
+++ b/include/cli.h
@@ -14,12 +14,14 @@
*
* @esc_len: Number of escape characters read so far
* @esc_save: Escape characters collected so far
- * @emit_upto: Next character to emit from esc_save (0 if not emitting)
+ * @emit_upto: Next index to emit from esc_save
+ * @emitting: true if emitting from esc_save
*/
struct cli_ch_state {
int esc_len;
char esc_save[8];
int emit_upto;
+ bool emitting;
};
/**
diff --git a/include/menu.h b/include/menu.h
index 8b9b36214f..3996075a33 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -6,6 +6,7 @@
#ifndef __MENU_H__
#define __MENU_H__
+struct cli_ch_state;
struct menu;
struct menu *menu_create(char *title, int timeout, int prompt,
@@ -71,7 +72,8 @@ enum bootmenu_key {
* Ctrl-C: KEY_QUIT
* anything else: KEY_NONE
*/
-enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu, int *esc);
+enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu,
+ struct cli_ch_state *cch);
/**
* bootmenu_loop() - handle waiting for a keypress when autoboot is disabled
@@ -96,6 +98,7 @@ enum bootmenu_key bootmenu_autoboot_loop(struct bootmenu_data *menu, int *esc);
* Minus: BKEY_MINUS
* Space: BKEY_SPACE
*/
-enum bootmenu_key bootmenu_loop(struct bootmenu_data *menu, int *esc);
+enum bootmenu_key bootmenu_loop(struct bootmenu_data *menu,
+ struct cli_ch_state *cch);
#endif /* __MENU_H__ */