Message ID | 20220416193034.538161-4-qemu@ben.fluff.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/4] device_tree: add qemu_fdt_setprop_reg64 helper | expand |
On Mon, Apr 18, 2022 at 7:14 AM Ben Dooks <qemu@ben.fluff.org> wrote: > > Add a helper to set a property from a set of strings > to reduce the following code: > > static const char * const clint_compat[2] = { > "sifive,clint0", "riscv,clint0" > }; > > qemu_fdt_setprop_string_array(fdt, nodename, "compatible", > (char **)&clint_compat, ARRAY_SIZE(clint_compat)); > > Signed-off-by: Ben Dooks <qemu@ben.fluff.org> > --- > include/sysemu/device_tree.h | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/include/sysemu/device_tree.h b/include/sysemu/device_tree.h > index 28352e7fcb..6ad09564d7 100644 > --- a/include/sysemu/device_tree.h > +++ b/include/sysemu/device_tree.h > @@ -87,6 +87,21 @@ int qemu_fdt_setprop_string(void *fdt, const char *node_path, > int qemu_fdt_setprop_string_array(void *fdt, const char *node_path, > const char *prop, char **array, int len); > > +/** > + * qemu_fdt_setprop_strings: set a property from a set of strings > + * > + * @fdt: pointer to the dt blob > + * @name: node name This should be path instead of name (or change prop to name) Alistair > + * @prop: property array > + */ > +#define qemu_fdt_setprop_strings(fdt, path, prop, ...) \ > + do { \ > + static const char * const __strs[] = { __VA_ARGS__ }; \ > + qemu_fdt_setprop_string_array(fdt, path, prop, \ > + (char **)&__strs, ARRAY_SIZE(__strs)); \ > + } while(0) > + > + > int qemu_fdt_setprop_phandle(void *fdt, const char *node_path, > const char *property, > const char *target_node_path); > -- > 2.35.1 > >
diff --git a/include/sysemu/device_tree.h b/include/sysemu/device_tree.h index 28352e7fcb..6ad09564d7 100644 --- a/include/sysemu/device_tree.h +++ b/include/sysemu/device_tree.h @@ -87,6 +87,21 @@ int qemu_fdt_setprop_string(void *fdt, const char *node_path, int qemu_fdt_setprop_string_array(void *fdt, const char *node_path, const char *prop, char **array, int len); +/** + * qemu_fdt_setprop_strings: set a property from a set of strings + * + * @fdt: pointer to the dt blob + * @name: node name + * @prop: property array + */ +#define qemu_fdt_setprop_strings(fdt, path, prop, ...) \ + do { \ + static const char * const __strs[] = { __VA_ARGS__ }; \ + qemu_fdt_setprop_string_array(fdt, path, prop, \ + (char **)&__strs, ARRAY_SIZE(__strs)); \ + } while(0) + + int qemu_fdt_setprop_phandle(void *fdt, const char *node_path, const char *property, const char *target_node_path);
Add a helper to set a property from a set of strings to reduce the following code: static const char * const clint_compat[2] = { "sifive,clint0", "riscv,clint0" }; qemu_fdt_setprop_string_array(fdt, nodename, "compatible", (char **)&clint_compat, ARRAY_SIZE(clint_compat)); Signed-off-by: Ben Dooks <qemu@ben.fluff.org> --- include/sysemu/device_tree.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+)