diff options
author | Markus Armbruster <armbru@redhat.com> | 2019-04-17 21:06:37 +0200 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2019-04-18 22:18:59 +0200 |
commit | 637de4dba268395f7f2e58e40349468c5e17c060 (patch) | |
tree | 27d8099f419c2b8dd18d114899a1a6b4013d6253 /util | |
parent | 679cb8e1a1e5d10f44ac9e40fe1458cbfd720ebb (diff) |
qemu-print: New qemu_printf(), qemu_vprintf() etc.
We commonly want to print to the current monitor if we have one, else
to stdout/stderr. For stderr, have error_printf(). For stdout, all
we have is monitor_vfprintf(), which is rather unwieldy. We often
print to stderr just because error_printf() is easier.
New qemu_printf() and qemu_vprintf() do exactly what's needed. The
next commits will put them to use.
Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190417190641.26814-12-armbru@redhat.com>
Diffstat (limited to 'util')
-rw-r--r-- | util/Makefile.objs | 1 | ||||
-rw-r--r-- | util/qemu-print.c | 42 |
2 files changed, 43 insertions, 0 deletions
diff --git a/util/Makefile.objs b/util/Makefile.objs index 835fcd69e2..9206878dec 100644 --- a/util/Makefile.objs +++ b/util/Makefile.objs @@ -23,6 +23,7 @@ util-obj-y += bitmap.o bitops.o hbitmap.o util-obj-y += fifo8.o util-obj-y += cacheinfo.o util-obj-y += error.o qemu-error.o +util-obj-y += qemu-print.o util-obj-y += id.o util-obj-y += iov.o qemu-config.o qemu-sockets.o uri.o notify.o util-obj-y += qemu-option.o qemu-progress.o diff --git a/util/qemu-print.c b/util/qemu-print.c new file mode 100644 index 0000000000..86f9417af8 --- /dev/null +++ b/util/qemu-print.c @@ -0,0 +1,42 @@ +/* + * Print to stream or current monitor + * + * Copyright (C) 2019 Red Hat Inc. + * + * Authors: + * Markus Armbruster <armbru@redhat.com>, + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "monitor/monitor.h" +#include "qemu/qemu-print.h" + +/* + * Print like vprintf(). + * Print to current monitor if we have one, else to stdout. + */ +int qemu_vprintf(const char *fmt, va_list ap) +{ + if (cur_mon) { + return monitor_vprintf(cur_mon, fmt, ap); + } + return vprintf(fmt, ap); +} + +/* + * Print like printf(). + * Print to current monitor if we have one, else to stdout. + */ +int qemu_printf(const char *fmt, ...) +{ + va_list ap; + int ret; + + va_start(ap, fmt); + ret = qemu_vprintf(fmt, ap); + va_end(ap); + return ret; +} |