mirror of https://gitee.com/openkylin/qemu.git
error: New error_printf() and error_vprintf()
This commit is contained in:
parent
2f7920166d
commit
ba0fe87acd
51
qemu-error.c
51
qemu-error.c
|
@ -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,
|
||||
|
|
14
qemu-error.h
14
qemu-error.h
|
@ -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, ...)
|
||||
|
|
Loading…
Reference in New Issue