vboot/ui: pass timer_disabled to vb2ex_display_ui()

Add an argument 'timer_disabled' to vb2ex_display_ui(), which will be
used when drawing dev mode screen to show the appropriate screen
descriptions.

BRANCH=none
BUG=b:146399181, b:157871585
TEST=make runtests
TEST=emerge-puff depthcharge

Cq-Depend: chromium:2236550
Change-Id: I48b46838f482bce612106b840476f5f941cc1166
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2241492
Reviewed-by: Joel Kitching <kitching@chromium.org>
This commit is contained in:
Yu-Ping Wu 2020-06-11 17:07:08 +08:00 committed by Commit Bot
parent 68de90c7e2
commit 59fd331bfc
4 changed files with 12 additions and 1 deletions

View File

@ -285,6 +285,7 @@ vb2_error_t ui_loop(struct vb2_context *ctx, enum vb2_screen root_screen_id,
{
struct vb2_ui_context ui;
struct vb2_screen_state prev_state;
int prev_disable_timer;
enum vb2_ui_error prev_error_code;
const struct vb2_menu *menu;
const struct vb2_screen_info *root_info;
@ -301,12 +302,15 @@ vb2_error_t ui_loop(struct vb2_context *ctx, enum vb2_screen root_screen_id,
if (rv != VB2_REQUEST_UI_CONTINUE)
return rv;
memset(&prev_state, 0, sizeof(prev_state));
prev_disable_timer = 0;
prev_error_code = VB2_UI_ERROR_NONE;
while (1) {
/* Draw if there are state changes. */
if (memcmp(&prev_state, ui.state, sizeof(*ui.state)) ||
/* we want to redraw/beep on a transition */
/* We want to redraw when timer is disabled. */
prev_disable_timer != ui.disable_timer ||
/* We want to redraw/beep on a transition. */
prev_error_code != ui.error_code) {
menu = get_menu(&ui);
@ -318,6 +322,7 @@ vb2_error_t ui_loop(struct vb2_context *ctx, enum vb2_screen root_screen_id,
vb2ex_display_ui(ui.state->screen->id, ui.locale_id,
ui.state->selected_item,
ui.state->disabled_item_mask,
ui.disable_timer,
ui.error_code);
/*
* Only beep if we're transitioning from no
@ -329,6 +334,7 @@ vb2_error_t ui_loop(struct vb2_context *ctx, enum vb2_screen root_screen_id,
/* Update prev variables. */
memcpy(&prev_state, ui.state, sizeof(*ui.state));
prev_disable_timer = ui.disable_timer;
prev_error_code = ui.error_code;
}

View File

@ -1256,6 +1256,8 @@ enum vb2_ui_error {
* 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 timer_disabled Whether timer is disabled or not. Some screen
* descriptions will depend on this value.
* @param error_code Error code if an error occurred.
* @return VB2_SUCCESS, or error code on error.
*/
@ -1263,6 +1265,7 @@ vb2_error_t vb2ex_display_ui(enum vb2_screen screen,
uint32_t locale_id,
uint32_t selected_item,
uint32_t disabled_item_mask,
int timer_disabled,
enum vb2_ui_error error_code);
/**

View File

@ -386,6 +386,7 @@ vb2_error_t vb2ex_display_ui(enum vb2_screen screen,
uint32_t locale_id,
uint32_t selected_item,
uint32_t disabled_item_mask,
int timer_disabled,
enum vb2_ui_error error_code)
{
struct display_call displayed = (struct display_call){

View File

@ -326,6 +326,7 @@ vb2_error_t vb2ex_display_ui(enum vb2_screen screen,
uint32_t locale_id,
uint32_t selected_item,
uint32_t disabled_item_mask,
int timer_disabled,
enum vb2_ui_error error_code)
{
struct display_call displayed = (struct display_call){