X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=qemu-error.h;h=c902cc10de96fc4a3ae721e1a2de271d3595972f;hb=14cccb618508a0aa70eb9ccf366703a019a45ff0;hp=5b05371fcfcd4e90f0ef22b78ec17f58c2b711ea;hpb=ab5b027ee645f26320379d1d80cd96fdc944ecb5;p=qemu.git diff --git a/qemu-error.h b/qemu-error.h index 5b05371fc..c902cc10d 100644 --- a/qemu-error.h +++ b/qemu-error.h @@ -13,14 +13,31 @@ #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 error_report(const char *fmt, ...) __attribute__ ((format(printf, 1, 2))); -void qerror_report_internal(const char *file, int linenr, const char *func, - const char *fmt, ...) - __attribute__ ((format(printf, 4, 5))); +#include -#define qerror_report(fmt, ...) \ - qerror_report_internal(__FILE__, __LINE__, __func__, fmt, ## __VA_ARGS__) +typedef struct Location { + /* all members are private to qemu-error.c */ + enum { LOC_NONE, LOC_CMDLINE, LOC_FILE } kind; + int num; + const void *ptr; + struct Location *prev; +} Location; + +Location *loc_push_restore(Location *loc); +Location *loc_push_none(Location *loc); +Location *loc_pop(Location *loc); +Location *loc_save(Location *loc); +void loc_restore(Location *loc); +void loc_set_none(void); +void loc_set_cmdline(char **argv, int idx, int cnt); +void loc_set_file(const char *fname, int lno); + +void error_vprintf(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); +void error_printf(const char *fmt, ...) GCC_FMT_ATTR(1, 2); +void error_printf_unless_qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2); +void error_print_loc(void); +void error_set_progname(const char *argv0); +void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); +const char *error_get_progname(void); #endif