aboutsummaryrefslogtreecommitdiff
path: root/boot/expo.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-08-14 16:40:23 -0600
committerTom Rini <trini@konsulko.com>2023-08-25 13:54:33 -0400
commitf2eb6ad50a3e610897d6386bb3192c049dc6fd12 (patch)
tree5c612877dd3eb429dde125c5eba373f5f1cfa009 /boot/expo.c
parent34ecba1f7616b388ee28490e8a3ed43fb1463011 (diff)
expo: Provide a way to iterate through all scene objects
For some operations it is necessary to process all objects in an expo. Provide an iterator to handle this. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'boot/expo.c')
-rw-r--r--boot/expo.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/boot/expo.c b/boot/expo.c
index db837f7b49..139d684f8e 100644
--- a/boot/expo.c
+++ b/boot/expo.c
@@ -266,3 +266,18 @@ int expo_apply_theme(struct expo *exp, ofnode node)
return 0;
}
+
+int expo_iter_scene_objs(struct expo *exp, expo_scene_obj_iterator iter,
+ void *priv)
+{
+ struct scene *scn;
+ int ret;
+
+ list_for_each_entry(scn, &exp->scene_head, sibling) {
+ ret = scene_iter_objs(scn, iter, priv);
+ if (ret)
+ return log_msg_ret("wr", ret);
+ }
+
+ return 0;
+}