[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