|
|
|
@ -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" |
|
|
|
|
|
|
|
void qemu_error(const char *fmt, ...) |
|
|
|
/*
|
|
|
|
* 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) |
|
|
|
{ |
|
|
|
va_list args; |
|
|
|
|
|
|
|
va_start(args, fmt); |
|
|
|
if (cur_mon) { |
|
|
|
monitor_vprintf(cur_mon, fmt, args); |
|
|
|
monitor_vprintf(cur_mon, fmt, ap); |
|
|
|
} else { |
|
|
|
vfprintf(stderr, fmt, args); |
|
|
|
vfprintf(stderr, fmt, ap); |
|
|
|
} |
|
|
|
va_end(args); |
|
|
|
} |
|
|
|
|
|
|
|
/*
|
|
|
|
* 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 ap; |
|
|
|
|
|
|
|
va_start(ap, fmt); |
|
|
|
error_vprintf(fmt, ap); |
|
|
|
va_end(ap); |
|
|
|
} |
|
|
|
|
|
|
|
void qemu_error_internal(const char *file, int linenr, const char *func, |
|
|
|
|