diff options
author | Eric Auger <eric.auger@linaro.org> | 2016-02-19 09:42:30 -0700 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2016-02-19 09:42:30 -0700 |
commit | 78e24f235eda4d3313917a50e135b7e06a046407 (patch) | |
tree | fa3c17a66a41f2a8982e463d2225e1af40429ef5 /include | |
parent | 6d79566ae6592056bbba106e6544a5746c741f15 (diff) |
device_tree: qemu_fdt_getprop converted to use the error API
Current qemu_fdt_getprop exits if the property is not found. It is
sometimes needed to read an optional property, in which case we do
not wish to exit but simply returns a null value.
This patch converts qemu_fdt_getprop to accept an Error **, and existing
users are converted to pass &error_fatal. This preserves the existing
behaviour. Then to use the API with your optional semantic a null
parameter can be conveyed.
Signed-off-by: Eric Auger <eric.auger@linaro.org>
Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/sysemu/device_tree.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/sysemu/device_tree.h b/include/sysemu/device_tree.h index 552df2179b..48bf3b5ab1 100644 --- a/include/sysemu/device_tree.h +++ b/include/sysemu/device_tree.h @@ -54,8 +54,19 @@ int qemu_fdt_setprop_string(void *fdt, const char *node_path, int qemu_fdt_setprop_phandle(void *fdt, const char *node_path, const char *property, const char *target_node_path); +/** + * qemu_fdt_getprop: retrieve the value of a given property + * @fdt: pointer to the device tree blob + * @node_path: node path + * @property: name of the property to find + * @lenp: fdt error if any or length of the property on success + * @errp: handle to an error object + * + * returns a pointer to the property on success and NULL on failure + */ const void *qemu_fdt_getprop(void *fdt, const char *node_path, - const char *property, int *lenp); + const char *property, int *lenp, + Error **errp); uint32_t qemu_fdt_getprop_cell(void *fdt, const char *node_path, const char *property); uint32_t qemu_fdt_get_phandle(void *fdt, const char *path); |