root / qerror.h @ f9188227
History | View | Annotate | Download (5.5 kB)
1 | 9f9daf9a | Luiz Capitulino | /*
|
---|---|---|---|
2 | 41836a9f | Luiz Capitulino | * QError Module
|
3 | 9f9daf9a | Luiz Capitulino | *
|
4 | 9f9daf9a | Luiz Capitulino | * Copyright (C) 2009 Red Hat Inc.
|
5 | 9f9daf9a | Luiz Capitulino | *
|
6 | 9f9daf9a | Luiz Capitulino | * Authors:
|
7 | 9f9daf9a | Luiz Capitulino | * Luiz Capitulino <lcapitulino@redhat.com>
|
8 | 9f9daf9a | Luiz Capitulino | *
|
9 | 9f9daf9a | Luiz Capitulino | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
|
10 | 9f9daf9a | Luiz Capitulino | * See the COPYING.LIB file in the top-level directory.
|
11 | 9f9daf9a | Luiz Capitulino | */
|
12 | 9f9daf9a | Luiz Capitulino | #ifndef QERROR_H
|
13 | 9f9daf9a | Luiz Capitulino | #define QERROR_H
|
14 | 9f9daf9a | Luiz Capitulino | |
15 | 9f9daf9a | Luiz Capitulino | #include "qdict.h" |
16 | 77e595e7 | Markus Armbruster | #include "qstring.h" |
17 | 827b0813 | Markus Armbruster | #include "qemu-error.h" |
18 | 9f9daf9a | Luiz Capitulino | #include <stdarg.h> |
19 | 9f9daf9a | Luiz Capitulino | |
20 | 9f9daf9a | Luiz Capitulino | typedef struct QErrorStringTable { |
21 | 9f9daf9a | Luiz Capitulino | const char *desc; |
22 | 9f9daf9a | Luiz Capitulino | const char *error_fmt; |
23 | 9f9daf9a | Luiz Capitulino | } QErrorStringTable; |
24 | 9f9daf9a | Luiz Capitulino | |
25 | 9f9daf9a | Luiz Capitulino | typedef struct QError { |
26 | 9f9daf9a | Luiz Capitulino | QObject_HEAD; |
27 | 9f9daf9a | Luiz Capitulino | QDict *error; |
28 | 827b0813 | Markus Armbruster | Location loc; |
29 | 9f9daf9a | Luiz Capitulino | int linenr;
|
30 | 9f9daf9a | Luiz Capitulino | const char *file; |
31 | 9f9daf9a | Luiz Capitulino | const char *func; |
32 | 9f9daf9a | Luiz Capitulino | const QErrorStringTable *entry;
|
33 | 9f9daf9a | Luiz Capitulino | } QError; |
34 | 9f9daf9a | Luiz Capitulino | |
35 | 9f9daf9a | Luiz Capitulino | QError *qerror_new(void);
|
36 | 9f9daf9a | Luiz Capitulino | QError *qerror_from_info(const char *file, int linenr, const char *func, |
37 | 8b7968f7 | Stefan Weil | const char *fmt, va_list *va) GCC_FMT_ATTR(4, 0); |
38 | 77e595e7 | Markus Armbruster | QString *qerror_human(const QError *qerror);
|
39 | 827b0813 | Markus Armbruster | void qerror_print(QError *qerror);
|
40 | 0167f772 | Markus Armbruster | void qerror_report_internal(const char *file, int linenr, const char *func, |
41 | e5924d89 | Stefan Weil | const char *fmt, ...) GCC_FMT_ATTR(4, 5); |
42 | 0167f772 | Markus Armbruster | #define qerror_report(fmt, ...) \
|
43 | 0167f772 | Markus Armbruster | qerror_report_internal(__FILE__, __LINE__, __func__, fmt, ## __VA_ARGS__) |
44 | 9f9daf9a | Luiz Capitulino | QError *qobject_to_qerror(const QObject *obj);
|
45 | 9f9daf9a | Luiz Capitulino | |
46 | 9f9daf9a | Luiz Capitulino | /*
|
47 | 9f9daf9a | Luiz Capitulino | * QError class list
|
48 | 9d494c4b | Markus Armbruster | * Please keep the definitions in alphabetical order.
|
49 | 9d494c4b | Markus Armbruster | * Use "grep '^#define QERR_' qerror.h | sort -c" to check.
|
50 | 9f9daf9a | Luiz Capitulino | */
|
51 | 56e9f563 | Markus Armbruster | #define QERR_BAD_BUS_FOR_DEVICE \
|
52 | 56e9f563 | Markus Armbruster | "{ 'class': 'BadBusForDevice', 'data': { 'device': %s, 'bad_bus_type': %s } }"
|
53 | 56e9f563 | Markus Armbruster | |
54 | 7bbd8237 | Markus Armbruster | #define QERR_BUS_NOT_FOUND \
|
55 | 7bbd8237 | Markus Armbruster | "{ 'class': 'BusNotFound', 'data': { 'bus': %s } }"
|
56 | 7bbd8237 | Markus Armbruster | |
57 | 8eae73b5 | Markus Armbruster | #define QERR_BUS_NO_HOTPLUG \
|
58 | 8eae73b5 | Markus Armbruster | "{ 'class': 'BusNoHotplug', 'data': { 'bus': %s } }"
|
59 | 8eae73b5 | Markus Armbruster | |
60 | 4b9d4683 | Luiz Capitulino | #define QERR_COMMAND_NOT_FOUND \
|
61 | e16a1812 | Markus Armbruster | "{ 'class': 'CommandNotFound', 'data': { 'name': %s } }"
|
62 | 4b9d4683 | Luiz Capitulino | |
63 | 0df37c41 | Luiz Capitulino | #define QERR_DEVICE_ENCRYPTED \
|
64 | e16a1812 | Markus Armbruster | "{ 'class': 'DeviceEncrypted', 'data': { 'device': %s } }"
|
65 | 9f9daf9a | Luiz Capitulino | |
66 | 4d9a1a15 | Markus Armbruster | #define QERR_DEVICE_INIT_FAILED \
|
67 | 4d9a1a15 | Markus Armbruster | "{ 'class': 'DeviceInitFailed', 'data': { 'device': %s } }"
|
68 | 4d9a1a15 | Markus Armbruster | |
69 | 5124eb59 | Markus Armbruster | #define QERR_DEVICE_IN_USE \
|
70 | 5124eb59 | Markus Armbruster | "{ 'class': 'DeviceInUse', 'data': { 'device': %s } }"
|
71 | 5124eb59 | Markus Armbruster | |
72 | fc5469d8 | Markus Armbruster | #define QERR_DEVICE_LOCKED \
|
73 | b0868380 | Markus Armbruster | "{ 'class': 'DeviceLocked', 'data': { 'device': %s } }"
|
74 | b0868380 | Markus Armbruster | |
75 | 1ae78718 | Markus Armbruster | #define QERR_DEVICE_MULTIPLE_BUSSES \
|
76 | 1ae78718 | Markus Armbruster | "{ 'class': 'DeviceMultipleBusses', 'data': { 'device': %s } }"
|
77 | 1ae78718 | Markus Armbruster | |
78 | 055f6122 | Luiz Capitulino | #define QERR_DEVICE_NOT_ACTIVE \
|
79 | e16a1812 | Markus Armbruster | "{ 'class': 'DeviceNotActive', 'data': { 'device': %s } }"
|
80 | e16a1812 | Markus Armbruster | |
81 | 9d494c4b | Markus Armbruster | #define QERR_DEVICE_NOT_ENCRYPTED \
|
82 | 9d494c4b | Markus Armbruster | "{ 'class': 'DeviceNotEncrypted', 'data': { 'device': %s } }"
|
83 | 9d494c4b | Markus Armbruster | |
84 | e16a1812 | Markus Armbruster | #define QERR_DEVICE_NOT_FOUND \
|
85 | e16a1812 | Markus Armbruster | "{ 'class': 'DeviceNotFound', 'data': { 'device': %s } }"
|
86 | 055f6122 | Luiz Capitulino | |
87 | 5cfe0264 | Markus Armbruster | #define QERR_DEVICE_NOT_REMOVABLE \
|
88 | 5cfe0264 | Markus Armbruster | "{ 'class': 'DeviceNotRemovable', 'data': { 'device': %s } }"
|
89 | 5cfe0264 | Markus Armbruster | |
90 | 07574baf | Markus Armbruster | #define QERR_DEVICE_NO_BUS \
|
91 | 07574baf | Markus Armbruster | "{ 'class': 'DeviceNoBus', 'data': { 'device': %s } }"
|
92 | 07574baf | Markus Armbruster | |
93 | 180c22e1 | Gerd Hoffmann | #define QERR_DEVICE_NO_HOTPLUG \
|
94 | 180c22e1 | Gerd Hoffmann | "{ 'class': 'DeviceNoHotplug', 'data': { 'device': %s } }"
|
95 | 180c22e1 | Gerd Hoffmann | |
96 | 7bc84017 | Markus Armbruster | #define QERR_DUPLICATE_ID \
|
97 | 7bc84017 | Markus Armbruster | "{ 'class': 'DuplicateId', 'data': { 'id': %s, 'object': %s } }"
|
98 | 7bc84017 | Markus Armbruster | |
99 | c7c338c4 | Markus Armbruster | #define QERR_FD_NOT_FOUND \
|
100 | bd9d3064 | Markus Armbruster | "{ 'class': 'FdNotFound', 'data': { 'name': %s } }"
|
101 | c7c338c4 | Markus Armbruster | |
102 | 41471a23 | Markus Armbruster | #define QERR_FD_NOT_SUPPLIED \
|
103 | bd9d3064 | Markus Armbruster | "{ 'class': 'FdNotSupplied', 'data': {} }"
|
104 | 41471a23 | Markus Armbruster | |
105 | 17901e75 | Markus Armbruster | #define QERR_INVALID_BLOCK_FORMAT \
|
106 | 17901e75 | Markus Armbruster | "{ 'class': 'InvalidBlockFormat', 'data': { 'name': %s } }"
|
107 | 17901e75 | Markus Armbruster | |
108 | 7a046f5f | Markus Armbruster | #define QERR_INVALID_PARAMETER \
|
109 | bd9d3064 | Markus Armbruster | "{ 'class': 'InvalidParameter', 'data': { 'name': %s } }"
|
110 | 7a046f5f | Markus Armbruster | |
111 | 4b9d4683 | Luiz Capitulino | #define QERR_INVALID_PARAMETER_TYPE \
|
112 | e16a1812 | Markus Armbruster | "{ 'class': 'InvalidParameterType', 'data': { 'name': %s,'expected': %s } }"
|
113 | 4b9d4683 | Luiz Capitulino | |
114 | 985a3e52 | Markus Armbruster | #define QERR_INVALID_PARAMETER_VALUE \
|
115 | 985a3e52 | Markus Armbruster | "{ 'class': 'InvalidParameterValue', 'data': { 'name': %s, 'expected': %s } }"
|
116 | 985a3e52 | Markus Armbruster | |
117 | f6d855c5 | Luiz Capitulino | #define QERR_INVALID_PASSWORD \
|
118 | e16a1812 | Markus Armbruster | "{ 'class': 'InvalidPassword', 'data': {} }"
|
119 | e16a1812 | Markus Armbruster | |
120 | e16a1812 | Markus Armbruster | #define QERR_JSON_PARSING \
|
121 | e16a1812 | Markus Armbruster | "{ 'class': 'JSONParsing', 'data': {} }"
|
122 | f6d855c5 | Luiz Capitulino | |
123 | 82a60711 | Luiz Capitulino | #define QERR_KVM_MISSING_CAP \
|
124 | e16a1812 | Markus Armbruster | "{ 'class': 'KVMMissingCap', 'data': { 'capability': %s, 'feature': %s } }"
|
125 | 82a60711 | Luiz Capitulino | |
126 | 8e84865e | Amit Shah | #define QERR_MIGRATION_EXPECTED \
|
127 | 8e84865e | Amit Shah | "{ 'class': 'MigrationExpected', 'data': {} }"
|
128 | 8e84865e | Amit Shah | |
129 | 4b9d4683 | Luiz Capitulino | #define QERR_MISSING_PARAMETER \
|
130 | e16a1812 | Markus Armbruster | "{ 'class': 'MissingParameter', 'data': { 'name': %s } }"
|
131 | 4b9d4683 | Luiz Capitulino | |
132 | fab5767f | Markus Armbruster | #define QERR_NO_BUS_FOR_DEVICE \
|
133 | fab5767f | Markus Armbruster | "{ 'class': 'NoBusForDevice', 'data': { 'device': %s, 'bus': %s } }"
|
134 | fab5767f | Markus Armbruster | |
135 | fc5469d8 | Markus Armbruster | #define QERR_OPEN_FILE_FAILED \
|
136 | fc5469d8 | Markus Armbruster | "{ 'class': 'OpenFileFailed', 'data': { 'filename': %s } }"
|
137 | fc5469d8 | Markus Armbruster | |
138 | c58a35f8 | Markus Armbruster | #define QERR_PROPERTY_NOT_FOUND \
|
139 | c58a35f8 | Markus Armbruster | "{ 'class': 'PropertyNotFound', 'data': { 'device': %s, 'property': %s } }"
|
140 | c58a35f8 | Markus Armbruster | |
141 | 06b4a703 | Markus Armbruster | #define QERR_PROPERTY_VALUE_BAD \
|
142 | 06b4a703 | Markus Armbruster | "{ 'class': 'PropertyValueBad', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
|
143 | 06b4a703 | Markus Armbruster | |
144 | 9c5eff95 | Markus Armbruster | #define QERR_PROPERTY_VALUE_IN_USE \
|
145 | 9c5eff95 | Markus Armbruster | "{ 'class': 'PropertyValueInUse', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
|
146 | 9c5eff95 | Markus Armbruster | |
147 | 84745d68 | Markus Armbruster | #define QERR_PROPERTY_VALUE_NOT_FOUND \
|
148 | 84745d68 | Markus Armbruster | "{ 'class': 'PropertyValueNotFound', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
|
149 | 84745d68 | Markus Armbruster | |
150 | 4b9d4683 | Luiz Capitulino | #define QERR_QMP_BAD_INPUT_OBJECT \
|
151 | e16a1812 | Markus Armbruster | "{ 'class': 'QMPBadInputObject', 'data': { 'expected': %s } }"
|
152 | 4b9d4683 | Luiz Capitulino | |
153 | 7dfb6123 | Luiz Capitulino | #define QERR_QMP_BAD_INPUT_OBJECT_MEMBER \
|
154 | 7dfb6123 | Luiz Capitulino | "{ 'class': 'QMPBadInputObjectMember', 'data': { 'member': %s, 'expected': %s } }"
|
155 | 7dfb6123 | Luiz Capitulino | |
156 | 60d76d7b | Luiz Capitulino | #define QERR_QMP_EXTRA_MEMBER \
|
157 | 60d76d7b | Luiz Capitulino | "{ 'class': 'QMPExtraInputObjectMember', 'data': { 'member': %s } }"
|
158 | 60d76d7b | Luiz Capitulino | |
159 | 7a84cb23 | Markus Armbruster | #define QERR_SET_PASSWD_FAILED \
|
160 | 7a84cb23 | Markus Armbruster | "{ 'class': 'SetPasswdFailed', 'data': {} }"
|
161 | 7a84cb23 | Markus Armbruster | |
162 | a488be27 | Markus Armbruster | #define QERR_TOO_MANY_FILES \
|
163 | bd9d3064 | Markus Armbruster | "{ 'class': 'TooManyFiles', 'data': {} }"
|
164 | a488be27 | Markus Armbruster | |
165 | fc5469d8 | Markus Armbruster | #define QERR_UNDEFINED_ERROR \
|
166 | fc5469d8 | Markus Armbruster | "{ 'class': 'UndefinedError', 'data': {} }"
|
167 | fc5469d8 | Markus Armbruster | |
168 | f54e3641 | Kevin Wolf | #define QERR_UNKNOWN_BLOCK_FORMAT_FEATURE \
|
169 | f54e3641 | Kevin Wolf | "{ 'class': 'UnknownBlockFormatFeature', 'data': { 'device': %s, 'format': %s, 'feature': %s } }"
|
170 | f54e3641 | Kevin Wolf | |
171 | a6906e31 | Markus Armbruster | #define QERR_VNC_SERVER_FAILED \
|
172 | a6906e31 | Markus Armbruster | "{ 'class': 'VNCServerFailed', 'data': { 'target': %s } }"
|
173 | a6906e31 | Markus Armbruster | |
174 | 821601ea | Jes Sorensen | #define QERR_FEATURE_DISABLED \
|
175 | 821601ea | Jes Sorensen | "{ 'class': 'FeatureDisabled', 'data': { 'name': %s } }"
|
176 | 821601ea | Jes Sorensen | |
177 | 9f9daf9a | Luiz Capitulino | #endif /* QERROR_H */ |