Skip to content
Snippets Groups Projects
Select Git revision
0 results

fdt.c

Blame
    • Simon Glass's avatar
      88f95bba
      libfdt: Add fdt_next_subnode() to permit easy subnode iteration · 88f95bba
      Simon Glass authored
      
      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: default avatarSimon Glass <sjg@chromium.org>
      (Cherry-picked from dtc commit 4e76ec79)
      Acked-by: default avatarGerald Van Baren <vanbaren@cideas.com>
      88f95bba
      History
      libfdt: Add fdt_next_subnode() to permit easy subnode iteration
      Simon Glass authored
      
      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: default avatarSimon Glass <sjg@chromium.org>
      (Cherry-picked from dtc commit 4e76ec79)
      Acked-by: default avatarGerald Van Baren <vanbaren@cideas.com>