diff options
author | Simon Glass <sjg@chromium.org> | 2023-08-14 16:40:23 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-08-25 13:54:33 -0400 |
commit | f2eb6ad50a3e610897d6386bb3192c049dc6fd12 (patch) | |
tree | 5c612877dd3eb429dde125c5eba373f5f1cfa009 /boot/expo.c | |
parent | 34ecba1f7616b388ee28490e8a3ed43fb1463011 (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.c | 15 |
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; +} |