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__ */



Reply via email to