On 18 August 2014 01:16, Thierry Reding <[email protected]> wrote:
> From: Thierry Reding <[email protected]>
>
> The fdt_for_each_subnode() iterator macro provided by this patch can be
> used to iterate over a device tree node's subnodes. At each iteration a
> loop variable will be set to the next subnode.
>
> Signed-off-by: Thierry Reding <[email protected]>

Acked-by: Simon Glass <[email protected]>

Will this go upstream to dtc at some point?

> ---
>  include/libfdt.h | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
>
> diff --git a/include/libfdt.h b/include/libfdt.h
> index 4d7fb2681669..0330d7a29a58 100644
> --- a/include/libfdt.h
> +++ b/include/libfdt.h
> @@ -163,6 +163,26 @@ int fdt_first_subnode(const void *fdt, int offset);
>   */
>  int fdt_next_subnode(const void *fdt, int offset);
>
> +/**
> + * fdt_for_each_subnode - iterate over all subnodes of a parent
> + *
> + * This is actually a wrapper around a for loop and would be used like so:
> + *
> + *     fdt_for_each_subnode(fdt, node, parent) {
> + *             ...
> + *             use node
> + *             ...
> + *     }
> + *
> + * @fdt:       FDT blob
> + * @node:      child node
> + * @parent:    parent node

It might be worth mentioning the type of each of these since it is not
in the macro.

> + */
> +#define fdt_for_each_subnode(fdt, node, parent)                \
> +       for (node = fdt_first_subnode(fdt, parent);     \
> +            node >= 0;                                 \
> +            node = fdt_next_subnode(fdt, node))
> +
>  /**********************************************************************/
>  /* General functions                                                  */
>  /**********************************************************************/
> --
> 2.0.4
>

Regards,
Simon
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to