error: New error_printf() and error_vprintf()

This commit is contained in:
Markus Armbruster 2010-02-18 17:14:17 +01:00
parent 2f7920166d
commit ba0fe87acd
2 changed files with 57 additions and 8 deletions

View File

@ -1,18 +1,53 @@
/*
* Error reporting
*
* Copyright (C) 2010 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 <stdio.h>
#include "monitor.h"
#include "sysemu.h"
/*
* Print to current monitor if we have one, else to stderr.
* TODO should return int, so callers can calculate width, but that
* requires surgery to monitor_vprintf(). Left for another day.
*/
void error_vprintf(const char *fmt, va_list ap)
{
if (cur_mon) {
monitor_vprintf(cur_mon, fmt, ap);
} else {
vfprintf(stderr, fmt, ap);
}
}
/*
* Print to current monitor if we have one, else to stderr.
* TODO just like error_vprintf()
*/
void error_printf(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
error_vprintf(fmt, ap);
va_end(ap);
}
void qemu_error(const char *fmt, ...)
{
va_list args;
va_list ap;
va_start(args, fmt);
if (cur_mon) {
monitor_vprintf(cur_mon, fmt, args);
} else {
vfprintf(stderr, fmt, args);
}
va_end(args);
va_start(ap, fmt);
error_vprintf(fmt, ap);
va_end(ap);
}
void qemu_error_internal(const char *file, int linenr, const char *func,

View File

@ -1,6 +1,20 @@
/*
* Error reporting
*
* Copyright (C) 2010 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.
*/
#ifndef QEMU_ERROR_H
#define QEMU_ERROR_H
void error_vprintf(const char *fmt, va_list ap);
void error_printf(const char *fmt, ...) __attribute__ ((format(printf, 1, 2)));
void qemu_error(const char *fmt, ...) __attribute__ ((format(printf, 1, 2)));
void qemu_error_internal(const char *file, int linenr, const char *func,
const char *fmt, ...)