summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/2lib/2ui.c6
-rw-r--r--firmware/2lib/include/2api.h15
-rw-r--r--tests/vb2_ui_tests.c12
3 files changed, 23 insertions, 10 deletions
diff --git a/firmware/2lib/2ui.c b/firmware/2lib/2ui.c
index 25037c94..5b38e08a 100644
--- a/firmware/2lib/2ui.c
+++ b/firmware/2lib/2ui.c
@@ -22,7 +22,7 @@ vb2_error_t vb2_developer_menu(struct vb2_context *ctx)
enum vb2_dev_default_boot default_boot;
/* TODO(roccochen): Init, wait for user, and boot. */
- vb2ex_display_ui(VB2_SCREEN_BLANK, 0);
+ vb2ex_display_ui(VB2_SCREEN_BLANK, 0, 0, 0);
/* If dev mode was disabled, loop forever. */
if (!vb2_dev_boot_allowed(ctx))
@@ -48,7 +48,7 @@ vb2_error_t vb2_developer_menu(struct vb2_context *ctx)
vb2_error_t vb2_broken_recovery_menu(struct vb2_context *ctx)
{
/* TODO(roccochen): Init and wait for user to reset or shutdown. */
- vb2ex_display_ui(VB2_SCREEN_BLANK, 0);
+ vb2ex_display_ui(VB2_SCREEN_BLANK, 0, 0, 0);
while (1);
@@ -58,7 +58,7 @@ vb2_error_t vb2_broken_recovery_menu(struct vb2_context *ctx)
vb2_error_t vb2_manual_recovery_menu(struct vb2_context *ctx)
{
/* TODO(roccochen): Init and wait for user. */
- vb2ex_display_ui(VB2_SCREEN_BLANK, 0);
+ vb2ex_display_ui(VB2_SCREEN_BLANK, 0 ,0, 0);
while (1);
diff --git a/firmware/2lib/include/2api.h b/firmware/2lib/include/2api.h
index d75b9e4b..07a5718d 100644
--- a/firmware/2lib/include/2api.h
+++ b/firmware/2lib/include/2api.h
@@ -1172,16 +1172,25 @@ enum vb2_screen {
/* Blank screen */
VB2_SCREEN_BLANK = 0x0,
/* Wait screen for EC sync and AUXFW sync */
- VB2_SCREEN_FIRMWARE_SYNC = 0x10,
+ VB2_SCREEN_FIRMWARE_SYNC = 0x100,
+ /* First recovery screen to select recovering from disk or phone */
+ VB2_SCREEN_RECOVERY_SELECT = 0x200,
};
/**
* Display UI screen.
*
* @param screen Screen to display.
- * @param locale Locale.
+ * @param selected_item Index of the selected menu item. If the screen
+ * doesn't have a menu, this value will be ignored.
+ * @param disabled_item_mask Mask for disabled menu items. Bit (1 << idx)
+ * indicates whether item 'idx' is disabled.
+ * @param locale_id Id of current locale.
* @return VB2_SUCCESS, or error code on error.
*/
-vb2_error_t vb2ex_display_ui(enum vb2_screen screen, uint32_t locale);
+vb2_error_t vb2ex_display_ui(enum vb2_screen screen,
+ uint32_t locale_id,
+ uint32_t selected_item,
+ uint32_t disabled_item_mask);
#endif /* VBOOT_REFERENCE_2API_H_ */
diff --git a/tests/vb2_ui_tests.c b/tests/vb2_ui_tests.c
index eb7de299..bf9124bc 100644
--- a/tests/vb2_ui_tests.c
+++ b/tests/vb2_ui_tests.c
@@ -116,10 +116,13 @@ vb2_error_t VbTryLoadKernel(struct vb2_context *c, uint32_t get_info_flags)
return mock_vbtlk_retval[mock_vbtlk_count++];
}
-vb2_error_t vb2ex_display_ui(enum vb2_screen screen, uint32_t locale)
+vb2_error_t vb2ex_display_ui(enum vb2_screen screen,
+ uint32_t locale_id,
+ uint32_t selected_item,
+ uint32_t disabled_item_mask)
{
- VB2_DEBUG("screens %d: screen = %#x, locale = %u\n",
- mock_screens_count, screen, locale);
+ VB2_DEBUG("screens %d: screen = %#x, locale_id = %u\n",
+ mock_screens_count, screen, locale_id);
if (mock_screens_count >= ARRAY_SIZE(mock_screens_displayed) ||
mock_screens_count >= ARRAY_SIZE(mock_locales_displayed)) {
@@ -129,7 +132,8 @@ vb2_error_t vb2ex_display_ui(enum vb2_screen screen, uint32_t locale)
}
mock_screens_displayed[mock_screens_count] = screen;
- mock_locales_displayed[mock_screens_count] = locale;
+ mock_locales_displayed[mock_screens_count] = locale_id;
+ /* TODO(roccochen): handle the rest of two arguments */
mock_screens_count++;
return VB2_SUCCESS;