On Thu, Jun 7, 2012 at 1:58 AM, Alexander Graf <ag...@suse.de> wrote: > On 06/06/2012 07:11 AM, Peter Crosthwaite wrote: >> >> On Wed, 2012-06-06 at 01:52 +0200, Alexander Graf wrote: >>> >>> This patch adds a helper to search for a node's phandle by its path. This >>> is especially useful when the phandle is part of an array, not just a >>> single >>> cell in which case qemu_devtree_setprop_phandle would be the easy choice. >>> >>> Signed-off-by: Alexander Graf<ag...@suse.de> >>> --- >>> device_tree.c | 16 +++++++++++++++- >>> device_tree.h | 1 + >>> 2 files changed, 16 insertions(+), 1 deletions(-) >>> >>> diff --git a/device_tree.c b/device_tree.c >>> index 6cbc5af..6745d17 100644 >>> --- a/device_tree.c >>> +++ b/device_tree.c >>> @@ -162,10 +162,24 @@ int qemu_devtree_setprop_string(void *fdt, const >>> char *node_path, >>> return r; >>> } >>> >>> +uint32_t qemu_devtree_get_phandle(void *fdt, const char *path) >>> +{ >>> + uint32_t r; >>> + >>> + r = fdt_get_phandle(fdt, findnode_nofail(fdt, path)); >>> + if (r<= 0) { >>> + fprintf(stderr, "%s: Couldn't get phandle for %s: %s\n", >>> __func__, >>> + path, fdt_strerror(r)); >>> + exit(1); >> >> Is it really this functions job to terminate qemu on fail? There may be >> scenarios where a node does not have a phandle where the client can >> handle that. Perhaps return -1 on error and the client has to check? > > > If it can, what's the point in not calling libfdt directly then? >
Its a very good question. If the point of this function is to fail of error though, perhaps it should have the _nofail suffix for clarity? > > Alex >