[PATCH v2] libfdt: Add fdt_next_subnode() to permit easy subnode iteration
Jon Loeliger
jdl at jdl.com
Sun Apr 28 22:33:17 EST 2013
> On Fri, Apr 26, 2013 at 05:43:31AM -0700, Simon Glass wrote:
> > Iterating through subnodes with libfdt is a little painful to write as we
> > need something like this:
> >
> > for (depth = 0, count = 0,
> > offset = fdt_next_node(fdt, parent_offset, &depth);
> > (offset >= 0) && (depth > 0);
> > offset = fdt_next_node(fdt, offset, &depth)) {
> > if (depth == 1) {
> > /* code body */
> > }
> > }
> >
> > Using fdt_next_subnode() we can instead write this, which is shorter and
> > easier to get right:
> >
> > for (offset = fdt_first_subnode(fdt, parent_offset);
> > offset >= 0;
> > offset = fdt_next_subnode(fdt, offset)) {
> > /* code body */
> > }
> >
> > Also, it doesn't require two levels of indentation for the loop body.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
>
> Nice!
>
> Acked-by: David Gibson <david at gibson.dropbear.id.au>
>
> Jon, please apply.
Applied.
Thanks,
jdl
More information about the devicetree-discuss
mailing list