diff options
| author | David Woodhouse <dwmw@amazon.co.uk> | 2025-01-10 10:35:30 +0100 |
|---|---|---|
| committer | David Woodhouse <dwmw@amazon.co.uk> | 2025-01-15 17:05:56 +0000 |
| commit | e6cdeee95990a2c6f5d6873d3afb3c90518aed5c (patch) | |
| tree | db44b698144e1181efd198ae2c36ae728de8e6b2 /hw/xen/xen-bus-helper.c | |
| parent | 7433709a147706ad7d1956b15669279933d0f82b (diff) | |
| download | focaccia-qemu-e6cdeee95990a2c6f5d6873d3afb3c90518aed5c.tar.gz focaccia-qemu-e6cdeee95990a2c6f5d6873d3afb3c90518aed5c.zip | |
hw/xen: Add xs_node_read() helper function
This returns the full contents of the node, having created the node path from the printf-style format string provided in its arguments. This will save various callers from having to do so for themselves (and from using xs_node_scanf() with the non-portable %ms format string. Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> [remove double newline and constify trace parameters] Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
Diffstat (limited to 'hw/xen/xen-bus-helper.c')
| -rw-r--r-- | hw/xen/xen-bus-helper.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/hw/xen/xen-bus-helper.c b/hw/xen/xen-bus-helper.c index b2b2cc9c5d..22fd2f6c1a 100644 --- a/hw/xen/xen-bus-helper.c +++ b/hw/xen/xen-bus-helper.c @@ -142,6 +142,28 @@ int xs_node_scanf(struct qemu_xs_handle *h, xs_transaction_t tid, return rc; } +char *xs_node_read(struct qemu_xs_handle *h, xs_transaction_t tid, + unsigned int *len, Error **errp, + const char *path_fmt, ...) +{ + char *path, *value; + va_list ap; + + va_start(ap, path_fmt); + path = g_strdup_vprintf(path_fmt, ap); + va_end(ap); + + value = qemu_xen_xs_read(h, tid, path, len); + trace_xs_node_read(path, value); + if (!value) { + error_setg_errno(errp, errno, "failed to read from '%s'", path); + } + + g_free(path); + + return value; +} + struct qemu_xs_watch *xs_node_watch(struct qemu_xs_handle *h, const char *node, const char *key, xs_watch_fn fn, void *opaque, Error **errp) |