qemu/util/qemu-print.c
<<
>>
Prefs
   1/*
   2 * Print to stream or current monitor
   3 *
   4 * Copyright (C) 2019 Red Hat Inc.
   5 *
   6 * Authors:
   7 *  Markus Armbruster <armbru@redhat.com>,
   8 *
   9 * This work is licensed under the terms of the GNU GPL, version 2 or later.
  10 * See the COPYING file in the top-level directory.
  11 */
  12
  13#include "qemu/osdep.h"
  14#include "monitor/monitor.h"
  15#include "qemu/qemu-print.h"
  16
  17/*
  18 * Print like vprintf().
  19 * Print to current monitor if we have one, else to stdout.
  20 */
  21int qemu_vprintf(const char *fmt, va_list ap)
  22{
  23    Monitor *cur_mon = monitor_cur();
  24    if (cur_mon) {
  25        return monitor_vprintf(cur_mon, fmt, ap);
  26    }
  27    return vprintf(fmt, ap);
  28}
  29
  30/*
  31 * Print like printf().
  32 * Print to current monitor if we have one, else to stdout.
  33 */
  34int qemu_printf(const char *fmt, ...)
  35{
  36    va_list ap;
  37    int ret;
  38
  39    va_start(ap, fmt);
  40    ret = qemu_vprintf(fmt, ap);
  41    va_end(ap);
  42    return ret;
  43}
  44
  45/*
  46 * Print like vfprintf()
  47 * Print to @stream if non-null, else to current monitor.
  48 */
  49int qemu_vfprintf(FILE *stream, const char *fmt, va_list ap)
  50{
  51    if (!stream) {
  52        return monitor_vprintf(monitor_cur(), fmt, ap);
  53    }
  54    return vfprintf(stream, fmt, ap);
  55}
  56
  57/*
  58 * Print like fprintf().
  59 * Print to @stream if non-null, else to current monitor.
  60 */
  61int qemu_fprintf(FILE *stream, const char *fmt, ...)
  62{
  63    va_list ap;
  64    int ret;
  65
  66    va_start(ap, fmt);
  67    ret = qemu_vfprintf(stream, fmt, ap);
  68    va_end(ap);
  69    return ret;
  70}
  71