root / qerror.h @ be40edcd
History | View | Annotate | Download (6.2 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 | 2a82d936 | Anthony Liguori | #include "error.h" |
19 | 9f9daf9a | Luiz Capitulino | #include <stdarg.h> |
20 | 9f9daf9a | Luiz Capitulino | |
21 | 9f9daf9a | Luiz Capitulino | typedef struct QErrorStringTable { |
22 | 9f9daf9a | Luiz Capitulino | const char *desc; |
23 | 9f9daf9a | Luiz Capitulino | const char *error_fmt; |
24 | 9f9daf9a | Luiz Capitulino | } QErrorStringTable; |
25 | 9f9daf9a | Luiz Capitulino | |
26 | 9f9daf9a | Luiz Capitulino | typedef struct QError { |
27 | 9f9daf9a | Luiz Capitulino | QObject_HEAD; |
28 | 9f9daf9a | Luiz Capitulino | QDict *error; |
29 | 827b0813 | Markus Armbruster | Location loc; |
30 | 9f9daf9a | Luiz Capitulino | int linenr;
|
31 | 9f9daf9a | Luiz Capitulino | const char *file; |
32 | 9f9daf9a | Luiz Capitulino | const char *func; |
33 | 9f9daf9a | Luiz Capitulino | const QErrorStringTable *entry;
|
34 | 9f9daf9a | Luiz Capitulino | } QError; |
35 | 9f9daf9a | Luiz Capitulino | |
36 | 9f9daf9a | Luiz Capitulino | QError *qerror_new(void);
|
37 | 9f9daf9a | Luiz Capitulino | QError *qerror_from_info(const char *file, int linenr, const char *func, |
38 | 8b7968f7 | Stefan Weil | const char *fmt, va_list *va) GCC_FMT_ATTR(4, 0); |
39 | 77e595e7 | Markus Armbruster | QString *qerror_human(const QError *qerror);
|
40 | 827b0813 | Markus Armbruster | void qerror_print(QError *qerror);
|
41 | 0167f772 | Markus Armbruster | void qerror_report_internal(const char *file, int linenr, const char *func, |
42 | e5924d89 | Stefan Weil | const char *fmt, ...) GCC_FMT_ATTR(4, 5); |
43 | 2a82d936 | Anthony Liguori | void qerror_report_err(Error *err);
|
44 | 87c2f591 | Luiz Capitulino | QString *qerror_format(const char *fmt, QDict *error); |
45 | 0167f772 | Markus Armbruster | #define qerror_report(fmt, ...) \
|
46 | 0167f772 | Markus Armbruster | qerror_report_internal(__FILE__, __LINE__, __func__, fmt, ## __VA_ARGS__) |
47 | 9f9daf9a | Luiz Capitulino | QError *qobject_to_qerror(const QObject *obj);
|
48 | 9f9daf9a | Luiz Capitulino | |
49 | 9f9daf9a | Luiz Capitulino | /*
|
50 | 9f9daf9a | Luiz Capitulino | * QError class list
|
51 | 9d494c4b | Markus Armbruster | * Please keep the definitions in alphabetical order.
|
52 | 9d494c4b | Markus Armbruster | * Use "grep '^#define QERR_' qerror.h | sort -c" to check.
|
53 | 9f9daf9a | Luiz Capitulino | */
|
54 | 56e9f563 | Markus Armbruster | #define QERR_BAD_BUS_FOR_DEVICE \
|
55 | 56e9f563 | Markus Armbruster | "{ 'class': 'BadBusForDevice', 'data': { 'device': %s, 'bad_bus_type': %s } }"
|
56 | 56e9f563 | Markus Armbruster | |
57 | 7bbd8237 | Markus Armbruster | #define QERR_BUS_NOT_FOUND \
|
58 | 7bbd8237 | Markus Armbruster | "{ 'class': 'BusNotFound', 'data': { 'bus': %s } }"
|
59 | 7bbd8237 | Markus Armbruster | |
60 | 8eae73b5 | Markus Armbruster | #define QERR_BUS_NO_HOTPLUG \
|
61 | 8eae73b5 | Markus Armbruster | "{ 'class': 'BusNoHotplug', 'data': { 'bus': %s } }"
|
62 | 8eae73b5 | Markus Armbruster | |
63 | 4b9d4683 | Luiz Capitulino | #define QERR_COMMAND_NOT_FOUND \
|
64 | e16a1812 | Markus Armbruster | "{ 'class': 'CommandNotFound', 'data': { 'name': %s } }"
|
65 | 4b9d4683 | Luiz Capitulino | |
66 | 0df37c41 | Luiz Capitulino | #define QERR_DEVICE_ENCRYPTED \
|
67 | e16a1812 | Markus Armbruster | "{ 'class': 'DeviceEncrypted', 'data': { 'device': %s } }"
|
68 | 9f9daf9a | Luiz Capitulino | |
69 | 4d9a1a15 | Markus Armbruster | #define QERR_DEVICE_INIT_FAILED \
|
70 | 4d9a1a15 | Markus Armbruster | "{ 'class': 'DeviceInitFailed', 'data': { 'device': %s } }"
|
71 | 4d9a1a15 | Markus Armbruster | |
72 | 5124eb59 | Markus Armbruster | #define QERR_DEVICE_IN_USE \
|
73 | 5124eb59 | Markus Armbruster | "{ 'class': 'DeviceInUse', 'data': { 'device': %s } }"
|
74 | 5124eb59 | Markus Armbruster | |
75 | fc5469d8 | Markus Armbruster | #define QERR_DEVICE_LOCKED \
|
76 | b0868380 | Markus Armbruster | "{ 'class': 'DeviceLocked', 'data': { 'device': %s } }"
|
77 | b0868380 | Markus Armbruster | |
78 | 1ae78718 | Markus Armbruster | #define QERR_DEVICE_MULTIPLE_BUSSES \
|
79 | 1ae78718 | Markus Armbruster | "{ 'class': 'DeviceMultipleBusses', 'data': { 'device': %s } }"
|
80 | 1ae78718 | Markus Armbruster | |
81 | 055f6122 | Luiz Capitulino | #define QERR_DEVICE_NOT_ACTIVE \
|
82 | e16a1812 | Markus Armbruster | "{ 'class': 'DeviceNotActive', 'data': { 'device': %s } }"
|
83 | e16a1812 | Markus Armbruster | |
84 | 9d494c4b | Markus Armbruster | #define QERR_DEVICE_NOT_ENCRYPTED \
|
85 | 9d494c4b | Markus Armbruster | "{ 'class': 'DeviceNotEncrypted', 'data': { 'device': %s } }"
|
86 | 9d494c4b | Markus Armbruster | |
87 | e16a1812 | Markus Armbruster | #define QERR_DEVICE_NOT_FOUND \
|
88 | e16a1812 | Markus Armbruster | "{ 'class': 'DeviceNotFound', 'data': { 'device': %s } }"
|
89 | 055f6122 | Luiz Capitulino | |
90 | 5cfe0264 | Markus Armbruster | #define QERR_DEVICE_NOT_REMOVABLE \
|
91 | 5cfe0264 | Markus Armbruster | "{ 'class': 'DeviceNotRemovable', 'data': { 'device': %s } }"
|
92 | 5cfe0264 | Markus Armbruster | |
93 | 07574baf | Markus Armbruster | #define QERR_DEVICE_NO_BUS \
|
94 | 07574baf | Markus Armbruster | "{ 'class': 'DeviceNoBus', 'data': { 'device': %s } }"
|
95 | 07574baf | Markus Armbruster | |
96 | 180c22e1 | Gerd Hoffmann | #define QERR_DEVICE_NO_HOTPLUG \
|
97 | 180c22e1 | Gerd Hoffmann | "{ 'class': 'DeviceNoHotplug', 'data': { 'device': %s } }"
|
98 | 180c22e1 | Gerd Hoffmann | |
99 | 7bc84017 | Markus Armbruster | #define QERR_DUPLICATE_ID \
|
100 | 7bc84017 | Markus Armbruster | "{ 'class': 'DuplicateId', 'data': { 'id': %s, 'object': %s } }"
|
101 | 7bc84017 | Markus Armbruster | |
102 | c7c338c4 | Markus Armbruster | #define QERR_FD_NOT_FOUND \
|
103 | bd9d3064 | Markus Armbruster | "{ 'class': 'FdNotFound', 'data': { 'name': %s } }"
|
104 | c7c338c4 | Markus Armbruster | |
105 | 41471a23 | Markus Armbruster | #define QERR_FD_NOT_SUPPLIED \
|
106 | bd9d3064 | Markus Armbruster | "{ 'class': 'FdNotSupplied', 'data': {} }"
|
107 | 41471a23 | Markus Armbruster | |
108 | 17901e75 | Markus Armbruster | #define QERR_INVALID_BLOCK_FORMAT \
|
109 | 17901e75 | Markus Armbruster | "{ 'class': 'InvalidBlockFormat', 'data': { 'name': %s } }"
|
110 | 17901e75 | Markus Armbruster | |
111 | 7a046f5f | Markus Armbruster | #define QERR_INVALID_PARAMETER \
|
112 | bd9d3064 | Markus Armbruster | "{ 'class': 'InvalidParameter', 'data': { 'name': %s } }"
|
113 | 7a046f5f | Markus Armbruster | |
114 | 4b9d4683 | Luiz Capitulino | #define QERR_INVALID_PARAMETER_TYPE \
|
115 | e16a1812 | Markus Armbruster | "{ 'class': 'InvalidParameterType', 'data': { 'name': %s,'expected': %s } }"
|
116 | 4b9d4683 | Luiz Capitulino | |
117 | 985a3e52 | Markus Armbruster | #define QERR_INVALID_PARAMETER_VALUE \
|
118 | 985a3e52 | Markus Armbruster | "{ 'class': 'InvalidParameterValue', 'data': { 'name': %s, 'expected': %s } }"
|
119 | 985a3e52 | Markus Armbruster | |
120 | f6d855c5 | Luiz Capitulino | #define QERR_INVALID_PASSWORD \
|
121 | e16a1812 | Markus Armbruster | "{ 'class': 'InvalidPassword', 'data': {} }"
|
122 | e16a1812 | Markus Armbruster | |
123 | e16a1812 | Markus Armbruster | #define QERR_JSON_PARSING \
|
124 | e16a1812 | Markus Armbruster | "{ 'class': 'JSONParsing', 'data': {} }"
|
125 | f6d855c5 | Luiz Capitulino | |
126 | ef749d07 | Anthony Liguori | #define QERR_JSON_PARSE_ERROR \
|
127 | ef749d07 | Anthony Liguori | "{ 'class': 'JSONParseError', 'data': { 'message': %s } }"
|
128 | ef749d07 | Anthony Liguori | |
129 | c40cc0a0 | Michael Roth | #define QERR_BUFFER_OVERRUN \
|
130 | c40cc0a0 | Michael Roth | "{ 'class': 'BufferOverrun', 'data': {} }"
|
131 | c40cc0a0 | Michael Roth | |
132 | 82a60711 | Luiz Capitulino | #define QERR_KVM_MISSING_CAP \
|
133 | e16a1812 | Markus Armbruster | "{ 'class': 'KVMMissingCap', 'data': { 'capability': %s, 'feature': %s } }"
|
134 | 82a60711 | Luiz Capitulino | |
135 | 8e84865e | Amit Shah | #define QERR_MIGRATION_EXPECTED \
|
136 | 8e84865e | Amit Shah | "{ 'class': 'MigrationExpected', 'data': {} }"
|
137 | 8e84865e | Amit Shah | |
138 | 4b9d4683 | Luiz Capitulino | #define QERR_MISSING_PARAMETER \
|
139 | e16a1812 | Markus Armbruster | "{ 'class': 'MissingParameter', 'data': { 'name': %s } }"
|
140 | 4b9d4683 | Luiz Capitulino | |
141 | fab5767f | Markus Armbruster | #define QERR_NO_BUS_FOR_DEVICE \
|
142 | fab5767f | Markus Armbruster | "{ 'class': 'NoBusForDevice', 'data': { 'device': %s, 'bus': %s } }"
|
143 | fab5767f | Markus Armbruster | |
144 | fc5469d8 | Markus Armbruster | #define QERR_OPEN_FILE_FAILED \
|
145 | fc5469d8 | Markus Armbruster | "{ 'class': 'OpenFileFailed', 'data': { 'filename': %s } }"
|
146 | fc5469d8 | Markus Armbruster | |
147 | c58a35f8 | Markus Armbruster | #define QERR_PROPERTY_NOT_FOUND \
|
148 | c58a35f8 | Markus Armbruster | "{ 'class': 'PropertyNotFound', 'data': { 'device': %s, 'property': %s } }"
|
149 | c58a35f8 | Markus Armbruster | |
150 | 06b4a703 | Markus Armbruster | #define QERR_PROPERTY_VALUE_BAD \
|
151 | 06b4a703 | Markus Armbruster | "{ 'class': 'PropertyValueBad', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
|
152 | 06b4a703 | Markus Armbruster | |
153 | 9c5eff95 | Markus Armbruster | #define QERR_PROPERTY_VALUE_IN_USE \
|
154 | 9c5eff95 | Markus Armbruster | "{ 'class': 'PropertyValueInUse', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
|
155 | 9c5eff95 | Markus Armbruster | |
156 | 84745d68 | Markus Armbruster | #define QERR_PROPERTY_VALUE_NOT_FOUND \
|
157 | 84745d68 | Markus Armbruster | "{ 'class': 'PropertyValueNotFound', 'data': { 'device': %s, 'property': %s, 'value': %s } }"
|
158 | 84745d68 | Markus Armbruster | |
159 | 4b9d4683 | Luiz Capitulino | #define QERR_QMP_BAD_INPUT_OBJECT \
|
160 | e16a1812 | Markus Armbruster | "{ 'class': 'QMPBadInputObject', 'data': { 'expected': %s } }"
|
161 | 4b9d4683 | Luiz Capitulino | |
162 | 7dfb6123 | Luiz Capitulino | #define QERR_QMP_BAD_INPUT_OBJECT_MEMBER \
|
163 | 7dfb6123 | Luiz Capitulino | "{ 'class': 'QMPBadInputObjectMember', 'data': { 'member': %s, 'expected': %s } }"
|
164 | 7dfb6123 | Luiz Capitulino | |
165 | 60d76d7b | Luiz Capitulino | #define QERR_QMP_EXTRA_MEMBER \
|
166 | 60d76d7b | Luiz Capitulino | "{ 'class': 'QMPExtraInputObjectMember', 'data': { 'member': %s } }"
|
167 | 60d76d7b | Luiz Capitulino | |
168 | 6667b23f | Luiz Capitulino | #define QERR_RESET_REQUIRED \
|
169 | 6667b23f | Luiz Capitulino | "{ 'class': 'ResetRequired', 'data': {} }"
|
170 | 6667b23f | Luiz Capitulino | |
171 | 7a84cb23 | Markus Armbruster | #define QERR_SET_PASSWD_FAILED \
|
172 | 7a84cb23 | Markus Armbruster | "{ 'class': 'SetPasswdFailed', 'data': {} }"
|
173 | 7a84cb23 | Markus Armbruster | |
174 | 13661089 | Daniel P. Berrange | #define QERR_ADD_CLIENT_FAILED \
|
175 | 13661089 | Daniel P. Berrange | "{ 'class': 'AddClientFailed', 'data': {} }"
|
176 | 13661089 | Daniel P. Berrange | |
177 | a488be27 | Markus Armbruster | #define QERR_TOO_MANY_FILES \
|
178 | bd9d3064 | Markus Armbruster | "{ 'class': 'TooManyFiles', 'data': {} }"
|
179 | a488be27 | Markus Armbruster | |
180 | fc5469d8 | Markus Armbruster | #define QERR_UNDEFINED_ERROR \
|
181 | fc5469d8 | Markus Armbruster | "{ 'class': 'UndefinedError', 'data': {} }"
|
182 | fc5469d8 | Markus Armbruster | |
183 | 4c5a1e4d | Lai Jiangshan | #define QERR_UNSUPPORTED \
|
184 | 4c5a1e4d | Lai Jiangshan | "{ 'class': 'Unsupported', 'data': {} }"
|
185 | 4c5a1e4d | Lai Jiangshan | |
186 | f54e3641 | Kevin Wolf | #define QERR_UNKNOWN_BLOCK_FORMAT_FEATURE \
|
187 | f54e3641 | Kevin Wolf | "{ 'class': 'UnknownBlockFormatFeature', 'data': { 'device': %s, 'format': %s, 'feature': %s } }"
|
188 | f54e3641 | Kevin Wolf | |
189 | a6906e31 | Markus Armbruster | #define QERR_VNC_SERVER_FAILED \
|
190 | a6906e31 | Markus Armbruster | "{ 'class': 'VNCServerFailed', 'data': { 'target': %s } }"
|
191 | a6906e31 | Markus Armbruster | |
192 | 821601ea | Jes Sorensen | #define QERR_FEATURE_DISABLED \
|
193 | 821601ea | Jes Sorensen | "{ 'class': 'FeatureDisabled', 'data': { 'name': %s } }"
|
194 | 821601ea | Jes Sorensen | |
195 | e3d4d252 | Michael Roth | #define QERR_QGA_LOGGING_FAILED \
|
196 | e3d4d252 | Michael Roth | "{ 'class': 'QgaLoggingFailed', 'data': {} }"
|
197 | e3d4d252 | Michael Roth | |
198 | e3d4d252 | Michael Roth | #define QERR_QGA_COMMAND_FAILED \
|
199 | e3d4d252 | Michael Roth | "{ 'class': 'QgaCommandFailed', 'data': { 'message': %s } }"
|
200 | e3d4d252 | Michael Roth | |
201 | 9f9daf9a | Luiz Capitulino | #endif /* QERROR_H */ |