[PATCH v2 18/56] expo: Move cedit-state fields into expo
Simon Glass
sjg at chromium.org
Fri Mar 28 14:06:05 CET 2025
Move the boolean flags into struct expo so that the state can be
maintained over function calls.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
(no changes since v1)
boot/cedit.c | 17 ++++++++---------
include/expo.h | 4 ++++
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/boot/cedit.c b/boot/cedit.c
index 9baef39a0cd..3703538e5dc 100644
--- a/boot/cedit.c
+++ b/boot/cedit.c
@@ -154,7 +154,6 @@ int cedit_run(struct expo *exp)
struct video_priv *vid_priv;
uint scene_id;
struct scene *scn;
- bool done, save;
int ret;
ret = cedit_prepare(exp, &vid_priv, &scn);
@@ -162,8 +161,8 @@ int cedit_run(struct expo *exp)
return log_msg_ret("prep", ret);
scene_id = ret;
- done = false;
- save = false;
+ exp->done = false;
+ exp->save = false;
do {
struct expo_action act;
@@ -179,11 +178,11 @@ int cedit_run(struct expo *exp)
cedit_arange(exp, vid_priv, scene_id);
switch (scn->highlight_id) {
case EXPOID_SAVE:
- done = true;
- save = true;
+ exp->done = true;
+ exp->save = true;
break;
case EXPOID_DISCARD:
- done = true;
+ exp->done = true;
break;
}
break;
@@ -197,7 +196,7 @@ int cedit_run(struct expo *exp)
break;
case EXPOACT_QUIT:
log_debug("quitting\n");
- done = true;
+ exp->done = true;
break;
default:
break;
@@ -205,11 +204,11 @@ int cedit_run(struct expo *exp)
} else if (ret != -EAGAIN) {
LOGR("cep", ret);
}
- } while (!done);
+ } while (!exp->done);
if (ret)
return log_msg_ret("end", ret);
- if (!save)
+ if (!exp->save)
return -EACCES;
return 0;
diff --git a/include/expo.h b/include/expo.h
index 63452bbdd6a..f8d44c0ea20 100644
--- a/include/expo.h
+++ b/include/expo.h
@@ -105,6 +105,8 @@ struct expo_theme {
* @text_mode: true to use text mode for the menu (no vidconsole)
* @popup: true to use popup menus, instead of showing all items
* @priv: Private data for the controller
+ * @done: Indicates that a cedit session is complete and the user has quit
+ * @save: Indicates that cedit data should be saved, rather than discarded
* @theme: Information about fonts styles, etc.
* @scene_head: List of scenes
* @str_head: list of strings
@@ -120,6 +122,8 @@ struct expo {
bool text_mode;
bool popup;
void *priv;
+ bool done;
+ bool save;
struct expo_theme theme;
struct list_head scene_head;
struct list_head str_head;
--
2.43.0
More information about the U-Boot
mailing list