X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=qemu-error.h;h=4d5c53700ed2981008220149ad2ef5d3e32b486b;hb=4bea41dbaa2eb3a57005bb3c4a4af2a55b9fcc21;hp=d90f1daec0f011e03cb6d9166716cc2d21b4a594;hpb=ba0fe87acd8937d403f60da63290aadb0b84827e;p=qemu.git diff --git a/qemu-error.h b/qemu-error.h index d90f1daec..4d5c53700 100644 --- a/qemu-error.h +++ b/qemu-error.h @@ -13,14 +13,28 @@ #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, ...) - __attribute__ ((format(printf, 4, 5))); +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; -#define qemu_error_new(fmt, ...) \ - qemu_error_internal(__FILE__, __LINE__, __func__, fmt, ## __VA_ARGS__) +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); #endif