1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef QEMU_ERROR_H
14#define QEMU_ERROR_H
15
16#include <stdarg.h>
17#include <stdbool.h>
18#include "qemu/compiler.h"
19
20typedef struct Location {
21
22 enum { LOC_NONE, LOC_CMDLINE, LOC_FILE } kind;
23 int num;
24 const void *ptr;
25 struct Location *prev;
26} Location;
27
28Location *loc_push_restore(Location *loc);
29Location *loc_push_none(Location *loc);
30Location *loc_pop(Location *loc);
31Location *loc_save(Location *loc);
32void loc_restore(Location *loc);
33void loc_set_none(void);
34void loc_set_cmdline(char **argv, int idx, int cnt);
35void loc_set_file(const char *fname, int lno);
36
37void error_vprintf(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0);
38void error_printf(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
39void error_printf_unless_qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
40void error_print_loc(void);
41void error_set_progname(const char *argv0);
42void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
43const char *error_get_progname(void);
44extern bool enable_timestamp_msg;
45
46#endif
47