Bug Summary

File:bin/debug/clang/qapi-visit.c
Location:line 463, column 10
Description:Dereference of null pointer loaded from variable 'obj'

Annotated Source Code

1/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT MODIFY */
2
3/*
4 * schema-defined QAPI visitor functions
5 *
6 * Copyright IBM, Corp. 2011
7 *
8 * Authors:
9 * Anthony Liguori <aliguori@us.ibm.com>
10 *
11 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
12 * See the COPYING.LIB file in the top-level directory.
13 *
14 */
15
16#include "qapi-visit.h"
17
18void visit_type_NameInfo(Visitor *m, NameInfo ** obj, const char *name, Error **errp)
19{
20 if (error_is_set(errp)) {
21 return;
22 }
23 visit_start_struct(m, (void **)obj, "NameInfo", name, sizeof(NameInfo), errp);
24 if (obj && !*obj) {
25 goto end;
26 }
27 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_name : NULL((void*)0), "name", errp);
28 if ((*obj)->has_name) {
29 visit_type_str(m, (obj && *obj) ? &(*obj)->name : NULL((void*)0), "name", errp);
30 }
31 visit_end_optional(m, errp);
32end:
33 visit_end_struct(m, errp);
34}
35
36void visit_type_NameInfoList(Visitor *m, NameInfoList ** obj, const char *name, Error **errp)
37{
38 GenericList *i, **prev = (GenericList **)obj;
39
40 if (error_is_set(errp)) {
41 return;
42 }
43 visit_start_list(m, name, errp);
44
45 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
46 NameInfoList *native_i = (NameInfoList *)i;
47 visit_type_NameInfo(m, &native_i->value, NULL((void*)0), errp);
48 }
49
50 visit_end_list(m, errp);
51}
52
53void visit_type_VersionInfo(Visitor *m, VersionInfo ** obj, const char *name, Error **errp)
54{
55 if (error_is_set(errp)) {
56 return;
57 }
58 visit_start_struct(m, (void **)obj, "VersionInfo", name, sizeof(VersionInfo), errp);
59 if (obj && !*obj) {
60 goto end;
61 }
62 visit_start_struct(m, NULL((void*)0), "", "qemu", 0, errp);
63 visit_type_int(m, (obj && *obj) ? &(*obj)->qemu.major : NULL((void*)0), "major", errp);
64 visit_type_int(m, (obj && *obj) ? &(*obj)->qemu.minor : NULL((void*)0), "minor", errp);
65 visit_type_int(m, (obj && *obj) ? &(*obj)->qemu.micro : NULL((void*)0), "micro", errp);
66 visit_end_struct(m, errp);
67 visit_type_str(m, (obj && *obj) ? &(*obj)->package : NULL((void*)0), "package", errp);
68end:
69 visit_end_struct(m, errp);
70}
71
72void visit_type_VersionInfoList(Visitor *m, VersionInfoList ** obj, const char *name, Error **errp)
73{
74 GenericList *i, **prev = (GenericList **)obj;
75
76 if (error_is_set(errp)) {
77 return;
78 }
79 visit_start_list(m, name, errp);
80
81 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
82 VersionInfoList *native_i = (VersionInfoList *)i;
83 visit_type_VersionInfo(m, &native_i->value, NULL((void*)0), errp);
84 }
85
86 visit_end_list(m, errp);
87}
88
89void visit_type_KvmInfo(Visitor *m, KvmInfo ** obj, const char *name, Error **errp)
90{
91 if (error_is_set(errp)) {
92 return;
93 }
94 visit_start_struct(m, (void **)obj, "KvmInfo", name, sizeof(KvmInfo), errp);
95 if (obj && !*obj) {
96 goto end;
97 }
98 visit_type_bool(m, (obj && *obj) ? &(*obj)->enabled : NULL((void*)0), "enabled", errp);
99 visit_type_bool(m, (obj && *obj) ? &(*obj)->present : NULL((void*)0), "present", errp);
100end:
101 visit_end_struct(m, errp);
102}
103
104void visit_type_KvmInfoList(Visitor *m, KvmInfoList ** obj, const char *name, Error **errp)
105{
106 GenericList *i, **prev = (GenericList **)obj;
107
108 if (error_is_set(errp)) {
109 return;
110 }
111 visit_start_list(m, name, errp);
112
113 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
114 KvmInfoList *native_i = (KvmInfoList *)i;
115 visit_type_KvmInfo(m, &native_i->value, NULL((void*)0), errp);
116 }
117
118 visit_end_list(m, errp);
119}
120
121void visit_type_RunState(Visitor *m, RunState * obj, const char *name, Error **errp)
122{
123 visit_type_enum(m, (int *)obj, RunState_lookup, "RunState", name, errp);
124}
125
126void visit_type_StatusInfo(Visitor *m, StatusInfo ** obj, const char *name, Error **errp)
127{
128 if (error_is_set(errp)) {
129 return;
130 }
131 visit_start_struct(m, (void **)obj, "StatusInfo", name, sizeof(StatusInfo), errp);
132 if (obj && !*obj) {
133 goto end;
134 }
135 visit_type_bool(m, (obj && *obj) ? &(*obj)->running : NULL((void*)0), "running", errp);
136 visit_type_bool(m, (obj && *obj) ? &(*obj)->singlestep : NULL((void*)0), "singlestep", errp);
137 visit_type_RunState(m, (obj && *obj) ? &(*obj)->status : NULL((void*)0), "status", errp);
138end:
139 visit_end_struct(m, errp);
140}
141
142void visit_type_StatusInfoList(Visitor *m, StatusInfoList ** obj, const char *name, Error **errp)
143{
144 GenericList *i, **prev = (GenericList **)obj;
145
146 if (error_is_set(errp)) {
147 return;
148 }
149 visit_start_list(m, name, errp);
150
151 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
152 StatusInfoList *native_i = (StatusInfoList *)i;
153 visit_type_StatusInfo(m, &native_i->value, NULL((void*)0), errp);
154 }
155
156 visit_end_list(m, errp);
157}
158
159void visit_type_UuidInfo(Visitor *m, UuidInfo ** obj, const char *name, Error **errp)
160{
161 if (error_is_set(errp)) {
162 return;
163 }
164 visit_start_struct(m, (void **)obj, "UuidInfo", name, sizeof(UuidInfo), errp);
165 if (obj && !*obj) {
166 goto end;
167 }
168 visit_type_str(m, (obj && *obj) ? &(*obj)->UUID : NULL((void*)0), "UUID", errp);
169end:
170 visit_end_struct(m, errp);
171}
172
173void visit_type_UuidInfoList(Visitor *m, UuidInfoList ** obj, const char *name, Error **errp)
174{
175 GenericList *i, **prev = (GenericList **)obj;
176
177 if (error_is_set(errp)) {
178 return;
179 }
180 visit_start_list(m, name, errp);
181
182 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
183 UuidInfoList *native_i = (UuidInfoList *)i;
184 visit_type_UuidInfo(m, &native_i->value, NULL((void*)0), errp);
185 }
186
187 visit_end_list(m, errp);
188}
189
190void visit_type_ChardevInfo(Visitor *m, ChardevInfo ** obj, const char *name, Error **errp)
191{
192 if (error_is_set(errp)) {
193 return;
194 }
195 visit_start_struct(m, (void **)obj, "ChardevInfo", name, sizeof(ChardevInfo), errp);
196 if (obj && !*obj) {
197 goto end;
198 }
199 visit_type_str(m, (obj && *obj) ? &(*obj)->label : NULL((void*)0), "label", errp);
200 visit_type_str(m, (obj && *obj) ? &(*obj)->filename : NULL((void*)0), "filename", errp);
201end:
202 visit_end_struct(m, errp);
203}
204
205void visit_type_ChardevInfoList(Visitor *m, ChardevInfoList ** obj, const char *name, Error **errp)
206{
207 GenericList *i, **prev = (GenericList **)obj;
208
209 if (error_is_set(errp)) {
210 return;
211 }
212 visit_start_list(m, name, errp);
213
214 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
215 ChardevInfoList *native_i = (ChardevInfoList *)i;
216 visit_type_ChardevInfo(m, &native_i->value, NULL((void*)0), errp);
217 }
218
219 visit_end_list(m, errp);
220}
221
222void visit_type_CommandInfo(Visitor *m, CommandInfo ** obj, const char *name, Error **errp)
223{
224 if (error_is_set(errp)) {
225 return;
226 }
227 visit_start_struct(m, (void **)obj, "CommandInfo", name, sizeof(CommandInfo), errp);
228 if (obj && !*obj) {
229 goto end;
230 }
231 visit_type_str(m, (obj && *obj) ? &(*obj)->name : NULL((void*)0), "name", errp);
232end:
233 visit_end_struct(m, errp);
234}
235
236void visit_type_CommandInfoList(Visitor *m, CommandInfoList ** obj, const char *name, Error **errp)
237{
238 GenericList *i, **prev = (GenericList **)obj;
239
240 if (error_is_set(errp)) {
241 return;
242 }
243 visit_start_list(m, name, errp);
244
245 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
246 CommandInfoList *native_i = (CommandInfoList *)i;
247 visit_type_CommandInfo(m, &native_i->value, NULL((void*)0), errp);
248 }
249
250 visit_end_list(m, errp);
251}
252
253void visit_type_EventInfo(Visitor *m, EventInfo ** obj, const char *name, Error **errp)
254{
255 if (error_is_set(errp)) {
256 return;
257 }
258 visit_start_struct(m, (void **)obj, "EventInfo", name, sizeof(EventInfo), errp);
259 if (obj && !*obj) {
260 goto end;
261 }
262 visit_type_str(m, (obj && *obj) ? &(*obj)->name : NULL((void*)0), "name", errp);
263end:
264 visit_end_struct(m, errp);
265}
266
267void visit_type_EventInfoList(Visitor *m, EventInfoList ** obj, const char *name, Error **errp)
268{
269 GenericList *i, **prev = (GenericList **)obj;
270
271 if (error_is_set(errp)) {
272 return;
273 }
274 visit_start_list(m, name, errp);
275
276 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
277 EventInfoList *native_i = (EventInfoList *)i;
278 visit_type_EventInfo(m, &native_i->value, NULL((void*)0), errp);
279 }
280
281 visit_end_list(m, errp);
282}
283
284void visit_type_MigrationStats(Visitor *m, MigrationStats ** obj, const char *name, Error **errp)
285{
286 if (error_is_set(errp)) {
287 return;
288 }
289 visit_start_struct(m, (void **)obj, "MigrationStats", name, sizeof(MigrationStats), errp);
290 if (obj && !*obj) {
291 goto end;
292 }
293 visit_type_int(m, (obj && *obj) ? &(*obj)->transferred : NULL((void*)0), "transferred", errp);
294 visit_type_int(m, (obj && *obj) ? &(*obj)->remaining : NULL((void*)0), "remaining", errp);
295 visit_type_int(m, (obj && *obj) ? &(*obj)->total : NULL((void*)0), "total", errp);
296end:
297 visit_end_struct(m, errp);
298}
299
300void visit_type_MigrationStatsList(Visitor *m, MigrationStatsList ** obj, const char *name, Error **errp)
301{
302 GenericList *i, **prev = (GenericList **)obj;
303
304 if (error_is_set(errp)) {
305 return;
306 }
307 visit_start_list(m, name, errp);
308
309 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
310 MigrationStatsList *native_i = (MigrationStatsList *)i;
311 visit_type_MigrationStats(m, &native_i->value, NULL((void*)0), errp);
312 }
313
314 visit_end_list(m, errp);
315}
316
317void visit_type_MigrationInfo(Visitor *m, MigrationInfo ** obj, const char *name, Error **errp)
318{
319 if (error_is_set(errp)) {
320 return;
321 }
322 visit_start_struct(m, (void **)obj, "MigrationInfo", name, sizeof(MigrationInfo), errp);
323 if (obj && !*obj) {
324 goto end;
325 }
326 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_status : NULL((void*)0), "status", errp);
327 if ((*obj)->has_status) {
328 visit_type_str(m, (obj && *obj) ? &(*obj)->status : NULL((void*)0), "status", errp);
329 }
330 visit_end_optional(m, errp);
331 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_ram : NULL((void*)0), "ram", errp);
332 if ((*obj)->has_ram) {
333 visit_type_MigrationStats(m, (obj && *obj) ? &(*obj)->ram : NULL((void*)0), "ram", errp);
334 }
335 visit_end_optional(m, errp);
336 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_disk : NULL((void*)0), "disk", errp);
337 if ((*obj)->has_disk) {
338 visit_type_MigrationStats(m, (obj && *obj) ? &(*obj)->disk : NULL((void*)0), "disk", errp);
339 }
340 visit_end_optional(m, errp);
341end:
342 visit_end_struct(m, errp);
343}
344
345void visit_type_MigrationInfoList(Visitor *m, MigrationInfoList ** obj, const char *name, Error **errp)
346{
347 GenericList *i, **prev = (GenericList **)obj;
348
349 if (error_is_set(errp)) {
350 return;
351 }
352 visit_start_list(m, name, errp);
353
354 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
355 MigrationInfoList *native_i = (MigrationInfoList *)i;
356 visit_type_MigrationInfo(m, &native_i->value, NULL((void*)0), errp);
357 }
358
359 visit_end_list(m, errp);
360}
361
362void visit_type_MouseInfo(Visitor *m, MouseInfo ** obj, const char *name, Error **errp)
363{
364 if (error_is_set(errp)) {
365 return;
366 }
367 visit_start_struct(m, (void **)obj, "MouseInfo", name, sizeof(MouseInfo), errp);
368 if (obj && !*obj) {
369 goto end;
370 }
371 visit_type_str(m, (obj && *obj) ? &(*obj)->name : NULL((void*)0), "name", errp);
372 visit_type_int(m, (obj && *obj) ? &(*obj)->index : NULL((void*)0), "index", errp);
373 visit_type_bool(m, (obj && *obj) ? &(*obj)->current : NULL((void*)0), "current", errp);
374 visit_type_bool(m, (obj && *obj) ? &(*obj)->absolute : NULL((void*)0), "absolute", errp);
375end:
376 visit_end_struct(m, errp);
377}
378
379void visit_type_MouseInfoList(Visitor *m, MouseInfoList ** obj, const char *name, Error **errp)
380{
381 GenericList *i, **prev = (GenericList **)obj;
382
383 if (error_is_set(errp)) {
384 return;
385 }
386 visit_start_list(m, name, errp);
387
388 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
389 MouseInfoList *native_i = (MouseInfoList *)i;
390 visit_type_MouseInfo(m, &native_i->value, NULL((void*)0), errp);
391 }
392
393 visit_end_list(m, errp);
394}
395
396void visit_type_CpuInfo(Visitor *m, CpuInfo ** obj, const char *name, Error **errp)
397{
398 if (error_is_set(errp)) {
399 return;
400 }
401 visit_start_struct(m, (void **)obj, "CpuInfo", name, sizeof(CpuInfo), errp);
402 if (obj && !*obj) {
403 goto end;
404 }
405 visit_type_int(m, (obj && *obj) ? &(*obj)->CPU : NULL((void*)0), "CPU", errp);
406 visit_type_bool(m, (obj && *obj) ? &(*obj)->current : NULL((void*)0), "current", errp);
407 visit_type_bool(m, (obj && *obj) ? &(*obj)->halted : NULL((void*)0), "halted", errp);
408 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_pc : NULL((void*)0), "pc", errp);
409 if ((*obj)->has_pc) {
410 visit_type_int(m, (obj && *obj) ? &(*obj)->pc : NULL((void*)0), "pc", errp);
411 }
412 visit_end_optional(m, errp);
413 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_nip : NULL((void*)0), "nip", errp);
414 if ((*obj)->has_nip) {
415 visit_type_int(m, (obj && *obj) ? &(*obj)->nip : NULL((void*)0), "nip", errp);
416 }
417 visit_end_optional(m, errp);
418 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_npc : NULL((void*)0), "npc", errp);
419 if ((*obj)->has_npc) {
420 visit_type_int(m, (obj && *obj) ? &(*obj)->npc : NULL((void*)0), "npc", errp);
421 }
422 visit_end_optional(m, errp);
423 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_PC : NULL((void*)0), "PC", errp);
424 if ((*obj)->has_PC) {
425 visit_type_int(m, (obj && *obj) ? &(*obj)->PC : NULL((void*)0), "PC", errp);
426 }
427 visit_end_optional(m, errp);
428 visit_type_int(m, (obj && *obj) ? &(*obj)->thread_id : NULL((void*)0), "thread_id", errp);
429end:
430 visit_end_struct(m, errp);
431}
432
433void visit_type_CpuInfoList(Visitor *m, CpuInfoList ** obj, const char *name, Error **errp)
434{
435 GenericList *i, **prev = (GenericList **)obj;
436
437 if (error_is_set(errp)) {
438 return;
439 }
440 visit_start_list(m, name, errp);
441
442 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
443 CpuInfoList *native_i = (CpuInfoList *)i;
444 visit_type_CpuInfo(m, &native_i->value, NULL((void*)0), errp);
445 }
446
447 visit_end_list(m, errp);
448}
449
450void visit_type_BlockDeviceInfo(Visitor *m, BlockDeviceInfo ** obj, const char *name, Error **errp)
451{
452 if (error_is_set(errp)) {
1
Taking false branch
453 return;
454 }
455 visit_start_struct(m, (void **)obj, "BlockDeviceInfo", name, sizeof(BlockDeviceInfo), errp);
456 if (obj && !*obj) {
2
Assuming pointer value is null
3
Taking false branch
457 goto end;
458 }
459 visit_type_str(m, (obj && *obj) ? &(*obj)->file : NULL((void*)0), "file", errp);
4
'?' condition is false
460 visit_type_bool(m, (obj && *obj) ? &(*obj)->ro : NULL((void*)0), "ro", errp);
5
'?' condition is false
461 visit_type_str(m, (obj && *obj) ? &(*obj)->drv : NULL((void*)0), "drv", errp);
6
'?' condition is false
462 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_backing_file : NULL((void*)0), "backing_file", errp);
7
'?' condition is false
463 if ((*obj)->has_backing_file) {
8
Dereference of null pointer loaded from variable 'obj'
464 visit_type_str(m, (obj && *obj) ? &(*obj)->backing_file : NULL((void*)0), "backing_file", errp);
465 }
466 visit_end_optional(m, errp);
467 visit_type_bool(m, (obj && *obj) ? &(*obj)->encrypted : NULL((void*)0), "encrypted", errp);
468 visit_type_int(m, (obj && *obj) ? &(*obj)->bps : NULL((void*)0), "bps", errp);
469 visit_type_int(m, (obj && *obj) ? &(*obj)->bps_rd : NULL((void*)0), "bps_rd", errp);
470 visit_type_int(m, (obj && *obj) ? &(*obj)->bps_wr : NULL((void*)0), "bps_wr", errp);
471 visit_type_int(m, (obj && *obj) ? &(*obj)->iops : NULL((void*)0), "iops", errp);
472 visit_type_int(m, (obj && *obj) ? &(*obj)->iops_rd : NULL((void*)0), "iops_rd", errp);
473 visit_type_int(m, (obj && *obj) ? &(*obj)->iops_wr : NULL((void*)0), "iops_wr", errp);
474end:
475 visit_end_struct(m, errp);
476}
477
478void visit_type_BlockDeviceInfoList(Visitor *m, BlockDeviceInfoList ** obj, const char *name, Error **errp)
479{
480 GenericList *i, **prev = (GenericList **)obj;
481
482 if (error_is_set(errp)) {
483 return;
484 }
485 visit_start_list(m, name, errp);
486
487 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
488 BlockDeviceInfoList *native_i = (BlockDeviceInfoList *)i;
489 visit_type_BlockDeviceInfo(m, &native_i->value, NULL((void*)0), errp);
490 }
491
492 visit_end_list(m, errp);
493}
494
495void visit_type_BlockDeviceIoStatus(Visitor *m, BlockDeviceIoStatus * obj, const char *name, Error **errp)
496{
497 visit_type_enum(m, (int *)obj, BlockDeviceIoStatus_lookup, "BlockDeviceIoStatus", name, errp);
498}
499
500void visit_type_BlockInfo(Visitor *m, BlockInfo ** obj, const char *name, Error **errp)
501{
502 if (error_is_set(errp)) {
503 return;
504 }
505 visit_start_struct(m, (void **)obj, "BlockInfo", name, sizeof(BlockInfo), errp);
506 if (obj && !*obj) {
507 goto end;
508 }
509 visit_type_str(m, (obj && *obj) ? &(*obj)->device : NULL((void*)0), "device", errp);
510 visit_type_str(m, (obj && *obj) ? &(*obj)->type : NULL((void*)0), "type", errp);
511 visit_type_bool(m, (obj && *obj) ? &(*obj)->removable : NULL((void*)0), "removable", errp);
512 visit_type_bool(m, (obj && *obj) ? &(*obj)->locked : NULL((void*)0), "locked", errp);
513 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_inserted : NULL((void*)0), "inserted", errp);
514 if ((*obj)->has_inserted) {
515 visit_type_BlockDeviceInfo(m, (obj && *obj) ? &(*obj)->inserted : NULL((void*)0), "inserted", errp);
516 }
517 visit_end_optional(m, errp);
518 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_tray_open : NULL((void*)0), "tray_open", errp);
519 if ((*obj)->has_tray_open) {
520 visit_type_bool(m, (obj && *obj) ? &(*obj)->tray_open : NULL((void*)0), "tray_open", errp);
521 }
522 visit_end_optional(m, errp);
523 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_io_status : NULL((void*)0), "io-status", errp);
524 if ((*obj)->has_io_status) {
525 visit_type_BlockDeviceIoStatus(m, (obj && *obj) ? &(*obj)->io_status : NULL((void*)0), "io-status", errp);
526 }
527 visit_end_optional(m, errp);
528end:
529 visit_end_struct(m, errp);
530}
531
532void visit_type_BlockInfoList(Visitor *m, BlockInfoList ** obj, const char *name, Error **errp)
533{
534 GenericList *i, **prev = (GenericList **)obj;
535
536 if (error_is_set(errp)) {
537 return;
538 }
539 visit_start_list(m, name, errp);
540
541 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
542 BlockInfoList *native_i = (BlockInfoList *)i;
543 visit_type_BlockInfo(m, &native_i->value, NULL((void*)0), errp);
544 }
545
546 visit_end_list(m, errp);
547}
548
549void visit_type_BlockDeviceStats(Visitor *m, BlockDeviceStats ** obj, const char *name, Error **errp)
550{
551 if (error_is_set(errp)) {
552 return;
553 }
554 visit_start_struct(m, (void **)obj, "BlockDeviceStats", name, sizeof(BlockDeviceStats), errp);
555 if (obj && !*obj) {
556 goto end;
557 }
558 visit_type_int(m, (obj && *obj) ? &(*obj)->rd_bytes : NULL((void*)0), "rd_bytes", errp);
559 visit_type_int(m, (obj && *obj) ? &(*obj)->wr_bytes : NULL((void*)0), "wr_bytes", errp);
560 visit_type_int(m, (obj && *obj) ? &(*obj)->rd_operations : NULL((void*)0), "rd_operations", errp);
561 visit_type_int(m, (obj && *obj) ? &(*obj)->wr_operations : NULL((void*)0), "wr_operations", errp);
562 visit_type_int(m, (obj && *obj) ? &(*obj)->flush_operations : NULL((void*)0), "flush_operations", errp);
563 visit_type_int(m, (obj && *obj) ? &(*obj)->flush_total_time_ns : NULL((void*)0), "flush_total_time_ns", errp);
564 visit_type_int(m, (obj && *obj) ? &(*obj)->wr_total_time_ns : NULL((void*)0), "wr_total_time_ns", errp);
565 visit_type_int(m, (obj && *obj) ? &(*obj)->rd_total_time_ns : NULL((void*)0), "rd_total_time_ns", errp);
566 visit_type_int(m, (obj && *obj) ? &(*obj)->wr_highest_offset : NULL((void*)0), "wr_highest_offset", errp);
567end:
568 visit_end_struct(m, errp);
569}
570
571void visit_type_BlockDeviceStatsList(Visitor *m, BlockDeviceStatsList ** obj, const char *name, Error **errp)
572{
573 GenericList *i, **prev = (GenericList **)obj;
574
575 if (error_is_set(errp)) {
576 return;
577 }
578 visit_start_list(m, name, errp);
579
580 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
581 BlockDeviceStatsList *native_i = (BlockDeviceStatsList *)i;
582 visit_type_BlockDeviceStats(m, &native_i->value, NULL((void*)0), errp);
583 }
584
585 visit_end_list(m, errp);
586}
587
588void visit_type_BlockStats(Visitor *m, BlockStats ** obj, const char *name, Error **errp)
589{
590 if (error_is_set(errp)) {
591 return;
592 }
593 visit_start_struct(m, (void **)obj, "BlockStats", name, sizeof(BlockStats), errp);
594 if (obj && !*obj) {
595 goto end;
596 }
597 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_device : NULL((void*)0), "device", errp);
598 if ((*obj)->has_device) {
599 visit_type_str(m, (obj && *obj) ? &(*obj)->device : NULL((void*)0), "device", errp);
600 }
601 visit_end_optional(m, errp);
602 visit_type_BlockDeviceStats(m, (obj && *obj) ? &(*obj)->stats : NULL((void*)0), "stats", errp);
603 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_parent : NULL((void*)0), "parent", errp);
604 if ((*obj)->has_parent) {
605 visit_type_BlockStats(m, (obj && *obj) ? &(*obj)->parent : NULL((void*)0), "parent", errp);
606 }
607 visit_end_optional(m, errp);
608end:
609 visit_end_struct(m, errp);
610}
611
612void visit_type_BlockStatsList(Visitor *m, BlockStatsList ** obj, const char *name, Error **errp)
613{
614 GenericList *i, **prev = (GenericList **)obj;
615
616 if (error_is_set(errp)) {
617 return;
618 }
619 visit_start_list(m, name, errp);
620
621 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
622 BlockStatsList *native_i = (BlockStatsList *)i;
623 visit_type_BlockStats(m, &native_i->value, NULL((void*)0), errp);
624 }
625
626 visit_end_list(m, errp);
627}
628
629void visit_type_VncClientInfo(Visitor *m, VncClientInfo ** obj, const char *name, Error **errp)
630{
631 if (error_is_set(errp)) {
632 return;
633 }
634 visit_start_struct(m, (void **)obj, "VncClientInfo", name, sizeof(VncClientInfo), errp);
635 if (obj && !*obj) {
636 goto end;
637 }
638 visit_type_str(m, (obj && *obj) ? &(*obj)->host : NULL((void*)0), "host", errp);
639 visit_type_str(m, (obj && *obj) ? &(*obj)->family : NULL((void*)0), "family", errp);
640 visit_type_str(m, (obj && *obj) ? &(*obj)->service : NULL((void*)0), "service", errp);
641 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_x509_dname : NULL((void*)0), "x509_dname", errp);
642 if ((*obj)->has_x509_dname) {
643 visit_type_str(m, (obj && *obj) ? &(*obj)->x509_dname : NULL((void*)0), "x509_dname", errp);
644 }
645 visit_end_optional(m, errp);
646 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_sasl_username : NULL((void*)0), "sasl_username", errp);
647 if ((*obj)->has_sasl_username) {
648 visit_type_str(m, (obj && *obj) ? &(*obj)->sasl_username : NULL((void*)0), "sasl_username", errp);
649 }
650 visit_end_optional(m, errp);
651end:
652 visit_end_struct(m, errp);
653}
654
655void visit_type_VncClientInfoList(Visitor *m, VncClientInfoList ** obj, const char *name, Error **errp)
656{
657 GenericList *i, **prev = (GenericList **)obj;
658
659 if (error_is_set(errp)) {
660 return;
661 }
662 visit_start_list(m, name, errp);
663
664 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
665 VncClientInfoList *native_i = (VncClientInfoList *)i;
666 visit_type_VncClientInfo(m, &native_i->value, NULL((void*)0), errp);
667 }
668
669 visit_end_list(m, errp);
670}
671
672void visit_type_VncInfo(Visitor *m, VncInfo ** obj, const char *name, Error **errp)
673{
674 if (error_is_set(errp)) {
675 return;
676 }
677 visit_start_struct(m, (void **)obj, "VncInfo", name, sizeof(VncInfo), errp);
678 if (obj && !*obj) {
679 goto end;
680 }
681 visit_type_bool(m, (obj && *obj) ? &(*obj)->enabled : NULL((void*)0), "enabled", errp);
682 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_host : NULL((void*)0), "host", errp);
683 if ((*obj)->has_host) {
684 visit_type_str(m, (obj && *obj) ? &(*obj)->host : NULL((void*)0), "host", errp);
685 }
686 visit_end_optional(m, errp);
687 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_family : NULL((void*)0), "family", errp);
688 if ((*obj)->has_family) {
689 visit_type_str(m, (obj && *obj) ? &(*obj)->family : NULL((void*)0), "family", errp);
690 }
691 visit_end_optional(m, errp);
692 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_service : NULL((void*)0), "service", errp);
693 if ((*obj)->has_service) {
694 visit_type_str(m, (obj && *obj) ? &(*obj)->service : NULL((void*)0), "service", errp);
695 }
696 visit_end_optional(m, errp);
697 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_auth : NULL((void*)0), "auth", errp);
698 if ((*obj)->has_auth) {
699 visit_type_str(m, (obj && *obj) ? &(*obj)->auth : NULL((void*)0), "auth", errp);
700 }
701 visit_end_optional(m, errp);
702 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_clients : NULL((void*)0), "clients", errp);
703 if ((*obj)->has_clients) {
704 visit_type_VncClientInfoList(m, (obj && *obj) ? &(*obj)->clients : NULL((void*)0), "clients", errp);
705 }
706 visit_end_optional(m, errp);
707end:
708 visit_end_struct(m, errp);
709}
710
711void visit_type_VncInfoList(Visitor *m, VncInfoList ** obj, const char *name, Error **errp)
712{
713 GenericList *i, **prev = (GenericList **)obj;
714
715 if (error_is_set(errp)) {
716 return;
717 }
718 visit_start_list(m, name, errp);
719
720 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
721 VncInfoList *native_i = (VncInfoList *)i;
722 visit_type_VncInfo(m, &native_i->value, NULL((void*)0), errp);
723 }
724
725 visit_end_list(m, errp);
726}
727
728void visit_type_SpiceChannel(Visitor *m, SpiceChannel ** obj, const char *name, Error **errp)
729{
730 if (error_is_set(errp)) {
731 return;
732 }
733 visit_start_struct(m, (void **)obj, "SpiceChannel", name, sizeof(SpiceChannel), errp);
734 if (obj && !*obj) {
735 goto end;
736 }
737 visit_type_str(m, (obj && *obj) ? &(*obj)->host : NULL((void*)0), "host", errp);
738 visit_type_str(m, (obj && *obj) ? &(*obj)->family : NULL((void*)0), "family", errp);
739 visit_type_str(m, (obj && *obj) ? &(*obj)->port : NULL((void*)0), "port", errp);
740 visit_type_int(m, (obj && *obj) ? &(*obj)->connection_id : NULL((void*)0), "connection-id", errp);
741 visit_type_int(m, (obj && *obj) ? &(*obj)->channel_type : NULL((void*)0), "channel-type", errp);
742 visit_type_int(m, (obj && *obj) ? &(*obj)->channel_id : NULL((void*)0), "channel-id", errp);
743 visit_type_bool(m, (obj && *obj) ? &(*obj)->tls : NULL((void*)0), "tls", errp);
744end:
745 visit_end_struct(m, errp);
746}
747
748void visit_type_SpiceChannelList(Visitor *m, SpiceChannelList ** obj, const char *name, Error **errp)
749{
750 GenericList *i, **prev = (GenericList **)obj;
751
752 if (error_is_set(errp)) {
753 return;
754 }
755 visit_start_list(m, name, errp);
756
757 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
758 SpiceChannelList *native_i = (SpiceChannelList *)i;
759 visit_type_SpiceChannel(m, &native_i->value, NULL((void*)0), errp);
760 }
761
762 visit_end_list(m, errp);
763}
764
765void visit_type_SpiceQueryMouseMode(Visitor *m, SpiceQueryMouseMode * obj, const char *name, Error **errp)
766{
767 visit_type_enum(m, (int *)obj, SpiceQueryMouseMode_lookup, "SpiceQueryMouseMode", name, errp);
768}
769
770void visit_type_SpiceInfo(Visitor *m, SpiceInfo ** obj, const char *name, Error **errp)
771{
772 if (error_is_set(errp)) {
773 return;
774 }
775 visit_start_struct(m, (void **)obj, "SpiceInfo", name, sizeof(SpiceInfo), errp);
776 if (obj && !*obj) {
777 goto end;
778 }
779 visit_type_bool(m, (obj && *obj) ? &(*obj)->enabled : NULL((void*)0), "enabled", errp);
780 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_host : NULL((void*)0), "host", errp);
781 if ((*obj)->has_host) {
782 visit_type_str(m, (obj && *obj) ? &(*obj)->host : NULL((void*)0), "host", errp);
783 }
784 visit_end_optional(m, errp);
785 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_port : NULL((void*)0), "port", errp);
786 if ((*obj)->has_port) {
787 visit_type_int(m, (obj && *obj) ? &(*obj)->port : NULL((void*)0), "port", errp);
788 }
789 visit_end_optional(m, errp);
790 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_tls_port : NULL((void*)0), "tls-port", errp);
791 if ((*obj)->has_tls_port) {
792 visit_type_int(m, (obj && *obj) ? &(*obj)->tls_port : NULL((void*)0), "tls-port", errp);
793 }
794 visit_end_optional(m, errp);
795 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_auth : NULL((void*)0), "auth", errp);
796 if ((*obj)->has_auth) {
797 visit_type_str(m, (obj && *obj) ? &(*obj)->auth : NULL((void*)0), "auth", errp);
798 }
799 visit_end_optional(m, errp);
800 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_compiled_version : NULL((void*)0), "compiled-version", errp);
801 if ((*obj)->has_compiled_version) {
802 visit_type_str(m, (obj && *obj) ? &(*obj)->compiled_version : NULL((void*)0), "compiled-version", errp);
803 }
804 visit_end_optional(m, errp);
805 visit_type_SpiceQueryMouseMode(m, (obj && *obj) ? &(*obj)->mouse_mode : NULL((void*)0), "mouse-mode", errp);
806 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_channels : NULL((void*)0), "channels", errp);
807 if ((*obj)->has_channels) {
808 visit_type_SpiceChannelList(m, (obj && *obj) ? &(*obj)->channels : NULL((void*)0), "channels", errp);
809 }
810 visit_end_optional(m, errp);
811end:
812 visit_end_struct(m, errp);
813}
814
815void visit_type_SpiceInfoList(Visitor *m, SpiceInfoList ** obj, const char *name, Error **errp)
816{
817 GenericList *i, **prev = (GenericList **)obj;
818
819 if (error_is_set(errp)) {
820 return;
821 }
822 visit_start_list(m, name, errp);
823
824 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
825 SpiceInfoList *native_i = (SpiceInfoList *)i;
826 visit_type_SpiceInfo(m, &native_i->value, NULL((void*)0), errp);
827 }
828
829 visit_end_list(m, errp);
830}
831
832void visit_type_BalloonInfo(Visitor *m, BalloonInfo ** obj, const char *name, Error **errp)
833{
834 if (error_is_set(errp)) {
835 return;
836 }
837 visit_start_struct(m, (void **)obj, "BalloonInfo", name, sizeof(BalloonInfo), errp);
838 if (obj && !*obj) {
839 goto end;
840 }
841 visit_type_int(m, (obj && *obj) ? &(*obj)->actual : NULL((void*)0), "actual", errp);
842 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_mem_swapped_in : NULL((void*)0), "mem_swapped_in", errp);
843 if ((*obj)->has_mem_swapped_in) {
844 visit_type_int(m, (obj && *obj) ? &(*obj)->mem_swapped_in : NULL((void*)0), "mem_swapped_in", errp);
845 }
846 visit_end_optional(m, errp);
847 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_mem_swapped_out : NULL((void*)0), "mem_swapped_out", errp);
848 if ((*obj)->has_mem_swapped_out) {
849 visit_type_int(m, (obj && *obj) ? &(*obj)->mem_swapped_out : NULL((void*)0), "mem_swapped_out", errp);
850 }
851 visit_end_optional(m, errp);
852 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_major_page_faults : NULL((void*)0), "major_page_faults", errp);
853 if ((*obj)->has_major_page_faults) {
854 visit_type_int(m, (obj && *obj) ? &(*obj)->major_page_faults : NULL((void*)0), "major_page_faults", errp);
855 }
856 visit_end_optional(m, errp);
857 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_minor_page_faults : NULL((void*)0), "minor_page_faults", errp);
858 if ((*obj)->has_minor_page_faults) {
859 visit_type_int(m, (obj && *obj) ? &(*obj)->minor_page_faults : NULL((void*)0), "minor_page_faults", errp);
860 }
861 visit_end_optional(m, errp);
862 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_free_mem : NULL((void*)0), "free_mem", errp);
863 if ((*obj)->has_free_mem) {
864 visit_type_int(m, (obj && *obj) ? &(*obj)->free_mem : NULL((void*)0), "free_mem", errp);
865 }
866 visit_end_optional(m, errp);
867 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_total_mem : NULL((void*)0), "total_mem", errp);
868 if ((*obj)->has_total_mem) {
869 visit_type_int(m, (obj && *obj) ? &(*obj)->total_mem : NULL((void*)0), "total_mem", errp);
870 }
871 visit_end_optional(m, errp);
872end:
873 visit_end_struct(m, errp);
874}
875
876void visit_type_BalloonInfoList(Visitor *m, BalloonInfoList ** obj, const char *name, Error **errp)
877{
878 GenericList *i, **prev = (GenericList **)obj;
879
880 if (error_is_set(errp)) {
881 return;
882 }
883 visit_start_list(m, name, errp);
884
885 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
886 BalloonInfoList *native_i = (BalloonInfoList *)i;
887 visit_type_BalloonInfo(m, &native_i->value, NULL((void*)0), errp);
888 }
889
890 visit_end_list(m, errp);
891}
892
893void visit_type_PciMemoryRange(Visitor *m, PciMemoryRange ** obj, const char *name, Error **errp)
894{
895 if (error_is_set(errp)) {
896 return;
897 }
898 visit_start_struct(m, (void **)obj, "PciMemoryRange", name, sizeof(PciMemoryRange), errp);
899 if (obj && !*obj) {
900 goto end;
901 }
902 visit_type_int(m, (obj && *obj) ? &(*obj)->base : NULL((void*)0), "base", errp);
903 visit_type_int(m, (obj && *obj) ? &(*obj)->limit : NULL((void*)0), "limit", errp);
904end:
905 visit_end_struct(m, errp);
906}
907
908void visit_type_PciMemoryRangeList(Visitor *m, PciMemoryRangeList ** obj, const char *name, Error **errp)
909{
910 GenericList *i, **prev = (GenericList **)obj;
911
912 if (error_is_set(errp)) {
913 return;
914 }
915 visit_start_list(m, name, errp);
916
917 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
918 PciMemoryRangeList *native_i = (PciMemoryRangeList *)i;
919 visit_type_PciMemoryRange(m, &native_i->value, NULL((void*)0), errp);
920 }
921
922 visit_end_list(m, errp);
923}
924
925void visit_type_PciMemoryRegion(Visitor *m, PciMemoryRegion ** obj, const char *name, Error **errp)
926{
927 if (error_is_set(errp)) {
928 return;
929 }
930 visit_start_struct(m, (void **)obj, "PciMemoryRegion", name, sizeof(PciMemoryRegion), errp);
931 if (obj && !*obj) {
932 goto end;
933 }
934 visit_type_int(m, (obj && *obj) ? &(*obj)->bar : NULL((void*)0), "bar", errp);
935 visit_type_str(m, (obj && *obj) ? &(*obj)->type : NULL((void*)0), "type", errp);
936 visit_type_int(m, (obj && *obj) ? &(*obj)->address : NULL((void*)0), "address", errp);
937 visit_type_int(m, (obj && *obj) ? &(*obj)->size : NULL((void*)0), "size", errp);
938 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_prefetch : NULL((void*)0), "prefetch", errp);
939 if ((*obj)->has_prefetch) {
940 visit_type_bool(m, (obj && *obj) ? &(*obj)->prefetch : NULL((void*)0), "prefetch", errp);
941 }
942 visit_end_optional(m, errp);
943 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_mem_type_64 : NULL((void*)0), "mem_type_64", errp);
944 if ((*obj)->has_mem_type_64) {
945 visit_type_bool(m, (obj && *obj) ? &(*obj)->mem_type_64 : NULL((void*)0), "mem_type_64", errp);
946 }
947 visit_end_optional(m, errp);
948end:
949 visit_end_struct(m, errp);
950}
951
952void visit_type_PciMemoryRegionList(Visitor *m, PciMemoryRegionList ** obj, const char *name, Error **errp)
953{
954 GenericList *i, **prev = (GenericList **)obj;
955
956 if (error_is_set(errp)) {
957 return;
958 }
959 visit_start_list(m, name, errp);
960
961 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
962 PciMemoryRegionList *native_i = (PciMemoryRegionList *)i;
963 visit_type_PciMemoryRegion(m, &native_i->value, NULL((void*)0), errp);
964 }
965
966 visit_end_list(m, errp);
967}
968
969void visit_type_PciBridgeInfo(Visitor *m, PciBridgeInfo ** obj, const char *name, Error **errp)
970{
971 if (error_is_set(errp)) {
972 return;
973 }
974 visit_start_struct(m, (void **)obj, "PciBridgeInfo", name, sizeof(PciBridgeInfo), errp);
975 if (obj && !*obj) {
976 goto end;
977 }
978 visit_start_struct(m, NULL((void*)0), "", "bus", 0, errp);
979 visit_type_int(m, (obj && *obj) ? &(*obj)->bus.number : NULL((void*)0), "number", errp);
980 visit_type_int(m, (obj && *obj) ? &(*obj)->bus.secondary : NULL((void*)0), "secondary", errp);
981 visit_type_int(m, (obj && *obj) ? &(*obj)->bus.subordinate : NULL((void*)0), "subordinate", errp);
982 visit_type_PciMemoryRange(m, (obj && *obj) ? &(*obj)->bus.io_range : NULL((void*)0), "io_range", errp);
983 visit_type_PciMemoryRange(m, (obj && *obj) ? &(*obj)->bus.memory_range : NULL((void*)0), "memory_range", errp);
984 visit_type_PciMemoryRange(m, (obj && *obj) ? &(*obj)->bus.prefetchable_range : NULL((void*)0), "prefetchable_range", errp);
985 visit_end_struct(m, errp);
986 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_devices : NULL((void*)0), "devices", errp);
987 if ((*obj)->has_devices) {
988 visit_type_PciDeviceInfoList(m, (obj && *obj) ? &(*obj)->devices : NULL((void*)0), "devices", errp);
989 }
990 visit_end_optional(m, errp);
991end:
992 visit_end_struct(m, errp);
993}
994
995void visit_type_PciBridgeInfoList(Visitor *m, PciBridgeInfoList ** obj, const char *name, Error **errp)
996{
997 GenericList *i, **prev = (GenericList **)obj;
998
999 if (error_is_set(errp)) {
1000 return;
1001 }
1002 visit_start_list(m, name, errp);
1003
1004 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
1005 PciBridgeInfoList *native_i = (PciBridgeInfoList *)i;
1006 visit_type_PciBridgeInfo(m, &native_i->value, NULL((void*)0), errp);
1007 }
1008
1009 visit_end_list(m, errp);
1010}
1011
1012void visit_type_PciDeviceInfo(Visitor *m, PciDeviceInfo ** obj, const char *name, Error **errp)
1013{
1014 if (error_is_set(errp)) {
1015 return;
1016 }
1017 visit_start_struct(m, (void **)obj, "PciDeviceInfo", name, sizeof(PciDeviceInfo), errp);
1018 if (obj && !*obj) {
1019 goto end;
1020 }
1021 visit_type_int(m, (obj && *obj) ? &(*obj)->bus : NULL((void*)0), "bus", errp);
1022 visit_type_int(m, (obj && *obj) ? &(*obj)->slot : NULL((void*)0), "slot", errp);
1023 visit_type_int(m, (obj && *obj) ? &(*obj)->function : NULL((void*)0), "function", errp);
1024 visit_start_struct(m, NULL((void*)0), "", "class_info", 0, errp);
1025 visit_start_optional(m, (obj && *obj) ? &(*obj)->class_info.has_desc : NULL((void*)0), "desc", errp);
1026 if ((*obj)->class_info.has_desc) {
1027 visit_type_str(m, (obj && *obj) ? &(*obj)->class_info.desc : NULL((void*)0), "desc", errp);
1028 }
1029 visit_end_optional(m, errp);
1030 visit_type_int(m, (obj && *obj) ? &(*obj)->class_info.class : NULL((void*)0), "class", errp);
1031 visit_end_struct(m, errp);
1032 visit_start_struct(m, NULL((void*)0), "", "id", 0, errp);
1033 visit_type_int(m, (obj && *obj) ? &(*obj)->id.device : NULL((void*)0), "device", errp);
1034 visit_type_int(m, (obj && *obj) ? &(*obj)->id.vendor : NULL((void*)0), "vendor", errp);
1035 visit_end_struct(m, errp);
1036 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_irq : NULL((void*)0), "irq", errp);
1037 if ((*obj)->has_irq) {
1038 visit_type_int(m, (obj && *obj) ? &(*obj)->irq : NULL((void*)0), "irq", errp);
1039 }
1040 visit_end_optional(m, errp);
1041 visit_type_str(m, (obj && *obj) ? &(*obj)->qdev_id : NULL((void*)0), "qdev_id", errp);
1042 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_pci_bridge : NULL((void*)0), "pci_bridge", errp);
1043 if ((*obj)->has_pci_bridge) {
1044 visit_type_PciBridgeInfo(m, (obj && *obj) ? &(*obj)->pci_bridge : NULL((void*)0), "pci_bridge", errp);
1045 }
1046 visit_end_optional(m, errp);
1047 visit_type_PciMemoryRegionList(m, (obj && *obj) ? &(*obj)->regions : NULL((void*)0), "regions", errp);
1048end:
1049 visit_end_struct(m, errp);
1050}
1051
1052void visit_type_PciDeviceInfoList(Visitor *m, PciDeviceInfoList ** obj, const char *name, Error **errp)
1053{
1054 GenericList *i, **prev = (GenericList **)obj;
1055
1056 if (error_is_set(errp)) {
1057 return;
1058 }
1059 visit_start_list(m, name, errp);
1060
1061 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
1062 PciDeviceInfoList *native_i = (PciDeviceInfoList *)i;
1063 visit_type_PciDeviceInfo(m, &native_i->value, NULL((void*)0), errp);
1064 }
1065
1066 visit_end_list(m, errp);
1067}
1068
1069void visit_type_PciInfo(Visitor *m, PciInfo ** obj, const char *name, Error **errp)
1070{
1071 if (error_is_set(errp)) {
1072 return;
1073 }
1074 visit_start_struct(m, (void **)obj, "PciInfo", name, sizeof(PciInfo), errp);
1075 if (obj && !*obj) {
1076 goto end;
1077 }
1078 visit_type_int(m, (obj && *obj) ? &(*obj)->bus : NULL((void*)0), "bus", errp);
1079 visit_type_PciDeviceInfoList(m, (obj && *obj) ? &(*obj)->devices : NULL((void*)0), "devices", errp);
1080end:
1081 visit_end_struct(m, errp);
1082}
1083
1084void visit_type_PciInfoList(Visitor *m, PciInfoList ** obj, const char *name, Error **errp)
1085{
1086 GenericList *i, **prev = (GenericList **)obj;
1087
1088 if (error_is_set(errp)) {
1089 return;
1090 }
1091 visit_start_list(m, name, errp);
1092
1093 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
1094 PciInfoList *native_i = (PciInfoList *)i;
1095 visit_type_PciInfo(m, &native_i->value, NULL((void*)0), errp);
1096 }
1097
1098 visit_end_list(m, errp);
1099}
1100
1101void visit_type_BlockJobInfo(Visitor *m, BlockJobInfo ** obj, const char *name, Error **errp)
1102{
1103 if (error_is_set(errp)) {
1104 return;
1105 }
1106 visit_start_struct(m, (void **)obj, "BlockJobInfo", name, sizeof(BlockJobInfo), errp);
1107 if (obj && !*obj) {
1108 goto end;
1109 }
1110 visit_type_str(m, (obj && *obj) ? &(*obj)->type : NULL((void*)0), "type", errp);
1111 visit_type_str(m, (obj && *obj) ? &(*obj)->device : NULL((void*)0), "device", errp);
1112 visit_type_int(m, (obj && *obj) ? &(*obj)->len : NULL((void*)0), "len", errp);
1113 visit_type_int(m, (obj && *obj) ? &(*obj)->offset : NULL((void*)0), "offset", errp);
1114 visit_type_int(m, (obj && *obj) ? &(*obj)->speed : NULL((void*)0), "speed", errp);
1115end:
1116 visit_end_struct(m, errp);
1117}
1118
1119void visit_type_BlockJobInfoList(Visitor *m, BlockJobInfoList ** obj, const char *name, Error **errp)
1120{
1121 GenericList *i, **prev = (GenericList **)obj;
1122
1123 if (error_is_set(errp)) {
1124 return;
1125 }
1126 visit_start_list(m, name, errp);
1127
1128 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
1129 BlockJobInfoList *native_i = (BlockJobInfoList *)i;
1130 visit_type_BlockJobInfo(m, &native_i->value, NULL((void*)0), errp);
1131 }
1132
1133 visit_end_list(m, errp);
1134}
1135
1136void visit_type_NewImageMode(Visitor *m, NewImageMode * obj, const char *name, Error **errp)
1137{
1138 visit_type_enum(m, (int *)obj, NewImageMode_lookup, "NewImageMode", name, errp);
1139}
1140
1141void visit_type_BlockdevSnapshot(Visitor *m, BlockdevSnapshot ** obj, const char *name, Error **errp)
1142{
1143 if (error_is_set(errp)) {
1144 return;
1145 }
1146 visit_start_struct(m, (void **)obj, "BlockdevSnapshot", name, sizeof(BlockdevSnapshot), errp);
1147 if (obj && !*obj) {
1148 goto end;
1149 }
1150 visit_type_str(m, (obj && *obj) ? &(*obj)->device : NULL((void*)0), "device", errp);
1151 visit_type_str(m, (obj && *obj) ? &(*obj)->snapshot_file : NULL((void*)0), "snapshot-file", errp);
1152 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_format : NULL((void*)0), "format", errp);
1153 if ((*obj)->has_format) {
1154 visit_type_str(m, (obj && *obj) ? &(*obj)->format : NULL((void*)0), "format", errp);
1155 }
1156 visit_end_optional(m, errp);
1157 visit_start_optional(m, (obj && *obj) ? &(*obj)->has_mode : NULL((void*)0), "mode", errp);
1158 if ((*obj)->has_mode) {
1159 visit_type_NewImageMode(m, (obj && *obj) ? &(*obj)->mode : NULL((void*)0), "mode", errp);
1160 }
1161 visit_end_optional(m, errp);
1162end:
1163 visit_end_struct(m, errp);
1164}
1165
1166void visit_type_BlockdevSnapshotList(Visitor *m, BlockdevSnapshotList ** obj, const char *name, Error **errp)
1167{
1168 GenericList *i, **prev = (GenericList **)obj;
1169
1170 if (error_is_set(errp)) {
1171 return;
1172 }
1173 visit_start_list(m, name, errp);
1174
1175 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
1176 BlockdevSnapshotList *native_i = (BlockdevSnapshotList *)i;
1177 visit_type_BlockdevSnapshot(m, &native_i->value, NULL((void*)0), errp);
1178 }
1179
1180 visit_end_list(m, errp);
1181}
1182
1183void visit_type_BlockdevActionKind(Visitor *m, BlockdevActionKind * obj, const char *name, Error **errp)
1184{
1185 visit_type_enum(m, (int *)obj, BlockdevActionKind_lookup, "BlockdevActionKind", name, errp);
1186}
1187
1188void visit_type_BlockdevAction(Visitor *m, BlockdevAction ** obj, const char *name, Error **errp)
1189{
1190 Error *err = NULL((void*)0);
1191
1192 if (error_is_set(errp)) {
1193 return;
1194 }
1195 visit_start_struct(m, (void **)obj, "BlockdevAction", name, sizeof(BlockdevAction), &err);
1196 if (obj && !*obj) {
1197 goto end;
1198 }
1199 visit_type_BlockdevActionKind(m, &(*obj)->kind, "type", &err);
1200 if (err) {
1201 error_propagate(errp, err);
1202 goto end;
1203 }
1204 switch ((*obj)->kind) {
1205 case BLOCKDEV_ACTION_KIND_BLOCKDEV_SNAPSHOT_SYNC:
1206 visit_type_BlockdevSnapshot(m, &(*obj)->blockdev_snapshot_sync, "data", errp);
1207 break;
1208 default:
1209 abort();
1210 }
1211end:
1212 visit_end_struct(m, errp);
1213}
1214
1215void visit_type_BlockdevActionList(Visitor *m, BlockdevActionList ** obj, const char *name, Error **errp)
1216{
1217 GenericList *i, **prev = (GenericList **)obj;
1218
1219 if (error_is_set(errp)) {
1220 return;
1221 }
1222 visit_start_list(m, name, errp);
1223
1224 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
1225 BlockdevActionList *native_i = (BlockdevActionList *)i;
1226 visit_type_BlockdevAction(m, &native_i->value, NULL((void*)0), errp);
1227 }
1228
1229 visit_end_list(m, errp);
1230}
1231
1232void visit_type_ObjectPropertyInfo(Visitor *m, ObjectPropertyInfo ** obj, const char *name, Error **errp)
1233{
1234 if (error_is_set(errp)) {
1235 return;
1236 }
1237 visit_start_struct(m, (void **)obj, "ObjectPropertyInfo", name, sizeof(ObjectPropertyInfo), errp);
1238 if (obj && !*obj) {
1239 goto end;
1240 }
1241 visit_type_str(m, (obj && *obj) ? &(*obj)->name : NULL((void*)0), "name", errp);
1242 visit_type_str(m, (obj && *obj) ? &(*obj)->type : NULL((void*)0), "type", errp);
1243end:
1244 visit_end_struct(m, errp);
1245}
1246
1247void visit_type_ObjectPropertyInfoList(Visitor *m, ObjectPropertyInfoList ** obj, const char *name, Error **errp)
1248{
1249 GenericList *i, **prev = (GenericList **)obj;
1250
1251 if (error_is_set(errp)) {
1252 return;
1253 }
1254 visit_start_list(m, name, errp);
1255
1256 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
1257 ObjectPropertyInfoList *native_i = (ObjectPropertyInfoList *)i;
1258 visit_type_ObjectPropertyInfo(m, &native_i->value, NULL((void*)0), errp);
1259 }
1260
1261 visit_end_list(m, errp);
1262}
1263
1264void visit_type_ObjectTypeInfo(Visitor *m, ObjectTypeInfo ** obj, const char *name, Error **errp)
1265{
1266 if (error_is_set(errp)) {
1267 return;
1268 }
1269 visit_start_struct(m, (void **)obj, "ObjectTypeInfo", name, sizeof(ObjectTypeInfo), errp);
1270 if (obj && !*obj) {
1271 goto end;
1272 }
1273 visit_type_str(m, (obj && *obj) ? &(*obj)->name : NULL((void*)0), "name", errp);
1274end:
1275 visit_end_struct(m, errp);
1276}
1277
1278void visit_type_ObjectTypeInfoList(Visitor *m, ObjectTypeInfoList ** obj, const char *name, Error **errp)
1279{
1280 GenericList *i, **prev = (GenericList **)obj;
1281
1282 if (error_is_set(errp)) {
1283 return;
1284 }
1285 visit_start_list(m, name, errp);
1286
1287 for (; (i = visit_next_list(m, prev, errp)) != NULL((void*)0); prev = &i) {
1288 ObjectTypeInfoList *native_i = (ObjectTypeInfoList *)i;
1289 visit_type_ObjectTypeInfo(m, &native_i->value, NULL((void*)0), errp);
1290 }
1291
1292 visit_end_list(m, errp);
1293}