summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShelley Chen <shchen@chromium.org>2017-11-14 10:37:17 -0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2018-01-25 01:18:44 +0000
commitf22bb8673a9475e2cf23dfa3d64a563651e30857 (patch)
treee0db3e0f1f449ed7f4e5cbf6b952065eb7f6dac8
parent0f1e9b68c6af3e53d854bdc0ea6635fbce9e922e (diff)
downloadvboot-f22bb8673a9475e2cf23dfa3d64a563651e30857.tar.gz
detachables: Define options menu
This menu will be used by any of the legacy screens. The idea is that when the user hits volume up/down, then they will enter this options menu, which will allow the user to change languages or show debug info. BUG=b:67371896, b:64400036 BRANCH=None TEST=None Change-Id: I31d3e312388b56613368276ec72e5c68ded2264e Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/770257 Commit-Ready: Benjamin Gordon <bmgordon@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> (cherry picked from commit 5f9b770d7a44e6011ebe1ec7b28692e4eab1c2b6) Reviewed-on: https://chromium-review.googlesource.com/885142
-rw-r--r--firmware/include/vboot_api.h2
-rw-r--r--firmware/lib/include/vboot_ui_menu_private.h9
-rw-r--r--firmware/lib/vboot_ui_menu.c12
3 files changed, 23 insertions, 0 deletions
diff --git a/firmware/include/vboot_api.h b/firmware/include/vboot_api.h
index 5edf0a6b..ba545d7e 100644
--- a/firmware/include/vboot_api.h
+++ b/firmware/include/vboot_api.h
@@ -765,6 +765,8 @@ enum VbScreenType_t {
VB_SCREEN_DEVELOPER_TO_NORM_MENU = 0x20e,
/* Detachable Menu - Languages */
VB_SCREEN_LANGUAGES_MENU = 0x20f,
+ /* Detachable Menu - Options */
+ VB_SCREEN_OPTIONS_MENU = 0x210,
};
/**
diff --git a/firmware/lib/include/vboot_ui_menu_private.h b/firmware/lib/include/vboot_ui_menu_private.h
index 7c6be490..f451a531 100644
--- a/firmware/lib/include/vboot_ui_menu_private.h
+++ b/firmware/lib/include/vboot_ui_menu_private.h
@@ -15,6 +15,7 @@ typedef enum _VB_MENU {
VB_MENU_RECOVERY,
VB_MENU_TO_DEV,
VB_MENU_LANGUAGES,
+ VB_MENU_OPTIONS,
VB_MENU_RECOVERY_INSERT,
VB_MENU_RECOVERY_NO_GOOD,
VB_MENU_RECOVERY_BROKEN,
@@ -74,6 +75,14 @@ typedef enum _VB_LANGUAGES_MENU {
VB_LANGUAGES_COUNT,
} VB_LANGUAGES_MENU;
+typedef enum _VB_OPTIONS_MENU {
+ VB_OPTIONS_CANCEL,
+ VB_OPTIONS_DBG_INFO,
+ VB_OPTIONS_POWER_OFF,
+ VB_OPTIONS_LANGUAGE,
+ VB_OPTIONS_COUNT,
+} VB_OPTIONS_MENU;
+
extern VB_MENU current_menu;
extern VB_MENU prev_menu;
extern int current_menu_idx;
diff --git a/firmware/lib/vboot_ui_menu.c b/firmware/lib/vboot_ui_menu.c
index 5ef7046e..00fb0b1a 100644
--- a/firmware/lib/vboot_ui_menu.c
+++ b/firmware/lib/vboot_ui_menu.c
@@ -146,6 +146,13 @@ static char *languages_menu[] = {
"US English\n",
};
+static char *options_menu[] = {
+ "Cancel\n",
+ "Show Debug Info\n",
+ "Power Off\n",
+ "Language\n"
+};
+
/**
* Get the string array and size of current_menu.
*
@@ -185,6 +192,10 @@ void vb2_get_current_menu_size(VB_MENU menu, char ***menu_array,
*size = VB_LANGUAGES_COUNT;
temp_menu = languages_menu;
break;
+ case VB_MENU_OPTIONS:
+ *size = VB_OPTIONS_COUNT;
+ temp_menu = options_menu;
+ break;
default:
*size = 0;
}
@@ -238,6 +249,7 @@ static const uint32_t VB_MENU_TO_SCREEN_MAP[] = {
VB_SCREEN_RECOVERY_MENU,
VB_SCREEN_RECOVERY_TO_DEV_MENU,
VB_SCREEN_LANGUAGES_MENU,
+ VB_SCREEN_OPTIONS_MENU,
VB_SCREEN_RECOVERY_INSERT,
VB_SCREEN_RECOVERY_NO_GOOD,
VB_SCREEN_OS_BROKEN,