1 | /* AUTOMATICALLY GENERATED, DO NOT MODIFY */ |
2 | |
3 | /* |
4 | * Schema-defined QAPI visitors |
5 | * |
6 | * Copyright IBM, Corp. 2011 |
7 | * Copyright (C) 2014-2018 Red Hat, Inc. |
8 | * |
9 | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. |
10 | * See the COPYING.LIB file in the top-level directory. |
11 | */ |
12 | |
13 | #include "qemu/osdep.h" |
14 | #include "qapi/error.h" |
15 | #include "qapi/qmp/qerror.h" |
16 | #include "qapi-visit-block.h" |
17 | |
18 | void visit_type_BiosAtaTranslation(Visitor *v, const char *name, BiosAtaTranslation *obj, Error **errp) |
19 | { |
20 | int value = *obj; |
21 | visit_type_enum(v, name, &value, &BiosAtaTranslation_lookup, errp); |
22 | *obj = value; |
23 | } |
24 | |
25 | void visit_type_FloppyDriveType(Visitor *v, const char *name, FloppyDriveType *obj, Error **errp) |
26 | { |
27 | int value = *obj; |
28 | visit_type_enum(v, name, &value, &FloppyDriveType_lookup, errp); |
29 | *obj = value; |
30 | } |
31 | |
32 | void visit_type_BlockdevSnapshotInternal_members(Visitor *v, BlockdevSnapshotInternal *obj, Error **errp) |
33 | { |
34 | Error *err = NULL; |
35 | |
36 | visit_type_str(v, "device" , &obj->device, &err); |
37 | if (err) { |
38 | goto out; |
39 | } |
40 | visit_type_str(v, "name" , &obj->name, &err); |
41 | if (err) { |
42 | goto out; |
43 | } |
44 | |
45 | out: |
46 | error_propagate(errp, err); |
47 | } |
48 | |
49 | void visit_type_BlockdevSnapshotInternal(Visitor *v, const char *name, BlockdevSnapshotInternal **obj, Error **errp) |
50 | { |
51 | Error *err = NULL; |
52 | |
53 | visit_start_struct(v, name, (void **)obj, sizeof(BlockdevSnapshotInternal), &err); |
54 | if (err) { |
55 | goto out; |
56 | } |
57 | if (!*obj) { |
58 | goto out_obj; |
59 | } |
60 | visit_type_BlockdevSnapshotInternal_members(v, *obj, &err); |
61 | if (err) { |
62 | goto out_obj; |
63 | } |
64 | visit_check_struct(v, &err); |
65 | out_obj: |
66 | visit_end_struct(v, (void **)obj); |
67 | if (err && visit_is_input(v)) { |
68 | qapi_free_BlockdevSnapshotInternal(*obj); |
69 | *obj = NULL; |
70 | } |
71 | out: |
72 | error_propagate(errp, err); |
73 | } |
74 | |
75 | void visit_type_PRManagerInfo_members(Visitor *v, PRManagerInfo *obj, Error **errp) |
76 | { |
77 | Error *err = NULL; |
78 | |
79 | visit_type_str(v, "id" , &obj->id, &err); |
80 | if (err) { |
81 | goto out; |
82 | } |
83 | visit_type_bool(v, "connected" , &obj->connected, &err); |
84 | if (err) { |
85 | goto out; |
86 | } |
87 | |
88 | out: |
89 | error_propagate(errp, err); |
90 | } |
91 | |
92 | void visit_type_PRManagerInfo(Visitor *v, const char *name, PRManagerInfo **obj, Error **errp) |
93 | { |
94 | Error *err = NULL; |
95 | |
96 | visit_start_struct(v, name, (void **)obj, sizeof(PRManagerInfo), &err); |
97 | if (err) { |
98 | goto out; |
99 | } |
100 | if (!*obj) { |
101 | goto out_obj; |
102 | } |
103 | visit_type_PRManagerInfo_members(v, *obj, &err); |
104 | if (err) { |
105 | goto out_obj; |
106 | } |
107 | visit_check_struct(v, &err); |
108 | out_obj: |
109 | visit_end_struct(v, (void **)obj); |
110 | if (err && visit_is_input(v)) { |
111 | qapi_free_PRManagerInfo(*obj); |
112 | *obj = NULL; |
113 | } |
114 | out: |
115 | error_propagate(errp, err); |
116 | } |
117 | |
118 | void visit_type_PRManagerInfoList(Visitor *v, const char *name, PRManagerInfoList **obj, Error **errp) |
119 | { |
120 | Error *err = NULL; |
121 | PRManagerInfoList *tail; |
122 | size_t size = sizeof(**obj); |
123 | |
124 | visit_start_list(v, name, (GenericList **)obj, size, &err); |
125 | if (err) { |
126 | goto out; |
127 | } |
128 | |
129 | for (tail = *obj; tail; |
130 | tail = (PRManagerInfoList *)visit_next_list(v, (GenericList *)tail, size)) { |
131 | visit_type_PRManagerInfo(v, NULL, &tail->value, &err); |
132 | if (err) { |
133 | break; |
134 | } |
135 | } |
136 | |
137 | if (!err) { |
138 | visit_check_list(v, &err); |
139 | } |
140 | visit_end_list(v, (void **)obj); |
141 | if (err && visit_is_input(v)) { |
142 | qapi_free_PRManagerInfoList(*obj); |
143 | *obj = NULL; |
144 | } |
145 | out: |
146 | error_propagate(errp, err); |
147 | } |
148 | |
149 | void visit_type_q_obj_blockdev_snapshot_delete_internal_sync_arg_members(Visitor *v, q_obj_blockdev_snapshot_delete_internal_sync_arg *obj, Error **errp) |
150 | { |
151 | Error *err = NULL; |
152 | |
153 | visit_type_str(v, "device" , &obj->device, &err); |
154 | if (err) { |
155 | goto out; |
156 | } |
157 | if (visit_optional(v, "id" , &obj->has_id)) { |
158 | visit_type_str(v, "id" , &obj->id, &err); |
159 | if (err) { |
160 | goto out; |
161 | } |
162 | } |
163 | if (visit_optional(v, "name" , &obj->has_name)) { |
164 | visit_type_str(v, "name" , &obj->name, &err); |
165 | if (err) { |
166 | goto out; |
167 | } |
168 | } |
169 | |
170 | out: |
171 | error_propagate(errp, err); |
172 | } |
173 | |
174 | void visit_type_q_obj_eject_arg_members(Visitor *v, q_obj_eject_arg *obj, Error **errp) |
175 | { |
176 | Error *err = NULL; |
177 | |
178 | if (visit_optional(v, "device" , &obj->has_device)) { |
179 | visit_type_str(v, "device" , &obj->device, &err); |
180 | if (err) { |
181 | goto out; |
182 | } |
183 | } |
184 | if (visit_optional(v, "id" , &obj->has_id)) { |
185 | visit_type_str(v, "id" , &obj->id, &err); |
186 | if (err) { |
187 | goto out; |
188 | } |
189 | } |
190 | if (visit_optional(v, "force" , &obj->has_force)) { |
191 | visit_type_bool(v, "force" , &obj->force, &err); |
192 | if (err) { |
193 | goto out; |
194 | } |
195 | } |
196 | |
197 | out: |
198 | error_propagate(errp, err); |
199 | } |
200 | |
201 | void visit_type_q_obj_nbd_server_start_arg_members(Visitor *v, q_obj_nbd_server_start_arg *obj, Error **errp) |
202 | { |
203 | Error *err = NULL; |
204 | |
205 | visit_type_SocketAddressLegacy(v, "addr" , &obj->addr, &err); |
206 | if (err) { |
207 | goto out; |
208 | } |
209 | if (visit_optional(v, "tls-creds" , &obj->has_tls_creds)) { |
210 | visit_type_str(v, "tls-creds" , &obj->tls_creds, &err); |
211 | if (err) { |
212 | goto out; |
213 | } |
214 | } |
215 | if (visit_optional(v, "tls-authz" , &obj->has_tls_authz)) { |
216 | visit_type_str(v, "tls-authz" , &obj->tls_authz, &err); |
217 | if (err) { |
218 | goto out; |
219 | } |
220 | } |
221 | |
222 | out: |
223 | error_propagate(errp, err); |
224 | } |
225 | |
226 | void visit_type_q_obj_nbd_server_add_arg_members(Visitor *v, q_obj_nbd_server_add_arg *obj, Error **errp) |
227 | { |
228 | Error *err = NULL; |
229 | |
230 | visit_type_str(v, "device" , &obj->device, &err); |
231 | if (err) { |
232 | goto out; |
233 | } |
234 | if (visit_optional(v, "name" , &obj->has_name)) { |
235 | visit_type_str(v, "name" , &obj->name, &err); |
236 | if (err) { |
237 | goto out; |
238 | } |
239 | } |
240 | if (visit_optional(v, "writable" , &obj->has_writable)) { |
241 | visit_type_bool(v, "writable" , &obj->writable, &err); |
242 | if (err) { |
243 | goto out; |
244 | } |
245 | } |
246 | if (visit_optional(v, "bitmap" , &obj->has_bitmap)) { |
247 | visit_type_str(v, "bitmap" , &obj->bitmap, &err); |
248 | if (err) { |
249 | goto out; |
250 | } |
251 | } |
252 | |
253 | out: |
254 | error_propagate(errp, err); |
255 | } |
256 | |
257 | void visit_type_NbdServerRemoveMode(Visitor *v, const char *name, NbdServerRemoveMode *obj, Error **errp) |
258 | { |
259 | int value = *obj; |
260 | visit_type_enum(v, name, &value, &NbdServerRemoveMode_lookup, errp); |
261 | *obj = value; |
262 | } |
263 | |
264 | void visit_type_q_obj_nbd_server_remove_arg_members(Visitor *v, q_obj_nbd_server_remove_arg *obj, Error **errp) |
265 | { |
266 | Error *err = NULL; |
267 | |
268 | visit_type_str(v, "name" , &obj->name, &err); |
269 | if (err) { |
270 | goto out; |
271 | } |
272 | if (visit_optional(v, "mode" , &obj->has_mode)) { |
273 | visit_type_NbdServerRemoveMode(v, "mode" , &obj->mode, &err); |
274 | if (err) { |
275 | goto out; |
276 | } |
277 | } |
278 | |
279 | out: |
280 | error_propagate(errp, err); |
281 | } |
282 | |
283 | void visit_type_q_obj_DEVICE_TRAY_MOVED_arg_members(Visitor *v, q_obj_DEVICE_TRAY_MOVED_arg *obj, Error **errp) |
284 | { |
285 | Error *err = NULL; |
286 | |
287 | visit_type_str(v, "device" , &obj->device, &err); |
288 | if (err) { |
289 | goto out; |
290 | } |
291 | visit_type_str(v, "id" , &obj->id, &err); |
292 | if (err) { |
293 | goto out; |
294 | } |
295 | visit_type_bool(v, "tray-open" , &obj->tray_open, &err); |
296 | if (err) { |
297 | goto out; |
298 | } |
299 | |
300 | out: |
301 | error_propagate(errp, err); |
302 | } |
303 | |
304 | void visit_type_q_obj_PR_MANAGER_STATUS_CHANGED_arg_members(Visitor *v, q_obj_PR_MANAGER_STATUS_CHANGED_arg *obj, Error **errp) |
305 | { |
306 | Error *err = NULL; |
307 | |
308 | visit_type_str(v, "id" , &obj->id, &err); |
309 | if (err) { |
310 | goto out; |
311 | } |
312 | visit_type_bool(v, "connected" , &obj->connected, &err); |
313 | if (err) { |
314 | goto out; |
315 | } |
316 | |
317 | out: |
318 | error_propagate(errp, err); |
319 | } |
320 | |
321 | void visit_type_QuorumOpType(Visitor *v, const char *name, QuorumOpType *obj, Error **errp) |
322 | { |
323 | int value = *obj; |
324 | visit_type_enum(v, name, &value, &QuorumOpType_lookup, errp); |
325 | *obj = value; |
326 | } |
327 | |
328 | void visit_type_q_obj_QUORUM_FAILURE_arg_members(Visitor *v, q_obj_QUORUM_FAILURE_arg *obj, Error **errp) |
329 | { |
330 | Error *err = NULL; |
331 | |
332 | visit_type_str(v, "reference" , &obj->reference, &err); |
333 | if (err) { |
334 | goto out; |
335 | } |
336 | visit_type_int(v, "sector-num" , &obj->sector_num, &err); |
337 | if (err) { |
338 | goto out; |
339 | } |
340 | visit_type_int(v, "sectors-count" , &obj->sectors_count, &err); |
341 | if (err) { |
342 | goto out; |
343 | } |
344 | |
345 | out: |
346 | error_propagate(errp, err); |
347 | } |
348 | |
349 | void visit_type_q_obj_QUORUM_REPORT_BAD_arg_members(Visitor *v, q_obj_QUORUM_REPORT_BAD_arg *obj, Error **errp) |
350 | { |
351 | Error *err = NULL; |
352 | |
353 | visit_type_QuorumOpType(v, "type" , &obj->type, &err); |
354 | if (err) { |
355 | goto out; |
356 | } |
357 | if (visit_optional(v, "error" , &obj->has_error)) { |
358 | visit_type_str(v, "error" , &obj->error, &err); |
359 | if (err) { |
360 | goto out; |
361 | } |
362 | } |
363 | visit_type_str(v, "node-name" , &obj->node_name, &err); |
364 | if (err) { |
365 | goto out; |
366 | } |
367 | visit_type_int(v, "sector-num" , &obj->sector_num, &err); |
368 | if (err) { |
369 | goto out; |
370 | } |
371 | visit_type_int(v, "sectors-count" , &obj->sectors_count, &err); |
372 | if (err) { |
373 | goto out; |
374 | } |
375 | |
376 | out: |
377 | error_propagate(errp, err); |
378 | } |
379 | |
380 | /* Dummy declaration to prevent empty .o file */ |
381 | char qapi_dummy_qapi_visit_block_c; |
382 | |