From: "Edgar E. Iglesias" <edgar.igles...@xilinx.com> Allow name wildcards in qemu_fdt_node_path(). This is useful to find all nodes with a given compatibility string.
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Signed-off-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> Message-id: 20200423121114.4274-2-edgar.igles...@gmail.com Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> --- include/sysemu/device_tree.h | 3 +++ device_tree.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/sysemu/device_tree.h b/include/sysemu/device_tree.h index c16fd69bc0b..7c53ef76345 100644 --- a/include/sysemu/device_tree.h +++ b/include/sysemu/device_tree.h @@ -39,6 +39,9 @@ void *load_device_tree_from_sysfs(void); * NULL. If there is no error but no matching node was found, the * returned array contains a single element equal to NULL. If an error * was encountered when parsing the blob, the function returns NULL + * + * @name may be NULL to wildcard names and only match compatibility + * strings. */ char **qemu_fdt_node_path(void *fdt, const char *name, char *compat, Error **errp); diff --git a/device_tree.c b/device_tree.c index bba6cc21641..f5b4699aedb 100644 --- a/device_tree.c +++ b/device_tree.c @@ -308,7 +308,7 @@ char **qemu_fdt_node_path(void *fdt, const char *name, char *compat, offset = len; break; } - if (!strcmp(iter_name, name)) { + if (!name || !strcmp(iter_name, name)) { char *path; path = g_malloc(path_len); -- 2.20.1