On Tue, 2012-06-19 at 21:14 +0200, Alexander Graf wrote: > We have device tree helpers that allow us to create single cell (u32) > wide properties. However, when creating properties that contain an array of > cells, we need to jump through hoops, manually passing in an array with > converted endianness. > > To ease the pain of this, create a generic macro helper that allows us > to pass the cells as arguments. > > Signed-off-by: Alexander Graf <ag...@suse.de>
Reviewed-by: Peter Crosthwaite <peter.crosthwa...@petalogix.com> > --- > device_tree.h | 12 ++++++++++++ > 1 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/device_tree.h b/device_tree.h > index 4378685..1e671e2 100644 > --- a/device_tree.h > +++ b/device_tree.h > @@ -25,4 +25,16 @@ int qemu_devtree_setprop_string(void *fdt, const char > *node_path, > int qemu_devtree_nop_node(void *fdt, const char *node_path); > int qemu_devtree_add_subnode(void *fdt, const char *name); > > +#define qemu_devtree_setprop_cells(fdt, node_path, property, ...) > \ > + do { > \ > + uint32_t qdt_tmp[] = { __VA_ARGS__ }; > \ > + int i; > \ > + > \ > + for (i = 0; i < ARRAY_SIZE(qdt_tmp); i++) { > \ > + qdt_tmp[i] = cpu_to_be32(qdt_tmp[i]); > \ > + } > \ > + qemu_devtree_setprop(fdt, node_path, property, qdt_tmp, > \ > + sizeof(qdt_tmp)); > \ > + } while (0) > + > #endif /* __DEVICE_TREE_H__ */