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 "qemu-common.h" 17#include "qapi-visit.h" 18 19#ifndef QAPI_VISIT_BUILTIN_VISITOR_DEF_H 20#define QAPI_VISIT_BUILTIN_VISITOR_DEF_H 21 22 23void visit_type_strList(Visitor *m, strList ** obj, const char *name, Error **errp) 24{ 25 GenericList *i, **prev = (GenericList **)obj; 26 Error *err = NULL; 27 28 if (!error_is_set(errp)) { 29 visit_start_list(m, name, &err); 30 if (!err) { 31 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 32 strList *native_i = (strList *)i; 33 visit_type_str(m, &native_i->value, NULL, &err); 34 } 35 error_propagate(errp, err); 36 err = NULL; 37 38 /* Always call end_list if start_list succeeded. */ 39 visit_end_list(m, &err); 40 } 41 error_propagate(errp, err); 42 } 43} 44 45void visit_type_intList(Visitor *m, intList ** obj, const char *name, Error **errp) 46{ 47 GenericList *i, **prev = (GenericList **)obj; 48 Error *err = NULL; 49 50 if (!error_is_set(errp)) { 51 visit_start_list(m, name, &err); 52 if (!err) { 53 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 54 intList *native_i = (intList *)i; 55 visit_type_int(m, &native_i->value, NULL, &err); 56 } 57 error_propagate(errp, err); 58 err = NULL; 59 60 /* Always call end_list if start_list succeeded. */ 61 visit_end_list(m, &err); 62 } 63 error_propagate(errp, err); 64 } 65} 66 67void visit_type_numberList(Visitor *m, numberList ** obj, const char *name, Error **errp) 68{ 69 GenericList *i, **prev = (GenericList **)obj; 70 Error *err = NULL; 71 72 if (!error_is_set(errp)) { 73 visit_start_list(m, name, &err); 74 if (!err) { 75 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 76 numberList *native_i = (numberList *)i; 77 visit_type_number(m, &native_i->value, NULL, &err); 78 } 79 error_propagate(errp, err); 80 err = NULL; 81 82 /* Always call end_list if start_list succeeded. */ 83 visit_end_list(m, &err); 84 } 85 error_propagate(errp, err); 86 } 87} 88 89void visit_type_boolList(Visitor *m, boolList ** obj, const char *name, Error **errp) 90{ 91 GenericList *i, **prev = (GenericList **)obj; 92 Error *err = NULL; 93 94 if (!error_is_set(errp)) { 95 visit_start_list(m, name, &err); 96 if (!err) { 97 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 98 boolList *native_i = (boolList *)i; 99 visit_type_bool(m, &native_i->value, NULL, &err); 100 } 101 error_propagate(errp, err); 102 err = NULL; 103 104 /* Always call end_list if start_list succeeded. */ 105 visit_end_list(m, &err); 106 } 107 error_propagate(errp, err); 108 } 109} 110 111void visit_type_int8List(Visitor *m, int8List ** obj, const char *name, Error **errp) 112{ 113 GenericList *i, **prev = (GenericList **)obj; 114 Error *err = NULL; 115 116 if (!error_is_set(errp)) { 117 visit_start_list(m, name, &err); 118 if (!err) { 119 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 120 int8List *native_i = (int8List *)i; 121 visit_type_int8(m, &native_i->value, NULL, &err); 122 } 123 error_propagate(errp, err); 124 err = NULL; 125 126 /* Always call end_list if start_list succeeded. */ 127 visit_end_list(m, &err); 128 } 129 error_propagate(errp, err); 130 } 131} 132 133void visit_type_int16List(Visitor *m, int16List ** obj, const char *name, Error **errp) 134{ 135 GenericList *i, **prev = (GenericList **)obj; 136 Error *err = NULL; 137 138 if (!error_is_set(errp)) { 139 visit_start_list(m, name, &err); 140 if (!err) { 141 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 142 int16List *native_i = (int16List *)i; 143 visit_type_int16(m, &native_i->value, NULL, &err); 144 } 145 error_propagate(errp, err); 146 err = NULL; 147 148 /* Always call end_list if start_list succeeded. */ 149 visit_end_list(m, &err); 150 } 151 error_propagate(errp, err); 152 } 153} 154 155void visit_type_int32List(Visitor *m, int32List ** obj, const char *name, Error **errp) 156{ 157 GenericList *i, **prev = (GenericList **)obj; 158 Error *err = NULL; 159 160 if (!error_is_set(errp)) { 161 visit_start_list(m, name, &err); 162 if (!err) { 163 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 164 int32List *native_i = (int32List *)i; 165 visit_type_int32(m, &native_i->value, NULL, &err); 166 } 167 error_propagate(errp, err); 168 err = NULL; 169 170 /* Always call end_list if start_list succeeded. */ 171 visit_end_list(m, &err); 172 } 173 error_propagate(errp, err); 174 } 175} 176 177void visit_type_int64List(Visitor *m, int64List ** obj, const char *name, Error **errp) 178{ 179 GenericList *i, **prev = (GenericList **)obj; 180 Error *err = NULL; 181 182 if (!error_is_set(errp)) { 183 visit_start_list(m, name, &err); 184 if (!err) { 185 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 186 int64List *native_i = (int64List *)i; 187 visit_type_int64(m, &native_i->value, NULL, &err); 188 } 189 error_propagate(errp, err); 190 err = NULL; 191 192 /* Always call end_list if start_list succeeded. */ 193 visit_end_list(m, &err); 194 } 195 error_propagate(errp, err); 196 } 197} 198 199void visit_type_uint8List(Visitor *m, uint8List ** obj, const char *name, Error **errp) 200{ 201 GenericList *i, **prev = (GenericList **)obj; 202 Error *err = NULL; 203 204 if (!error_is_set(errp)) { 205 visit_start_list(m, name, &err); 206 if (!err) { 207 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 208 uint8List *native_i = (uint8List *)i; 209 visit_type_uint8(m, &native_i->value, NULL, &err); 210 } 211 error_propagate(errp, err); 212 err = NULL; 213 214 /* Always call end_list if start_list succeeded. */ 215 visit_end_list(m, &err); 216 } 217 error_propagate(errp, err); 218 } 219} 220 221void visit_type_uint16List(Visitor *m, uint16List ** obj, const char *name, Error **errp) 222{ 223 GenericList *i, **prev = (GenericList **)obj; 224 Error *err = NULL; 225 226 if (!error_is_set(errp)) { 227 visit_start_list(m, name, &err); 228 if (!err) { 229 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 230 uint16List *native_i = (uint16List *)i; 231 visit_type_uint16(m, &native_i->value, NULL, &err); 232 } 233 error_propagate(errp, err); 234 err = NULL; 235 236 /* Always call end_list if start_list succeeded. */ 237 visit_end_list(m, &err); 238 } 239 error_propagate(errp, err); 240 } 241} 242 243void visit_type_uint32List(Visitor *m, uint32List ** obj, const char *name, Error **errp) 244{ 245 GenericList *i, **prev = (GenericList **)obj; 246 Error *err = NULL; 247 248 if (!error_is_set(errp)) { 249 visit_start_list(m, name, &err); 250 if (!err) { 251 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 252 uint32List *native_i = (uint32List *)i; 253 visit_type_uint32(m, &native_i->value, NULL, &err); 254 } 255 error_propagate(errp, err); 256 err = NULL; 257 258 /* Always call end_list if start_list succeeded. */ 259 visit_end_list(m, &err); 260 } 261 error_propagate(errp, err); 262 } 263} 264 265void visit_type_uint64List(Visitor *m, uint64List ** obj, const char *name, Error **errp) 266{ 267 GenericList *i, **prev = (GenericList **)obj; 268 Error *err = NULL; 269 270 if (!error_is_set(errp)) { 271 visit_start_list(m, name, &err); 272 if (!err) { 273 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 274 uint64List *native_i = (uint64List *)i; 275 visit_type_uint64(m, &native_i->value, NULL, &err); 276 } 277 error_propagate(errp, err); 278 err = NULL; 279 280 /* Always call end_list if start_list succeeded. */ 281 visit_end_list(m, &err); 282 } 283 error_propagate(errp, err); 284 } 285} 286 287#endif /* QAPI_VISIT_BUILTIN_VISITOR_DEF_H */ 288 289 290void visit_type_ErrorClassList(Visitor *m, ErrorClassList ** obj, const char *name, Error **errp) 291{ 292 GenericList *i, **prev = (GenericList **)obj; 293 Error *err = NULL; 294 295 if (!error_is_set(errp)) { 296 visit_start_list(m, name, &err); 297 if (!err) { 298 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 299 ErrorClassList *native_i = (ErrorClassList *)i; 300 visit_type_ErrorClass(m, &native_i->value, NULL, &err); 301 } 302 error_propagate(errp, err); 303 err = NULL; 304 305 /* Always call end_list if start_list succeeded. */ 306 visit_end_list(m, &err); 307 } 308 error_propagate(errp, err); 309 } 310} 311 312void visit_type_ErrorClass(Visitor *m, ErrorClass * obj, const char *name, Error **errp) 313{ 314 visit_type_enum(m, (int *)obj, ErrorClass_lookup, "ErrorClass", name, errp); 315} 316 317static void visit_type_NameInfo_fields(Visitor *m, NameInfo ** obj, Error **errp) 318{ 319 Error *err = NULL; 320 visit_start_optional(m, obj ? &(*obj)->has_name : NULL, "name", &err); 321 if (obj && (*obj)->has_name) { 322 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 323 } 324 visit_end_optional(m, &err); 325 326 error_propagate(errp, err); 327} 328 329void visit_type_NameInfo(Visitor *m, NameInfo ** obj, const char *name, Error **errp) 330{ 331 if (!error_is_set(errp)) { 332 Error *err = NULL; 333 visit_start_struct(m, (void **)obj, "NameInfo", name, sizeof(NameInfo), &err); 334 if (!err) { 335 if (!obj || *obj) { 336 visit_type_NameInfo_fields(m, obj, &err); 337 error_propagate(errp, err); 338 err = NULL; 339 } 340 /* Always call end_struct if start_struct succeeded. */ 341 visit_end_struct(m, &err); 342 } 343 error_propagate(errp, err); 344 } 345} 346 347void visit_type_NameInfoList(Visitor *m, NameInfoList ** obj, const char *name, Error **errp) 348{ 349 GenericList *i, **prev = (GenericList **)obj; 350 Error *err = NULL; 351 352 if (!error_is_set(errp)) { 353 visit_start_list(m, name, &err); 354 if (!err) { 355 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 356 NameInfoList *native_i = (NameInfoList *)i; 357 visit_type_NameInfo(m, &native_i->value, NULL, &err); 358 } 359 error_propagate(errp, err); 360 err = NULL; 361 362 /* Always call end_list if start_list succeeded. */ 363 visit_end_list(m, &err); 364 } 365 error_propagate(errp, err); 366 } 367} 368 369static void visit_type_VersionInfo_qemu_fields(Visitor *m, VersionInfo ** obj, Error **errp) 370{ 371 Error *err = NULL; 372 visit_type_int(m, obj ? &(*obj)->qemu.major : NULL, "major", &err); 373 visit_type_int(m, obj ? &(*obj)->qemu.minor : NULL, "minor", &err); 374 visit_type_int(m, obj ? &(*obj)->qemu.micro : NULL, "micro", &err); 375 376 error_propagate(errp, err); 377} 378 379static void visit_type_VersionInfo_fields(Visitor *m, VersionInfo ** obj, Error **errp) 380{ 381 Error *err = NULL; 382 if (!error_is_set(errp)) { 383 Error **errp = &err; /* from outer scope */ 384 Error *err = NULL; 385 visit_start_struct(m, NULL, "", "qemu", 0, &err); 386 if (!err) { 387 if (!obj || *obj) { 388 visit_type_VersionInfo_qemu_fields(m, obj, &err); 389 error_propagate(errp, err); 390 err = NULL; 391 } 392 /* Always call end_struct if start_struct succeeded. */ 393 visit_end_struct(m, &err); 394 } 395 error_propagate(errp, err); 396 } 397 visit_type_str(m, obj ? &(*obj)->package : NULL, "package", &err); 398 399 error_propagate(errp, err); 400} 401 402void visit_type_VersionInfo(Visitor *m, VersionInfo ** obj, const char *name, Error **errp) 403{ 404 if (!error_is_set(errp)) { 405 Error *err = NULL; 406 visit_start_struct(m, (void **)obj, "VersionInfo", name, sizeof(VersionInfo), &err); 407 if (!err) { 408 if (!obj || *obj) { 409 visit_type_VersionInfo_fields(m, obj, &err); 410 error_propagate(errp, err); 411 err = NULL; 412 } 413 /* Always call end_struct if start_struct succeeded. */ 414 visit_end_struct(m, &err); 415 } 416 error_propagate(errp, err); 417 } 418} 419 420void visit_type_VersionInfoList(Visitor *m, VersionInfoList ** obj, const char *name, Error **errp) 421{ 422 GenericList *i, **prev = (GenericList **)obj; 423 Error *err = NULL; 424 425 if (!error_is_set(errp)) { 426 visit_start_list(m, name, &err); 427 if (!err) { 428 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 429 VersionInfoList *native_i = (VersionInfoList *)i; 430 visit_type_VersionInfo(m, &native_i->value, NULL, &err); 431 } 432 error_propagate(errp, err); 433 err = NULL; 434 435 /* Always call end_list if start_list succeeded. */ 436 visit_end_list(m, &err); 437 } 438 error_propagate(errp, err); 439 } 440} 441 442static void visit_type_KvmInfo_fields(Visitor *m, KvmInfo ** obj, Error **errp) 443{ 444 Error *err = NULL; 445 visit_type_bool(m, obj ? &(*obj)->enabled : NULL, "enabled", &err); 446 visit_type_bool(m, obj ? &(*obj)->present : NULL, "present", &err); 447 448 error_propagate(errp, err); 449} 450 451void visit_type_KvmInfo(Visitor *m, KvmInfo ** obj, const char *name, Error **errp) 452{ 453 if (!error_is_set(errp)) { 454 Error *err = NULL; 455 visit_start_struct(m, (void **)obj, "KvmInfo", name, sizeof(KvmInfo), &err); 456 if (!err) { 457 if (!obj || *obj) { 458 visit_type_KvmInfo_fields(m, obj, &err); 459 error_propagate(errp, err); 460 err = NULL; 461 } 462 /* Always call end_struct if start_struct succeeded. */ 463 visit_end_struct(m, &err); 464 } 465 error_propagate(errp, err); 466 } 467} 468 469void visit_type_KvmInfoList(Visitor *m, KvmInfoList ** obj, const char *name, Error **errp) 470{ 471 GenericList *i, **prev = (GenericList **)obj; 472 Error *err = NULL; 473 474 if (!error_is_set(errp)) { 475 visit_start_list(m, name, &err); 476 if (!err) { 477 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 478 KvmInfoList *native_i = (KvmInfoList *)i; 479 visit_type_KvmInfo(m, &native_i->value, NULL, &err); 480 } 481 error_propagate(errp, err); 482 err = NULL; 483 484 /* Always call end_list if start_list succeeded. */ 485 visit_end_list(m, &err); 486 } 487 error_propagate(errp, err); 488 } 489} 490 491void visit_type_RunStateList(Visitor *m, RunStateList ** obj, const char *name, Error **errp) 492{ 493 GenericList *i, **prev = (GenericList **)obj; 494 Error *err = NULL; 495 496 if (!error_is_set(errp)) { 497 visit_start_list(m, name, &err); 498 if (!err) { 499 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 500 RunStateList *native_i = (RunStateList *)i; 501 visit_type_RunState(m, &native_i->value, NULL, &err); 502 } 503 error_propagate(errp, err); 504 err = NULL; 505 506 /* Always call end_list if start_list succeeded. */ 507 visit_end_list(m, &err); 508 } 509 error_propagate(errp, err); 510 } 511} 512 513void visit_type_RunState(Visitor *m, RunState * obj, const char *name, Error **errp) 514{ 515 visit_type_enum(m, (int *)obj, RunState_lookup, "RunState", name, errp); 516} 517 518static void visit_type_SnapshotInfo_fields(Visitor *m, SnapshotInfo ** obj, Error **errp) 519{ 520 Error *err = NULL; 521 visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 522 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 523 visit_type_int(m, obj ? &(*obj)->vm_state_size : NULL, "vm-state-size", &err); 524 visit_type_int(m, obj ? &(*obj)->date_sec : NULL, "date-sec", &err); 525 visit_type_int(m, obj ? &(*obj)->date_nsec : NULL, "date-nsec", &err); 526 visit_type_int(m, obj ? &(*obj)->vm_clock_sec : NULL, "vm-clock-sec", &err); 527 visit_type_int(m, obj ? &(*obj)->vm_clock_nsec : NULL, "vm-clock-nsec", &err); 528 529 error_propagate(errp, err); 530} 531 532void visit_type_SnapshotInfo(Visitor *m, SnapshotInfo ** obj, const char *name, Error **errp) 533{ 534 if (!error_is_set(errp)) { 535 Error *err = NULL; 536 visit_start_struct(m, (void **)obj, "SnapshotInfo", name, sizeof(SnapshotInfo), &err); 537 if (!err) { 538 if (!obj || *obj) { 539 visit_type_SnapshotInfo_fields(m, obj, &err); 540 error_propagate(errp, err); 541 err = NULL; 542 } 543 /* Always call end_struct if start_struct succeeded. */ 544 visit_end_struct(m, &err); 545 } 546 error_propagate(errp, err); 547 } 548} 549 550void visit_type_SnapshotInfoList(Visitor *m, SnapshotInfoList ** obj, const char *name, Error **errp) 551{ 552 GenericList *i, **prev = (GenericList **)obj; 553 Error *err = NULL; 554 555 if (!error_is_set(errp)) { 556 visit_start_list(m, name, &err); 557 if (!err) { 558 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 559 SnapshotInfoList *native_i = (SnapshotInfoList *)i; 560 visit_type_SnapshotInfo(m, &native_i->value, NULL, &err); 561 } 562 error_propagate(errp, err); 563 err = NULL; 564 565 /* Always call end_list if start_list succeeded. */ 566 visit_end_list(m, &err); 567 } 568 error_propagate(errp, err); 569 } 570} 571 572static void visit_type_ImageInfoSpecificQCow2_fields(Visitor *m, ImageInfoSpecificQCow2 ** obj, Error **errp) 573{ 574 Error *err = NULL; 575 visit_type_str(m, obj ? &(*obj)->compat : NULL, "compat", &err); 576 visit_start_optional(m, obj ? &(*obj)->has_lazy_refcounts : NULL, "lazy-refcounts", &err); 577 if (obj && (*obj)->has_lazy_refcounts) { 578 visit_type_bool(m, obj ? &(*obj)->lazy_refcounts : NULL, "lazy-refcounts", &err); 579 } 580 visit_end_optional(m, &err); 581 582 error_propagate(errp, err); 583} 584 585void visit_type_ImageInfoSpecificQCow2(Visitor *m, ImageInfoSpecificQCow2 ** obj, const char *name, Error **errp) 586{ 587 if (!error_is_set(errp)) { 588 Error *err = NULL; 589 visit_start_struct(m, (void **)obj, "ImageInfoSpecificQCow2", name, sizeof(ImageInfoSpecificQCow2), &err); 590 if (!err) { 591 if (!obj || *obj) { 592 visit_type_ImageInfoSpecificQCow2_fields(m, obj, &err); 593 error_propagate(errp, err); 594 err = NULL; 595 } 596 /* Always call end_struct if start_struct succeeded. */ 597 visit_end_struct(m, &err); 598 } 599 error_propagate(errp, err); 600 } 601} 602 603void visit_type_ImageInfoSpecificQCow2List(Visitor *m, ImageInfoSpecificQCow2List ** obj, const char *name, Error **errp) 604{ 605 GenericList *i, **prev = (GenericList **)obj; 606 Error *err = NULL; 607 608 if (!error_is_set(errp)) { 609 visit_start_list(m, name, &err); 610 if (!err) { 611 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 612 ImageInfoSpecificQCow2List *native_i = (ImageInfoSpecificQCow2List *)i; 613 visit_type_ImageInfoSpecificQCow2(m, &native_i->value, NULL, &err); 614 } 615 error_propagate(errp, err); 616 err = NULL; 617 618 /* Always call end_list if start_list succeeded. */ 619 visit_end_list(m, &err); 620 } 621 error_propagate(errp, err); 622 } 623} 624 625static void visit_type_ImageInfoSpecificVmdk_fields(Visitor *m, ImageInfoSpecificVmdk ** obj, Error **errp) 626{ 627 Error *err = NULL; 628 visit_type_str(m, obj ? &(*obj)->create_type : NULL, "create-type", &err); 629 visit_type_int(m, obj ? &(*obj)->cid : NULL, "cid", &err); 630 visit_type_int(m, obj ? &(*obj)->parent_cid : NULL, "parent-cid", &err); 631 visit_type_ImageInfoList(m, obj ? &(*obj)->extents : NULL, "extents", &err); 632 633 error_propagate(errp, err); 634} 635 636void visit_type_ImageInfoSpecificVmdk(Visitor *m, ImageInfoSpecificVmdk ** obj, const char *name, Error **errp) 637{ 638 if (!error_is_set(errp)) { 639 Error *err = NULL; 640 visit_start_struct(m, (void **)obj, "ImageInfoSpecificVmdk", name, sizeof(ImageInfoSpecificVmdk), &err); 641 if (!err) { 642 if (!obj || *obj) { 643 visit_type_ImageInfoSpecificVmdk_fields(m, obj, &err); 644 error_propagate(errp, err); 645 err = NULL; 646 } 647 /* Always call end_struct if start_struct succeeded. */ 648 visit_end_struct(m, &err); 649 } 650 error_propagate(errp, err); 651 } 652} 653 654void visit_type_ImageInfoSpecificVmdkList(Visitor *m, ImageInfoSpecificVmdkList ** obj, const char *name, Error **errp) 655{ 656 GenericList *i, **prev = (GenericList **)obj; 657 Error *err = NULL; 658 659 if (!error_is_set(errp)) { 660 visit_start_list(m, name, &err); 661 if (!err) { 662 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 663 ImageInfoSpecificVmdkList *native_i = (ImageInfoSpecificVmdkList *)i; 664 visit_type_ImageInfoSpecificVmdk(m, &native_i->value, NULL, &err); 665 } 666 error_propagate(errp, err); 667 err = NULL; 668 669 /* Always call end_list if start_list succeeded. */ 670 visit_end_list(m, &err); 671 } 672 error_propagate(errp, err); 673 } 674} 675 676void visit_type_ImageInfoSpecificKind(Visitor *m, ImageInfoSpecificKind * obj, const char *name, Error **errp) 677{ 678 visit_type_enum(m, (int *)obj, ImageInfoSpecificKind_lookup, "ImageInfoSpecificKind", name, errp); 679} 680 681void visit_type_ImageInfoSpecific(Visitor *m, ImageInfoSpecific ** obj, const char *name, Error **errp) 682{ 683 Error *err = NULL; 684 685 if (!error_is_set(errp)) { 686 visit_start_struct(m, (void **)obj, "ImageInfoSpecific", name, sizeof(ImageInfoSpecific), &err); 687 if (!err) { 688 if (obj && *obj) { 689 visit_type_ImageInfoSpecificKind(m, &(*obj)->kind, "type", &err); 690 if (!err) { 691 switch ((*obj)->kind) { 692 case IMAGE_INFO_SPECIFIC_KIND_QCOW2: 693 visit_type_ImageInfoSpecificQCow2(m, &(*obj)->qcow2, "data", &err); 694 break; 695 case IMAGE_INFO_SPECIFIC_KIND_VMDK: 696 visit_type_ImageInfoSpecificVmdk(m, &(*obj)->vmdk, "data", &err); 697 break; 698 default: 699 abort(); 700 } 701 } 702 error_propagate(errp, err); 703 err = NULL; 704 } 705 /* Always call end_struct if start_struct succeeded. */ 706 visit_end_struct(m, &err); 707 } 708 error_propagate(errp, err); 709 } 710} 711 712void visit_type_ImageInfoSpecificList(Visitor *m, ImageInfoSpecificList ** obj, const char *name, Error **errp) 713{ 714 GenericList *i, **prev = (GenericList **)obj; 715 Error *err = NULL; 716 717 if (!error_is_set(errp)) { 718 visit_start_list(m, name, &err); 719 if (!err) { 720 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 721 ImageInfoSpecificList *native_i = (ImageInfoSpecificList *)i; 722 visit_type_ImageInfoSpecific(m, &native_i->value, NULL, &err); 723 } 724 error_propagate(errp, err); 725 err = NULL; 726 727 /* Always call end_list if start_list succeeded. */ 728 visit_end_list(m, &err); 729 } 730 error_propagate(errp, err); 731 } 732} 733 734static void visit_type_ImageInfo_fields(Visitor *m, ImageInfo ** obj, Error **errp) 735{ 736 Error *err = NULL; 737 visit_type_str(m, obj ? &(*obj)->filename : NULL, "filename", &err); 738 visit_type_str(m, obj ? &(*obj)->format : NULL, "format", &err); 739 visit_start_optional(m, obj ? &(*obj)->has_dirty_flag : NULL, "dirty-flag", &err); 740 if (obj && (*obj)->has_dirty_flag) { 741 visit_type_bool(m, obj ? &(*obj)->dirty_flag : NULL, "dirty-flag", &err); 742 } 743 visit_end_optional(m, &err); 744 visit_start_optional(m, obj ? &(*obj)->has_actual_size : NULL, "actual-size", &err); 745 if (obj && (*obj)->has_actual_size) { 746 visit_type_int(m, obj ? &(*obj)->actual_size : NULL, "actual-size", &err); 747 } 748 visit_end_optional(m, &err); 749 visit_type_int(m, obj ? &(*obj)->virtual_size : NULL, "virtual-size", &err); 750 visit_start_optional(m, obj ? &(*obj)->has_cluster_size : NULL, "cluster-size", &err); 751 if (obj && (*obj)->has_cluster_size) { 752 visit_type_int(m, obj ? &(*obj)->cluster_size : NULL, "cluster-size", &err); 753 } 754 visit_end_optional(m, &err); 755 visit_start_optional(m, obj ? &(*obj)->has_encrypted : NULL, "encrypted", &err); 756 if (obj && (*obj)->has_encrypted) { 757 visit_type_bool(m, obj ? &(*obj)->encrypted : NULL, "encrypted", &err); 758 } 759 visit_end_optional(m, &err); 760 visit_start_optional(m, obj ? &(*obj)->has_compressed : NULL, "compressed", &err); 761 if (obj && (*obj)->has_compressed) { 762 visit_type_bool(m, obj ? &(*obj)->compressed : NULL, "compressed", &err); 763 } 764 visit_end_optional(m, &err); 765 visit_start_optional(m, obj ? &(*obj)->has_backing_filename : NULL, "backing-filename", &err); 766 if (obj && (*obj)->has_backing_filename) { 767 visit_type_str(m, obj ? &(*obj)->backing_filename : NULL, "backing-filename", &err); 768 } 769 visit_end_optional(m, &err); 770 visit_start_optional(m, obj ? &(*obj)->has_full_backing_filename : NULL, "full-backing-filename", &err); 771 if (obj && (*obj)->has_full_backing_filename) { 772 visit_type_str(m, obj ? &(*obj)->full_backing_filename : NULL, "full-backing-filename", &err); 773 } 774 visit_end_optional(m, &err); 775 visit_start_optional(m, obj ? &(*obj)->has_backing_filename_format : NULL, "backing-filename-format", &err); 776 if (obj && (*obj)->has_backing_filename_format) { 777 visit_type_str(m, obj ? &(*obj)->backing_filename_format : NULL, "backing-filename-format", &err); 778 } 779 visit_end_optional(m, &err); 780 visit_start_optional(m, obj ? &(*obj)->has_snapshots : NULL, "snapshots", &err); 781 if (obj && (*obj)->has_snapshots) { 782 visit_type_SnapshotInfoList(m, obj ? &(*obj)->snapshots : NULL, "snapshots", &err); 783 } 784 visit_end_optional(m, &err); 785 visit_start_optional(m, obj ? &(*obj)->has_backing_image : NULL, "backing-image", &err); 786 if (obj && (*obj)->has_backing_image) { 787 visit_type_ImageInfo(m, obj ? &(*obj)->backing_image : NULL, "backing-image", &err); 788 } 789 visit_end_optional(m, &err); 790 visit_start_optional(m, obj ? &(*obj)->has_format_specific : NULL, "format-specific", &err); 791 if (obj && (*obj)->has_format_specific) { 792 visit_type_ImageInfoSpecific(m, obj ? &(*obj)->format_specific : NULL, "format-specific", &err); 793 } 794 visit_end_optional(m, &err); 795 796 error_propagate(errp, err); 797} 798 799void visit_type_ImageInfo(Visitor *m, ImageInfo ** obj, const char *name, Error **errp) 800{ 801 if (!error_is_set(errp)) { 802 Error *err = NULL; 803 visit_start_struct(m, (void **)obj, "ImageInfo", name, sizeof(ImageInfo), &err); 804 if (!err) { 805 if (!obj || *obj) { 806 visit_type_ImageInfo_fields(m, obj, &err); 807 error_propagate(errp, err); 808 err = NULL; 809 } 810 /* Always call end_struct if start_struct succeeded. */ 811 visit_end_struct(m, &err); 812 } 813 error_propagate(errp, err); 814 } 815} 816 817void visit_type_ImageInfoList(Visitor *m, ImageInfoList ** obj, const char *name, Error **errp) 818{ 819 GenericList *i, **prev = (GenericList **)obj; 820 Error *err = NULL; 821 822 if (!error_is_set(errp)) { 823 visit_start_list(m, name, &err); 824 if (!err) { 825 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 826 ImageInfoList *native_i = (ImageInfoList *)i; 827 visit_type_ImageInfo(m, &native_i->value, NULL, &err); 828 } 829 error_propagate(errp, err); 830 err = NULL; 831 832 /* Always call end_list if start_list succeeded. */ 833 visit_end_list(m, &err); 834 } 835 error_propagate(errp, err); 836 } 837} 838 839static void visit_type_ImageCheck_fields(Visitor *m, ImageCheck ** obj, Error **errp) 840{ 841 Error *err = NULL; 842 visit_type_str(m, obj ? &(*obj)->filename : NULL, "filename", &err); 843 visit_type_str(m, obj ? &(*obj)->format : NULL, "format", &err); 844 visit_type_int(m, obj ? &(*obj)->check_errors : NULL, "check-errors", &err); 845 visit_start_optional(m, obj ? &(*obj)->has_image_end_offset : NULL, "image-end-offset", &err); 846 if (obj && (*obj)->has_image_end_offset) { 847 visit_type_int(m, obj ? &(*obj)->image_end_offset : NULL, "image-end-offset", &err); 848 } 849 visit_end_optional(m, &err); 850 visit_start_optional(m, obj ? &(*obj)->has_corruptions : NULL, "corruptions", &err); 851 if (obj && (*obj)->has_corruptions) { 852 visit_type_int(m, obj ? &(*obj)->corruptions : NULL, "corruptions", &err); 853 } 854 visit_end_optional(m, &err); 855 visit_start_optional(m, obj ? &(*obj)->has_leaks : NULL, "leaks", &err); 856 if (obj && (*obj)->has_leaks) { 857 visit_type_int(m, obj ? &(*obj)->leaks : NULL, "leaks", &err); 858 } 859 visit_end_optional(m, &err); 860 visit_start_optional(m, obj ? &(*obj)->has_corruptions_fixed : NULL, "corruptions-fixed", &err); 861 if (obj && (*obj)->has_corruptions_fixed) { 862 visit_type_int(m, obj ? &(*obj)->corruptions_fixed : NULL, "corruptions-fixed", &err); 863 } 864 visit_end_optional(m, &err); 865 visit_start_optional(m, obj ? &(*obj)->has_leaks_fixed : NULL, "leaks-fixed", &err); 866 if (obj && (*obj)->has_leaks_fixed) { 867 visit_type_int(m, obj ? &(*obj)->leaks_fixed : NULL, "leaks-fixed", &err); 868 } 869 visit_end_optional(m, &err); 870 visit_start_optional(m, obj ? &(*obj)->has_total_clusters : NULL, "total-clusters", &err); 871 if (obj && (*obj)->has_total_clusters) { 872 visit_type_int(m, obj ? &(*obj)->total_clusters : NULL, "total-clusters", &err); 873 } 874 visit_end_optional(m, &err); 875 visit_start_optional(m, obj ? &(*obj)->has_allocated_clusters : NULL, "allocated-clusters", &err); 876 if (obj && (*obj)->has_allocated_clusters) { 877 visit_type_int(m, obj ? &(*obj)->allocated_clusters : NULL, "allocated-clusters", &err); 878 } 879 visit_end_optional(m, &err); 880 visit_start_optional(m, obj ? &(*obj)->has_fragmented_clusters : NULL, "fragmented-clusters", &err); 881 if (obj && (*obj)->has_fragmented_clusters) { 882 visit_type_int(m, obj ? &(*obj)->fragmented_clusters : NULL, "fragmented-clusters", &err); 883 } 884 visit_end_optional(m, &err); 885 visit_start_optional(m, obj ? &(*obj)->has_compressed_clusters : NULL, "compressed-clusters", &err); 886 if (obj && (*obj)->has_compressed_clusters) { 887 visit_type_int(m, obj ? &(*obj)->compressed_clusters : NULL, "compressed-clusters", &err); 888 } 889 visit_end_optional(m, &err); 890 891 error_propagate(errp, err); 892} 893 894void visit_type_ImageCheck(Visitor *m, ImageCheck ** obj, const char *name, Error **errp) 895{ 896 if (!error_is_set(errp)) { 897 Error *err = NULL; 898 visit_start_struct(m, (void **)obj, "ImageCheck", name, sizeof(ImageCheck), &err); 899 if (!err) { 900 if (!obj || *obj) { 901 visit_type_ImageCheck_fields(m, obj, &err); 902 error_propagate(errp, err); 903 err = NULL; 904 } 905 /* Always call end_struct if start_struct succeeded. */ 906 visit_end_struct(m, &err); 907 } 908 error_propagate(errp, err); 909 } 910} 911 912void visit_type_ImageCheckList(Visitor *m, ImageCheckList ** obj, const char *name, Error **errp) 913{ 914 GenericList *i, **prev = (GenericList **)obj; 915 Error *err = NULL; 916 917 if (!error_is_set(errp)) { 918 visit_start_list(m, name, &err); 919 if (!err) { 920 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 921 ImageCheckList *native_i = (ImageCheckList *)i; 922 visit_type_ImageCheck(m, &native_i->value, NULL, &err); 923 } 924 error_propagate(errp, err); 925 err = NULL; 926 927 /* Always call end_list if start_list succeeded. */ 928 visit_end_list(m, &err); 929 } 930 error_propagate(errp, err); 931 } 932} 933 934static void visit_type_StatusInfo_fields(Visitor *m, StatusInfo ** obj, Error **errp) 935{ 936 Error *err = NULL; 937 visit_type_bool(m, obj ? &(*obj)->running : NULL, "running", &err); 938 visit_type_bool(m, obj ? &(*obj)->singlestep : NULL, "singlestep", &err); 939 visit_type_RunState(m, obj ? &(*obj)->status : NULL, "status", &err); 940 941 error_propagate(errp, err); 942} 943 944void visit_type_StatusInfo(Visitor *m, StatusInfo ** obj, const char *name, Error **errp) 945{ 946 if (!error_is_set(errp)) { 947 Error *err = NULL; 948 visit_start_struct(m, (void **)obj, "StatusInfo", name, sizeof(StatusInfo), &err); 949 if (!err) { 950 if (!obj || *obj) { 951 visit_type_StatusInfo_fields(m, obj, &err); 952 error_propagate(errp, err); 953 err = NULL; 954 } 955 /* Always call end_struct if start_struct succeeded. */ 956 visit_end_struct(m, &err); 957 } 958 error_propagate(errp, err); 959 } 960} 961 962void visit_type_StatusInfoList(Visitor *m, StatusInfoList ** obj, const char *name, Error **errp) 963{ 964 GenericList *i, **prev = (GenericList **)obj; 965 Error *err = NULL; 966 967 if (!error_is_set(errp)) { 968 visit_start_list(m, name, &err); 969 if (!err) { 970 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 971 StatusInfoList *native_i = (StatusInfoList *)i; 972 visit_type_StatusInfo(m, &native_i->value, NULL, &err); 973 } 974 error_propagate(errp, err); 975 err = NULL; 976 977 /* Always call end_list if start_list succeeded. */ 978 visit_end_list(m, &err); 979 } 980 error_propagate(errp, err); 981 } 982} 983 984static void visit_type_UuidInfo_fields(Visitor *m, UuidInfo ** obj, Error **errp) 985{ 986 Error *err = NULL; 987 visit_type_str(m, obj ? &(*obj)->UUID : NULL, "UUID", &err); 988 989 error_propagate(errp, err); 990} 991 992void visit_type_UuidInfo(Visitor *m, UuidInfo ** obj, const char *name, Error **errp) 993{ 994 if (!error_is_set(errp)) { 995 Error *err = NULL; 996 visit_start_struct(m, (void **)obj, "UuidInfo", name, sizeof(UuidInfo), &err); 997 if (!err) { 998 if (!obj || *obj) { 999 visit_type_UuidInfo_fields(m, obj, &err); 1000 error_propagate(errp, err); 1001 err = NULL; 1002 } 1003 /* Always call end_struct if start_struct succeeded. */ 1004 visit_end_struct(m, &err); 1005 } 1006 error_propagate(errp, err); 1007 } 1008} 1009 1010void visit_type_UuidInfoList(Visitor *m, UuidInfoList ** obj, const char *name, Error **errp) 1011{ 1012 GenericList *i, **prev = (GenericList **)obj; 1013 Error *err = NULL; 1014 1015 if (!error_is_set(errp)) { 1016 visit_start_list(m, name, &err); 1017 if (!err) { 1018 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1019 UuidInfoList *native_i = (UuidInfoList *)i; 1020 visit_type_UuidInfo(m, &native_i->value, NULL, &err); 1021 } 1022 error_propagate(errp, err); 1023 err = NULL; 1024 1025 /* Always call end_list if start_list succeeded. */ 1026 visit_end_list(m, &err); 1027 } 1028 error_propagate(errp, err); 1029 } 1030} 1031 1032static void visit_type_ChardevInfo_fields(Visitor *m, ChardevInfo ** obj, Error **errp) 1033{ 1034 Error *err = NULL; 1035 visit_type_str(m, obj ? &(*obj)->label : NULL, "label", &err); 1036 visit_type_str(m, obj ? &(*obj)->filename : NULL, "filename", &err); 1037 1038 error_propagate(errp, err); 1039} 1040 1041void visit_type_ChardevInfo(Visitor *m, ChardevInfo ** obj, const char *name, Error **errp) 1042{ 1043 if (!error_is_set(errp)) { 1044 Error *err = NULL; 1045 visit_start_struct(m, (void **)obj, "ChardevInfo", name, sizeof(ChardevInfo), &err); 1046 if (!err) { 1047 if (!obj || *obj) { 1048 visit_type_ChardevInfo_fields(m, obj, &err); 1049 error_propagate(errp, err); 1050 err = NULL; 1051 } 1052 /* Always call end_struct if start_struct succeeded. */ 1053 visit_end_struct(m, &err); 1054 } 1055 error_propagate(errp, err); 1056 } 1057} 1058 1059void visit_type_ChardevInfoList(Visitor *m, ChardevInfoList ** obj, const char *name, Error **errp) 1060{ 1061 GenericList *i, **prev = (GenericList **)obj; 1062 Error *err = NULL; 1063 1064 if (!error_is_set(errp)) { 1065 visit_start_list(m, name, &err); 1066 if (!err) { 1067 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1068 ChardevInfoList *native_i = (ChardevInfoList *)i; 1069 visit_type_ChardevInfo(m, &native_i->value, NULL, &err); 1070 } 1071 error_propagate(errp, err); 1072 err = NULL; 1073 1074 /* Always call end_list if start_list succeeded. */ 1075 visit_end_list(m, &err); 1076 } 1077 error_propagate(errp, err); 1078 } 1079} 1080 1081void visit_type_DataFormatList(Visitor *m, DataFormatList ** obj, const char *name, Error **errp) 1082{ 1083 GenericList *i, **prev = (GenericList **)obj; 1084 Error *err = NULL; 1085 1086 if (!error_is_set(errp)) { 1087 visit_start_list(m, name, &err); 1088 if (!err) { 1089 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1090 DataFormatList *native_i = (DataFormatList *)i; 1091 visit_type_DataFormat(m, &native_i->value, NULL, &err); 1092 } 1093 error_propagate(errp, err); 1094 err = NULL; 1095 1096 /* Always call end_list if start_list succeeded. */ 1097 visit_end_list(m, &err); 1098 } 1099 error_propagate(errp, err); 1100 } 1101} 1102 1103void visit_type_DataFormat(Visitor *m, DataFormat * obj, const char *name, Error **errp) 1104{ 1105 visit_type_enum(m, (int *)obj, DataFormat_lookup, "DataFormat", name, errp); 1106} 1107 1108static void visit_type_CommandInfo_fields(Visitor *m, CommandInfo ** obj, Error **errp) 1109{ 1110 Error *err = NULL; 1111 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 1112 1113 error_propagate(errp, err); 1114} 1115 1116void visit_type_CommandInfo(Visitor *m, CommandInfo ** obj, const char *name, Error **errp) 1117{ 1118 if (!error_is_set(errp)) { 1119 Error *err = NULL; 1120 visit_start_struct(m, (void **)obj, "CommandInfo", name, sizeof(CommandInfo), &err); 1121 if (!err) { 1122 if (!obj || *obj) { 1123 visit_type_CommandInfo_fields(m, obj, &err); 1124 error_propagate(errp, err); 1125 err = NULL; 1126 } 1127 /* Always call end_struct if start_struct succeeded. */ 1128 visit_end_struct(m, &err); 1129 } 1130 error_propagate(errp, err); 1131 } 1132} 1133 1134void visit_type_CommandInfoList(Visitor *m, CommandInfoList ** obj, const char *name, Error **errp) 1135{ 1136 GenericList *i, **prev = (GenericList **)obj; 1137 Error *err = NULL; 1138 1139 if (!error_is_set(errp)) { 1140 visit_start_list(m, name, &err); 1141 if (!err) { 1142 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1143 CommandInfoList *native_i = (CommandInfoList *)i; 1144 visit_type_CommandInfo(m, &native_i->value, NULL, &err); 1145 } 1146 error_propagate(errp, err); 1147 err = NULL; 1148 1149 /* Always call end_list if start_list succeeded. */ 1150 visit_end_list(m, &err); 1151 } 1152 error_propagate(errp, err); 1153 } 1154} 1155 1156static void visit_type_EventInfo_fields(Visitor *m, EventInfo ** obj, Error **errp) 1157{ 1158 Error *err = NULL; 1159 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 1160 1161 error_propagate(errp, err); 1162} 1163 1164void visit_type_EventInfo(Visitor *m, EventInfo ** obj, const char *name, Error **errp) 1165{ 1166 if (!error_is_set(errp)) { 1167 Error *err = NULL; 1168 visit_start_struct(m, (void **)obj, "EventInfo", name, sizeof(EventInfo), &err); 1169 if (!err) { 1170 if (!obj || *obj) { 1171 visit_type_EventInfo_fields(m, obj, &err); 1172 error_propagate(errp, err); 1173 err = NULL; 1174 } 1175 /* Always call end_struct if start_struct succeeded. */ 1176 visit_end_struct(m, &err); 1177 } 1178 error_propagate(errp, err); 1179 } 1180} 1181 1182void visit_type_EventInfoList(Visitor *m, EventInfoList ** obj, const char *name, Error **errp) 1183{ 1184 GenericList *i, **prev = (GenericList **)obj; 1185 Error *err = NULL; 1186 1187 if (!error_is_set(errp)) { 1188 visit_start_list(m, name, &err); 1189 if (!err) { 1190 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1191 EventInfoList *native_i = (EventInfoList *)i; 1192 visit_type_EventInfo(m, &native_i->value, NULL, &err); 1193 } 1194 error_propagate(errp, err); 1195 err = NULL; 1196 1197 /* Always call end_list if start_list succeeded. */ 1198 visit_end_list(m, &err); 1199 } 1200 error_propagate(errp, err); 1201 } 1202} 1203 1204static void visit_type_MigrationStats_fields(Visitor *m, MigrationStats ** obj, Error **errp) 1205{ 1206 Error *err = NULL; 1207 visit_type_int(m, obj ? &(*obj)->transferred : NULL, "transferred", &err); 1208 visit_type_int(m, obj ? &(*obj)->remaining : NULL, "remaining", &err); 1209 visit_type_int(m, obj ? &(*obj)->total : NULL, "total", &err); 1210 visit_type_int(m, obj ? &(*obj)->duplicate : NULL, "duplicate", &err); 1211 visit_type_int(m, obj ? &(*obj)->skipped : NULL, "skipped", &err); 1212 visit_type_int(m, obj ? &(*obj)->normal : NULL, "normal", &err); 1213 visit_type_int(m, obj ? &(*obj)->normal_bytes : NULL, "normal-bytes", &err); 1214 visit_type_int(m, obj ? &(*obj)->dirty_pages_rate : NULL, "dirty-pages-rate", &err); 1215 visit_type_number(m, obj ? &(*obj)->mbps : NULL, "mbps", &err); 1216 1217 error_propagate(errp, err); 1218} 1219 1220void visit_type_MigrationStats(Visitor *m, MigrationStats ** obj, const char *name, Error **errp) 1221{ 1222 if (!error_is_set(errp)) { 1223 Error *err = NULL; 1224 visit_start_struct(m, (void **)obj, "MigrationStats", name, sizeof(MigrationStats), &err); 1225 if (!err) { 1226 if (!obj || *obj) { 1227 visit_type_MigrationStats_fields(m, obj, &err); 1228 error_propagate(errp, err); 1229 err = NULL; 1230 } 1231 /* Always call end_struct if start_struct succeeded. */ 1232 visit_end_struct(m, &err); 1233 } 1234 error_propagate(errp, err); 1235 } 1236} 1237 1238void visit_type_MigrationStatsList(Visitor *m, MigrationStatsList ** obj, const char *name, Error **errp) 1239{ 1240 GenericList *i, **prev = (GenericList **)obj; 1241 Error *err = NULL; 1242 1243 if (!error_is_set(errp)) { 1244 visit_start_list(m, name, &err); 1245 if (!err) { 1246 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1247 MigrationStatsList *native_i = (MigrationStatsList *)i; 1248 visit_type_MigrationStats(m, &native_i->value, NULL, &err); 1249 } 1250 error_propagate(errp, err); 1251 err = NULL; 1252 1253 /* Always call end_list if start_list succeeded. */ 1254 visit_end_list(m, &err); 1255 } 1256 error_propagate(errp, err); 1257 } 1258} 1259 1260static void visit_type_XBZRLECacheStats_fields(Visitor *m, XBZRLECacheStats ** obj, Error **errp) 1261{ 1262 Error *err = NULL; 1263 visit_type_int(m, obj ? &(*obj)->cache_size : NULL, "cache-size", &err); 1264 visit_type_int(m, obj ? &(*obj)->bytes : NULL, "bytes", &err); 1265 visit_type_int(m, obj ? &(*obj)->pages : NULL, "pages", &err); 1266 visit_type_int(m, obj ? &(*obj)->cache_miss : NULL, "cache-miss", &err); 1267 visit_type_int(m, obj ? &(*obj)->overflow : NULL, "overflow", &err); 1268 1269 error_propagate(errp, err); 1270} 1271 1272void visit_type_XBZRLECacheStats(Visitor *m, XBZRLECacheStats ** obj, const char *name, Error **errp) 1273{ 1274 if (!error_is_set(errp)) { 1275 Error *err = NULL; 1276 visit_start_struct(m, (void **)obj, "XBZRLECacheStats", name, sizeof(XBZRLECacheStats), &err); 1277 if (!err) { 1278 if (!obj || *obj) { 1279 visit_type_XBZRLECacheStats_fields(m, obj, &err); 1280 error_propagate(errp, err); 1281 err = NULL; 1282 } 1283 /* Always call end_struct if start_struct succeeded. */ 1284 visit_end_struct(m, &err); 1285 } 1286 error_propagate(errp, err); 1287 } 1288} 1289 1290void visit_type_XBZRLECacheStatsList(Visitor *m, XBZRLECacheStatsList ** obj, const char *name, Error **errp) 1291{ 1292 GenericList *i, **prev = (GenericList **)obj; 1293 Error *err = NULL; 1294 1295 if (!error_is_set(errp)) { 1296 visit_start_list(m, name, &err); 1297 if (!err) { 1298 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1299 XBZRLECacheStatsList *native_i = (XBZRLECacheStatsList *)i; 1300 visit_type_XBZRLECacheStats(m, &native_i->value, NULL, &err); 1301 } 1302 error_propagate(errp, err); 1303 err = NULL; 1304 1305 /* Always call end_list if start_list succeeded. */ 1306 visit_end_list(m, &err); 1307 } 1308 error_propagate(errp, err); 1309 } 1310} 1311 1312static void visit_type_MigrationInfo_fields(Visitor *m, MigrationInfo ** obj, Error **errp) 1313{ 1314 Error *err = NULL; 1315 visit_start_optional(m, obj ? &(*obj)->has_status : NULL, "status", &err); 1316 if (obj && (*obj)->has_status) { 1317 visit_type_str(m, obj ? &(*obj)->status : NULL, "status", &err); 1318 } 1319 visit_end_optional(m, &err); 1320 visit_start_optional(m, obj ? &(*obj)->has_ram : NULL, "ram", &err); 1321 if (obj && (*obj)->has_ram) { 1322 visit_type_MigrationStats(m, obj ? &(*obj)->ram : NULL, "ram", &err); 1323 } 1324 visit_end_optional(m, &err); 1325 visit_start_optional(m, obj ? &(*obj)->has_disk : NULL, "disk", &err); 1326 if (obj && (*obj)->has_disk) { 1327 visit_type_MigrationStats(m, obj ? &(*obj)->disk : NULL, "disk", &err); 1328 } 1329 visit_end_optional(m, &err); 1330 visit_start_optional(m, obj ? &(*obj)->has_xbzrle_cache : NULL, "xbzrle-cache", &err); 1331 if (obj && (*obj)->has_xbzrle_cache) { 1332 visit_type_XBZRLECacheStats(m, obj ? &(*obj)->xbzrle_cache : NULL, "xbzrle-cache", &err); 1333 } 1334 visit_end_optional(m, &err); 1335 visit_start_optional(m, obj ? &(*obj)->has_total_time : NULL, "total-time", &err); 1336 if (obj && (*obj)->has_total_time) { 1337 visit_type_int(m, obj ? &(*obj)->total_time : NULL, "total-time", &err); 1338 } 1339 visit_end_optional(m, &err); 1340 visit_start_optional(m, obj ? &(*obj)->has_expected_downtime : NULL, "expected-downtime", &err); 1341 if (obj && (*obj)->has_expected_downtime) { 1342 visit_type_int(m, obj ? &(*obj)->expected_downtime : NULL, "expected-downtime", &err); 1343 } 1344 visit_end_optional(m, &err); 1345 visit_start_optional(m, obj ? &(*obj)->has_downtime : NULL, "downtime", &err); 1346 if (obj && (*obj)->has_downtime) { 1347 visit_type_int(m, obj ? &(*obj)->downtime : NULL, "downtime", &err); 1348 } 1349 visit_end_optional(m, &err); 1350 visit_start_optional(m, obj ? &(*obj)->has_setup_time : NULL, "setup-time", &err); 1351 if (obj && (*obj)->has_setup_time) { 1352 visit_type_int(m, obj ? &(*obj)->setup_time : NULL, "setup-time", &err); 1353 } 1354 visit_end_optional(m, &err); 1355 1356 error_propagate(errp, err); 1357} 1358 1359void visit_type_MigrationInfo(Visitor *m, MigrationInfo ** obj, const char *name, Error **errp) 1360{ 1361 if (!error_is_set(errp)) { 1362 Error *err = NULL; 1363 visit_start_struct(m, (void **)obj, "MigrationInfo", name, sizeof(MigrationInfo), &err); 1364 if (!err) { 1365 if (!obj || *obj) { 1366 visit_type_MigrationInfo_fields(m, obj, &err); 1367 error_propagate(errp, err); 1368 err = NULL; 1369 } 1370 /* Always call end_struct if start_struct succeeded. */ 1371 visit_end_struct(m, &err); 1372 } 1373 error_propagate(errp, err); 1374 } 1375} 1376 1377void visit_type_MigrationInfoList(Visitor *m, MigrationInfoList ** obj, const char *name, Error **errp) 1378{ 1379 GenericList *i, **prev = (GenericList **)obj; 1380 Error *err = NULL; 1381 1382 if (!error_is_set(errp)) { 1383 visit_start_list(m, name, &err); 1384 if (!err) { 1385 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1386 MigrationInfoList *native_i = (MigrationInfoList *)i; 1387 visit_type_MigrationInfo(m, &native_i->value, NULL, &err); 1388 } 1389 error_propagate(errp, err); 1390 err = NULL; 1391 1392 /* Always call end_list if start_list succeeded. */ 1393 visit_end_list(m, &err); 1394 } 1395 error_propagate(errp, err); 1396 } 1397} 1398 1399void visit_type_MigrationCapabilityList(Visitor *m, MigrationCapabilityList ** obj, const char *name, Error **errp) 1400{ 1401 GenericList *i, **prev = (GenericList **)obj; 1402 Error *err = NULL; 1403 1404 if (!error_is_set(errp)) { 1405 visit_start_list(m, name, &err); 1406 if (!err) { 1407 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1408 MigrationCapabilityList *native_i = (MigrationCapabilityList *)i; 1409 visit_type_MigrationCapability(m, &native_i->value, NULL, &err); 1410 } 1411 error_propagate(errp, err); 1412 err = NULL; 1413 1414 /* Always call end_list if start_list succeeded. */ 1415 visit_end_list(m, &err); 1416 } 1417 error_propagate(errp, err); 1418 } 1419} 1420 1421void visit_type_MigrationCapability(Visitor *m, MigrationCapability * obj, const char *name, Error **errp) 1422{ 1423 visit_type_enum(m, (int *)obj, MigrationCapability_lookup, "MigrationCapability", name, errp); 1424} 1425 1426static void visit_type_MigrationCapabilityStatus_fields(Visitor *m, MigrationCapabilityStatus ** obj, Error **errp) 1427{ 1428 Error *err = NULL; 1429 visit_type_MigrationCapability(m, obj ? &(*obj)->capability : NULL, "capability", &err); 1430 visit_type_bool(m, obj ? &(*obj)->state : NULL, "state", &err); 1431 1432 error_propagate(errp, err); 1433} 1434 1435void visit_type_MigrationCapabilityStatus(Visitor *m, MigrationCapabilityStatus ** obj, const char *name, Error **errp) 1436{ 1437 if (!error_is_set(errp)) { 1438 Error *err = NULL; 1439 visit_start_struct(m, (void **)obj, "MigrationCapabilityStatus", name, sizeof(MigrationCapabilityStatus), &err); 1440 if (!err) { 1441 if (!obj || *obj) { 1442 visit_type_MigrationCapabilityStatus_fields(m, obj, &err); 1443 error_propagate(errp, err); 1444 err = NULL; 1445 } 1446 /* Always call end_struct if start_struct succeeded. */ 1447 visit_end_struct(m, &err); 1448 } 1449 error_propagate(errp, err); 1450 } 1451} 1452 1453void visit_type_MigrationCapabilityStatusList(Visitor *m, MigrationCapabilityStatusList ** obj, const char *name, Error **errp) 1454{ 1455 GenericList *i, **prev = (GenericList **)obj; 1456 Error *err = NULL; 1457 1458 if (!error_is_set(errp)) { 1459 visit_start_list(m, name, &err); 1460 if (!err) { 1461 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1462 MigrationCapabilityStatusList *native_i = (MigrationCapabilityStatusList *)i; 1463 visit_type_MigrationCapabilityStatus(m, &native_i->value, NULL, &err); 1464 } 1465 error_propagate(errp, err); 1466 err = NULL; 1467 1468 /* Always call end_list if start_list succeeded. */ 1469 visit_end_list(m, &err); 1470 } 1471 error_propagate(errp, err); 1472 } 1473} 1474 1475static void visit_type_MouseInfo_fields(Visitor *m, MouseInfo ** obj, Error **errp) 1476{ 1477 Error *err = NULL; 1478 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 1479 visit_type_int(m, obj ? &(*obj)->index : NULL, "index", &err); 1480 visit_type_bool(m, obj ? &(*obj)->current : NULL, "current", &err); 1481 visit_type_bool(m, obj ? &(*obj)->absolute : NULL, "absolute", &err); 1482 1483 error_propagate(errp, err); 1484} 1485 1486void visit_type_MouseInfo(Visitor *m, MouseInfo ** obj, const char *name, Error **errp) 1487{ 1488 if (!error_is_set(errp)) { 1489 Error *err = NULL; 1490 visit_start_struct(m, (void **)obj, "MouseInfo", name, sizeof(MouseInfo), &err); 1491 if (!err) { 1492 if (!obj || *obj) { 1493 visit_type_MouseInfo_fields(m, obj, &err); 1494 error_propagate(errp, err); 1495 err = NULL; 1496 } 1497 /* Always call end_struct if start_struct succeeded. */ 1498 visit_end_struct(m, &err); 1499 } 1500 error_propagate(errp, err); 1501 } 1502} 1503 1504void visit_type_MouseInfoList(Visitor *m, MouseInfoList ** obj, const char *name, Error **errp) 1505{ 1506 GenericList *i, **prev = (GenericList **)obj; 1507 Error *err = NULL; 1508 1509 if (!error_is_set(errp)) { 1510 visit_start_list(m, name, &err); 1511 if (!err) { 1512 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1513 MouseInfoList *native_i = (MouseInfoList *)i; 1514 visit_type_MouseInfo(m, &native_i->value, NULL, &err); 1515 } 1516 error_propagate(errp, err); 1517 err = NULL; 1518 1519 /* Always call end_list if start_list succeeded. */ 1520 visit_end_list(m, &err); 1521 } 1522 error_propagate(errp, err); 1523 } 1524} 1525 1526static void visit_type_CpuInfo_fields(Visitor *m, CpuInfo ** obj, Error **errp) 1527{ 1528 Error *err = NULL; 1529 visit_type_int(m, obj ? &(*obj)->CPU : NULL, "CPU", &err); 1530 visit_type_bool(m, obj ? &(*obj)->current : NULL, "current", &err); 1531 visit_type_bool(m, obj ? &(*obj)->halted : NULL, "halted", &err); 1532 visit_start_optional(m, obj ? &(*obj)->has_pc : NULL, "pc", &err); 1533 if (obj && (*obj)->has_pc) { 1534 visit_type_int(m, obj ? &(*obj)->pc : NULL, "pc", &err); 1535 } 1536 visit_end_optional(m, &err); 1537 visit_start_optional(m, obj ? &(*obj)->has_nip : NULL, "nip", &err); 1538 if (obj && (*obj)->has_nip) { 1539 visit_type_int(m, obj ? &(*obj)->nip : NULL, "nip", &err); 1540 } 1541 visit_end_optional(m, &err); 1542 visit_start_optional(m, obj ? &(*obj)->has_npc : NULL, "npc", &err); 1543 if (obj && (*obj)->has_npc) { 1544 visit_type_int(m, obj ? &(*obj)->npc : NULL, "npc", &err); 1545 } 1546 visit_end_optional(m, &err); 1547 visit_start_optional(m, obj ? &(*obj)->has_PC : NULL, "PC", &err); 1548 if (obj && (*obj)->has_PC) { 1549 visit_type_int(m, obj ? &(*obj)->PC : NULL, "PC", &err); 1550 } 1551 visit_end_optional(m, &err); 1552 visit_type_int(m, obj ? &(*obj)->thread_id : NULL, "thread_id", &err); 1553 1554 error_propagate(errp, err); 1555} 1556 1557void visit_type_CpuInfo(Visitor *m, CpuInfo ** obj, const char *name, Error **errp) 1558{ 1559 if (!error_is_set(errp)) { 1560 Error *err = NULL; 1561 visit_start_struct(m, (void **)obj, "CpuInfo", name, sizeof(CpuInfo), &err); 1562 if (!err) { 1563 if (!obj || *obj) { 1564 visit_type_CpuInfo_fields(m, obj, &err); 1565 error_propagate(errp, err); 1566 err = NULL; 1567 } 1568 /* Always call end_struct if start_struct succeeded. */ 1569 visit_end_struct(m, &err); 1570 } 1571 error_propagate(errp, err); 1572 } 1573} 1574 1575void visit_type_CpuInfoList(Visitor *m, CpuInfoList ** obj, const char *name, Error **errp) 1576{ 1577 GenericList *i, **prev = (GenericList **)obj; 1578 Error *err = NULL; 1579 1580 if (!error_is_set(errp)) { 1581 visit_start_list(m, name, &err); 1582 if (!err) { 1583 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1584 CpuInfoList *native_i = (CpuInfoList *)i; 1585 visit_type_CpuInfo(m, &native_i->value, NULL, &err); 1586 } 1587 error_propagate(errp, err); 1588 err = NULL; 1589 1590 /* Always call end_list if start_list succeeded. */ 1591 visit_end_list(m, &err); 1592 } 1593 error_propagate(errp, err); 1594 } 1595} 1596 1597static void visit_type_BlockDeviceInfo_fields(Visitor *m, BlockDeviceInfo ** obj, Error **errp) 1598{ 1599 Error *err = NULL; 1600 visit_type_str(m, obj ? &(*obj)->file : NULL, "file", &err); 1601 visit_type_bool(m, obj ? &(*obj)->ro : NULL, "ro", &err); 1602 visit_type_str(m, obj ? &(*obj)->drv : NULL, "drv", &err); 1603 visit_start_optional(m, obj ? &(*obj)->has_backing_file : NULL, "backing_file", &err); 1604 if (obj && (*obj)->has_backing_file) { 1605 visit_type_str(m, obj ? &(*obj)->backing_file : NULL, "backing_file", &err); 1606 } 1607 visit_end_optional(m, &err); 1608 visit_type_int(m, obj ? &(*obj)->backing_file_depth : NULL, "backing_file_depth", &err); 1609 visit_type_bool(m, obj ? &(*obj)->encrypted : NULL, "encrypted", &err); 1610 visit_type_bool(m, obj ? &(*obj)->encryption_key_missing : NULL, "encryption_key_missing", &err); 1611 visit_type_int(m, obj ? &(*obj)->bps : NULL, "bps", &err); 1612 visit_type_int(m, obj ? &(*obj)->bps_rd : NULL, "bps_rd", &err); 1613 visit_type_int(m, obj ? &(*obj)->bps_wr : NULL, "bps_wr", &err); 1614 visit_type_int(m, obj ? &(*obj)->iops : NULL, "iops", &err); 1615 visit_type_int(m, obj ? &(*obj)->iops_rd : NULL, "iops_rd", &err); 1616 visit_type_int(m, obj ? &(*obj)->iops_wr : NULL, "iops_wr", &err); 1617 visit_type_ImageInfo(m, obj ? &(*obj)->image : NULL, "image", &err); 1618 visit_start_optional(m, obj ? &(*obj)->has_bps_max : NULL, "bps_max", &err); 1619 if (obj && (*obj)->has_bps_max) { 1620 visit_type_int(m, obj ? &(*obj)->bps_max : NULL, "bps_max", &err); 1621 } 1622 visit_end_optional(m, &err); 1623 visit_start_optional(m, obj ? &(*obj)->has_bps_rd_max : NULL, "bps_rd_max", &err); 1624 if (obj && (*obj)->has_bps_rd_max) { 1625 visit_type_int(m, obj ? &(*obj)->bps_rd_max : NULL, "bps_rd_max", &err); 1626 } 1627 visit_end_optional(m, &err); 1628 visit_start_optional(m, obj ? &(*obj)->has_bps_wr_max : NULL, "bps_wr_max", &err); 1629 if (obj && (*obj)->has_bps_wr_max) { 1630 visit_type_int(m, obj ? &(*obj)->bps_wr_max : NULL, "bps_wr_max", &err); 1631 } 1632 visit_end_optional(m, &err); 1633 visit_start_optional(m, obj ? &(*obj)->has_iops_max : NULL, "iops_max", &err); 1634 if (obj && (*obj)->has_iops_max) { 1635 visit_type_int(m, obj ? &(*obj)->iops_max : NULL, "iops_max", &err); 1636 } 1637 visit_end_optional(m, &err); 1638 visit_start_optional(m, obj ? &(*obj)->has_iops_rd_max : NULL, "iops_rd_max", &err); 1639 if (obj && (*obj)->has_iops_rd_max) { 1640 visit_type_int(m, obj ? &(*obj)->iops_rd_max : NULL, "iops_rd_max", &err); 1641 } 1642 visit_end_optional(m, &err); 1643 visit_start_optional(m, obj ? &(*obj)->has_iops_wr_max : NULL, "iops_wr_max", &err); 1644 if (obj && (*obj)->has_iops_wr_max) { 1645 visit_type_int(m, obj ? &(*obj)->iops_wr_max : NULL, "iops_wr_max", &err); 1646 } 1647 visit_end_optional(m, &err); 1648 visit_start_optional(m, obj ? &(*obj)->has_iops_size : NULL, "iops_size", &err); 1649 if (obj && (*obj)->has_iops_size) { 1650 visit_type_int(m, obj ? &(*obj)->iops_size : NULL, "iops_size", &err); 1651 } 1652 visit_end_optional(m, &err); 1653 1654 error_propagate(errp, err); 1655} 1656 1657void visit_type_BlockDeviceInfo(Visitor *m, BlockDeviceInfo ** obj, const char *name, Error **errp) 1658{ 1659 if (!error_is_set(errp)) { 1660 Error *err = NULL; 1661 visit_start_struct(m, (void **)obj, "BlockDeviceInfo", name, sizeof(BlockDeviceInfo), &err); 1662 if (!err) { 1663 if (!obj || *obj) { 1664 visit_type_BlockDeviceInfo_fields(m, obj, &err); 1665 error_propagate(errp, err); 1666 err = NULL; 1667 } 1668 /* Always call end_struct if start_struct succeeded. */ 1669 visit_end_struct(m, &err); 1670 } 1671 error_propagate(errp, err); 1672 } 1673} 1674 1675void visit_type_BlockDeviceInfoList(Visitor *m, BlockDeviceInfoList ** obj, const char *name, Error **errp) 1676{ 1677 GenericList *i, **prev = (GenericList **)obj; 1678 Error *err = NULL; 1679 1680 if (!error_is_set(errp)) { 1681 visit_start_list(m, name, &err); 1682 if (!err) { 1683 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1684 BlockDeviceInfoList *native_i = (BlockDeviceInfoList *)i; 1685 visit_type_BlockDeviceInfo(m, &native_i->value, NULL, &err); 1686 } 1687 error_propagate(errp, err); 1688 err = NULL; 1689 1690 /* Always call end_list if start_list succeeded. */ 1691 visit_end_list(m, &err); 1692 } 1693 error_propagate(errp, err); 1694 } 1695} 1696 1697void visit_type_BlockDeviceIoStatusList(Visitor *m, BlockDeviceIoStatusList ** obj, const char *name, Error **errp) 1698{ 1699 GenericList *i, **prev = (GenericList **)obj; 1700 Error *err = NULL; 1701 1702 if (!error_is_set(errp)) { 1703 visit_start_list(m, name, &err); 1704 if (!err) { 1705 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1706 BlockDeviceIoStatusList *native_i = (BlockDeviceIoStatusList *)i; 1707 visit_type_BlockDeviceIoStatus(m, &native_i->value, NULL, &err); 1708 } 1709 error_propagate(errp, err); 1710 err = NULL; 1711 1712 /* Always call end_list if start_list succeeded. */ 1713 visit_end_list(m, &err); 1714 } 1715 error_propagate(errp, err); 1716 } 1717} 1718 1719void visit_type_BlockDeviceIoStatus(Visitor *m, BlockDeviceIoStatus * obj, const char *name, Error **errp) 1720{ 1721 visit_type_enum(m, (int *)obj, BlockDeviceIoStatus_lookup, "BlockDeviceIoStatus", name, errp); 1722} 1723 1724static void visit_type_BlockDeviceMapEntry_fields(Visitor *m, BlockDeviceMapEntry ** obj, Error **errp) 1725{ 1726 Error *err = NULL; 1727 visit_type_int(m, obj ? &(*obj)->start : NULL, "start", &err); 1728 visit_type_int(m, obj ? &(*obj)->length : NULL, "length", &err); 1729 visit_type_int(m, obj ? &(*obj)->depth : NULL, "depth", &err); 1730 visit_type_bool(m, obj ? &(*obj)->zero : NULL, "zero", &err); 1731 visit_type_bool(m, obj ? &(*obj)->data : NULL, "data", &err); 1732 visit_start_optional(m, obj ? &(*obj)->has_offset : NULL, "offset", &err); 1733 if (obj && (*obj)->has_offset) { 1734 visit_type_int(m, obj ? &(*obj)->offset : NULL, "offset", &err); 1735 } 1736 visit_end_optional(m, &err); 1737 1738 error_propagate(errp, err); 1739} 1740 1741void visit_type_BlockDeviceMapEntry(Visitor *m, BlockDeviceMapEntry ** obj, const char *name, Error **errp) 1742{ 1743 if (!error_is_set(errp)) { 1744 Error *err = NULL; 1745 visit_start_struct(m, (void **)obj, "BlockDeviceMapEntry", name, sizeof(BlockDeviceMapEntry), &err); 1746 if (!err) { 1747 if (!obj || *obj) { 1748 visit_type_BlockDeviceMapEntry_fields(m, obj, &err); 1749 error_propagate(errp, err); 1750 err = NULL; 1751 } 1752 /* Always call end_struct if start_struct succeeded. */ 1753 visit_end_struct(m, &err); 1754 } 1755 error_propagate(errp, err); 1756 } 1757} 1758 1759void visit_type_BlockDeviceMapEntryList(Visitor *m, BlockDeviceMapEntryList ** obj, const char *name, Error **errp) 1760{ 1761 GenericList *i, **prev = (GenericList **)obj; 1762 Error *err = NULL; 1763 1764 if (!error_is_set(errp)) { 1765 visit_start_list(m, name, &err); 1766 if (!err) { 1767 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1768 BlockDeviceMapEntryList *native_i = (BlockDeviceMapEntryList *)i; 1769 visit_type_BlockDeviceMapEntry(m, &native_i->value, NULL, &err); 1770 } 1771 error_propagate(errp, err); 1772 err = NULL; 1773 1774 /* Always call end_list if start_list succeeded. */ 1775 visit_end_list(m, &err); 1776 } 1777 error_propagate(errp, err); 1778 } 1779} 1780 1781static void visit_type_BlockDirtyInfo_fields(Visitor *m, BlockDirtyInfo ** obj, Error **errp) 1782{ 1783 Error *err = NULL; 1784 visit_type_int(m, obj ? &(*obj)->count : NULL, "count", &err); 1785 visit_type_int(m, obj ? &(*obj)->granularity : NULL, "granularity", &err); 1786 1787 error_propagate(errp, err); 1788} 1789 1790void visit_type_BlockDirtyInfo(Visitor *m, BlockDirtyInfo ** obj, const char *name, Error **errp) 1791{ 1792 if (!error_is_set(errp)) { 1793 Error *err = NULL; 1794 visit_start_struct(m, (void **)obj, "BlockDirtyInfo", name, sizeof(BlockDirtyInfo), &err); 1795 if (!err) { 1796 if (!obj || *obj) { 1797 visit_type_BlockDirtyInfo_fields(m, obj, &err); 1798 error_propagate(errp, err); 1799 err = NULL; 1800 } 1801 /* Always call end_struct if start_struct succeeded. */ 1802 visit_end_struct(m, &err); 1803 } 1804 error_propagate(errp, err); 1805 } 1806} 1807 1808void visit_type_BlockDirtyInfoList(Visitor *m, BlockDirtyInfoList ** obj, const char *name, Error **errp) 1809{ 1810 GenericList *i, **prev = (GenericList **)obj; 1811 Error *err = NULL; 1812 1813 if (!error_is_set(errp)) { 1814 visit_start_list(m, name, &err); 1815 if (!err) { 1816 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1817 BlockDirtyInfoList *native_i = (BlockDirtyInfoList *)i; 1818 visit_type_BlockDirtyInfo(m, &native_i->value, NULL, &err); 1819 } 1820 error_propagate(errp, err); 1821 err = NULL; 1822 1823 /* Always call end_list if start_list succeeded. */ 1824 visit_end_list(m, &err); 1825 } 1826 error_propagate(errp, err); 1827 } 1828} 1829 1830static void visit_type_BlockInfo_fields(Visitor *m, BlockInfo ** obj, Error **errp) 1831{ 1832 Error *err = NULL; 1833 visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 1834 visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 1835 visit_type_bool(m, obj ? &(*obj)->removable : NULL, "removable", &err); 1836 visit_type_bool(m, obj ? &(*obj)->locked : NULL, "locked", &err); 1837 visit_start_optional(m, obj ? &(*obj)->has_inserted : NULL, "inserted", &err); 1838 if (obj && (*obj)->has_inserted) { 1839 visit_type_BlockDeviceInfo(m, obj ? &(*obj)->inserted : NULL, "inserted", &err); 1840 } 1841 visit_end_optional(m, &err); 1842 visit_start_optional(m, obj ? &(*obj)->has_tray_open : NULL, "tray_open", &err); 1843 if (obj && (*obj)->has_tray_open) { 1844 visit_type_bool(m, obj ? &(*obj)->tray_open : NULL, "tray_open", &err); 1845 } 1846 visit_end_optional(m, &err); 1847 visit_start_optional(m, obj ? &(*obj)->has_io_status : NULL, "io-status", &err); 1848 if (obj && (*obj)->has_io_status) { 1849 visit_type_BlockDeviceIoStatus(m, obj ? &(*obj)->io_status : NULL, "io-status", &err); 1850 } 1851 visit_end_optional(m, &err); 1852 visit_start_optional(m, obj ? &(*obj)->has_dirty_bitmaps : NULL, "dirty-bitmaps", &err); 1853 if (obj && (*obj)->has_dirty_bitmaps) { 1854 visit_type_BlockDirtyInfoList(m, obj ? &(*obj)->dirty_bitmaps : NULL, "dirty-bitmaps", &err); 1855 } 1856 visit_end_optional(m, &err); 1857 1858 error_propagate(errp, err); 1859} 1860 1861void visit_type_BlockInfo(Visitor *m, BlockInfo ** obj, const char *name, Error **errp) 1862{ 1863 if (!error_is_set(errp)) { 1864 Error *err = NULL; 1865 visit_start_struct(m, (void **)obj, "BlockInfo", name, sizeof(BlockInfo), &err); 1866 if (!err) { 1867 if (!obj || *obj) { 1868 visit_type_BlockInfo_fields(m, obj, &err); 1869 error_propagate(errp, err); 1870 err = NULL; 1871 } 1872 /* Always call end_struct if start_struct succeeded. */ 1873 visit_end_struct(m, &err); 1874 } 1875 error_propagate(errp, err); 1876 } 1877} 1878 1879void visit_type_BlockInfoList(Visitor *m, BlockInfoList ** obj, const char *name, Error **errp) 1880{ 1881 GenericList *i, **prev = (GenericList **)obj; 1882 Error *err = NULL; 1883 1884 if (!error_is_set(errp)) { 1885 visit_start_list(m, name, &err); 1886 if (!err) { 1887 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1888 BlockInfoList *native_i = (BlockInfoList *)i; 1889 visit_type_BlockInfo(m, &native_i->value, NULL, &err); 1890 } 1891 error_propagate(errp, err); 1892 err = NULL; 1893 1894 /* Always call end_list if start_list succeeded. */ 1895 visit_end_list(m, &err); 1896 } 1897 error_propagate(errp, err); 1898 } 1899} 1900 1901static void visit_type_BlockDeviceStats_fields(Visitor *m, BlockDeviceStats ** obj, Error **errp) 1902{ 1903 Error *err = NULL; 1904 visit_type_int(m, obj ? &(*obj)->rd_bytes : NULL, "rd_bytes", &err); 1905 visit_type_int(m, obj ? &(*obj)->wr_bytes : NULL, "wr_bytes", &err); 1906 visit_type_int(m, obj ? &(*obj)->rd_operations : NULL, "rd_operations", &err); 1907 visit_type_int(m, obj ? &(*obj)->wr_operations : NULL, "wr_operations", &err); 1908 visit_type_int(m, obj ? &(*obj)->flush_operations : NULL, "flush_operations", &err); 1909 visit_type_int(m, obj ? &(*obj)->flush_total_time_ns : NULL, "flush_total_time_ns", &err); 1910 visit_type_int(m, obj ? &(*obj)->wr_total_time_ns : NULL, "wr_total_time_ns", &err); 1911 visit_type_int(m, obj ? &(*obj)->rd_total_time_ns : NULL, "rd_total_time_ns", &err); 1912 visit_type_int(m, obj ? &(*obj)->wr_highest_offset : NULL, "wr_highest_offset", &err); 1913 1914 error_propagate(errp, err); 1915} 1916 1917void visit_type_BlockDeviceStats(Visitor *m, BlockDeviceStats ** obj, const char *name, Error **errp) 1918{ 1919 if (!error_is_set(errp)) { 1920 Error *err = NULL; 1921 visit_start_struct(m, (void **)obj, "BlockDeviceStats", name, sizeof(BlockDeviceStats), &err); 1922 if (!err) { 1923 if (!obj || *obj) { 1924 visit_type_BlockDeviceStats_fields(m, obj, &err); 1925 error_propagate(errp, err); 1926 err = NULL; 1927 } 1928 /* Always call end_struct if start_struct succeeded. */ 1929 visit_end_struct(m, &err); 1930 } 1931 error_propagate(errp, err); 1932 } 1933} 1934 1935void visit_type_BlockDeviceStatsList(Visitor *m, BlockDeviceStatsList ** obj, const char *name, Error **errp) 1936{ 1937 GenericList *i, **prev = (GenericList **)obj; 1938 Error *err = NULL; 1939 1940 if (!error_is_set(errp)) { 1941 visit_start_list(m, name, &err); 1942 if (!err) { 1943 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1944 BlockDeviceStatsList *native_i = (BlockDeviceStatsList *)i; 1945 visit_type_BlockDeviceStats(m, &native_i->value, NULL, &err); 1946 } 1947 error_propagate(errp, err); 1948 err = NULL; 1949 1950 /* Always call end_list if start_list succeeded. */ 1951 visit_end_list(m, &err); 1952 } 1953 error_propagate(errp, err); 1954 } 1955} 1956 1957static void visit_type_BlockStats_fields(Visitor *m, BlockStats ** obj, Error **errp) 1958{ 1959 Error *err = NULL; 1960 visit_start_optional(m, obj ? &(*obj)->has_device : NULL, "device", &err); 1961 if (obj && (*obj)->has_device) { 1962 visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 1963 } 1964 visit_end_optional(m, &err); 1965 visit_type_BlockDeviceStats(m, obj ? &(*obj)->stats : NULL, "stats", &err); 1966 visit_start_optional(m, obj ? &(*obj)->has_parent : NULL, "parent", &err); 1967 if (obj && (*obj)->has_parent) { 1968 visit_type_BlockStats(m, obj ? &(*obj)->parent : NULL, "parent", &err); 1969 } 1970 visit_end_optional(m, &err); 1971 1972 error_propagate(errp, err); 1973} 1974 1975void visit_type_BlockStats(Visitor *m, BlockStats ** obj, const char *name, Error **errp) 1976{ 1977 if (!error_is_set(errp)) { 1978 Error *err = NULL; 1979 visit_start_struct(m, (void **)obj, "BlockStats", name, sizeof(BlockStats), &err); 1980 if (!err) { 1981 if (!obj || *obj) { 1982 visit_type_BlockStats_fields(m, obj, &err); 1983 error_propagate(errp, err); 1984 err = NULL; 1985 } 1986 /* Always call end_struct if start_struct succeeded. */ 1987 visit_end_struct(m, &err); 1988 } 1989 error_propagate(errp, err); 1990 } 1991} 1992 1993void visit_type_BlockStatsList(Visitor *m, BlockStatsList ** obj, const char *name, Error **errp) 1994{ 1995 GenericList *i, **prev = (GenericList **)obj; 1996 Error *err = NULL; 1997 1998 if (!error_is_set(errp)) { 1999 visit_start_list(m, name, &err); 2000 if (!err) { 2001 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2002 BlockStatsList *native_i = (BlockStatsList *)i; 2003 visit_type_BlockStats(m, &native_i->value, NULL, &err); 2004 } 2005 error_propagate(errp, err); 2006 err = NULL; 2007 2008 /* Always call end_list if start_list succeeded. */ 2009 visit_end_list(m, &err); 2010 } 2011 error_propagate(errp, err); 2012 } 2013} 2014 2015static void visit_type_VncClientInfo_fields(Visitor *m, VncClientInfo ** obj, Error **errp) 2016{ 2017 Error *err = NULL; 2018 visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 2019 visit_type_str(m, obj ? &(*obj)->family : NULL, "family", &err); 2020 visit_type_str(m, obj ? &(*obj)->service : NULL, "service", &err); 2021 visit_start_optional(m, obj ? &(*obj)->has_x509_dname : NULL, "x509_dname", &err); 2022 if (obj && (*obj)->has_x509_dname) { 2023 visit_type_str(m, obj ? &(*obj)->x509_dname : NULL, "x509_dname", &err); 2024 } 2025 visit_end_optional(m, &err); 2026 visit_start_optional(m, obj ? &(*obj)->has_sasl_username : NULL, "sasl_username", &err); 2027 if (obj && (*obj)->has_sasl_username) { 2028 visit_type_str(m, obj ? &(*obj)->sasl_username : NULL, "sasl_username", &err); 2029 } 2030 visit_end_optional(m, &err); 2031 2032 error_propagate(errp, err); 2033} 2034 2035void visit_type_VncClientInfo(Visitor *m, VncClientInfo ** obj, const char *name, Error **errp) 2036{ 2037 if (!error_is_set(errp)) { 2038 Error *err = NULL; 2039 visit_start_struct(m, (void **)obj, "VncClientInfo", name, sizeof(VncClientInfo), &err); 2040 if (!err) { 2041 if (!obj || *obj) { 2042 visit_type_VncClientInfo_fields(m, obj, &err); 2043 error_propagate(errp, err); 2044 err = NULL; 2045 } 2046 /* Always call end_struct if start_struct succeeded. */ 2047 visit_end_struct(m, &err); 2048 } 2049 error_propagate(errp, err); 2050 } 2051} 2052 2053void visit_type_VncClientInfoList(Visitor *m, VncClientInfoList ** obj, const char *name, Error **errp) 2054{ 2055 GenericList *i, **prev = (GenericList **)obj; 2056 Error *err = NULL; 2057 2058 if (!error_is_set(errp)) { 2059 visit_start_list(m, name, &err); 2060 if (!err) { 2061 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2062 VncClientInfoList *native_i = (VncClientInfoList *)i; 2063 visit_type_VncClientInfo(m, &native_i->value, NULL, &err); 2064 } 2065 error_propagate(errp, err); 2066 err = NULL; 2067 2068 /* Always call end_list if start_list succeeded. */ 2069 visit_end_list(m, &err); 2070 } 2071 error_propagate(errp, err); 2072 } 2073} 2074 2075static void visit_type_VncInfo_fields(Visitor *m, VncInfo ** obj, Error **errp) 2076{ 2077 Error *err = NULL; 2078 visit_type_bool(m, obj ? &(*obj)->enabled : NULL, "enabled", &err); 2079 visit_start_optional(m, obj ? &(*obj)->has_host : NULL, "host", &err); 2080 if (obj && (*obj)->has_host) { 2081 visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 2082 } 2083 visit_end_optional(m, &err); 2084 visit_start_optional(m, obj ? &(*obj)->has_family : NULL, "family", &err); 2085 if (obj && (*obj)->has_family) { 2086 visit_type_str(m, obj ? &(*obj)->family : NULL, "family", &err); 2087 } 2088 visit_end_optional(m, &err); 2089 visit_start_optional(m, obj ? &(*obj)->has_service : NULL, "service", &err); 2090 if (obj && (*obj)->has_service) { 2091 visit_type_str(m, obj ? &(*obj)->service : NULL, "service", &err); 2092 } 2093 visit_end_optional(m, &err); 2094 visit_start_optional(m, obj ? &(*obj)->has_auth : NULL, "auth", &err); 2095 if (obj && (*obj)->has_auth) { 2096 visit_type_str(m, obj ? &(*obj)->auth : NULL, "auth", &err); 2097 } 2098 visit_end_optional(m, &err); 2099 visit_start_optional(m, obj ? &(*obj)->has_clients : NULL, "clients", &err); 2100 if (obj && (*obj)->has_clients) { 2101 visit_type_VncClientInfoList(m, obj ? &(*obj)->clients : NULL, "clients", &err); 2102 } 2103 visit_end_optional(m, &err); 2104 2105 error_propagate(errp, err); 2106} 2107 2108void visit_type_VncInfo(Visitor *m, VncInfo ** obj, const char *name, Error **errp) 2109{ 2110 if (!error_is_set(errp)) { 2111 Error *err = NULL; 2112 visit_start_struct(m, (void **)obj, "VncInfo", name, sizeof(VncInfo), &err); 2113 if (!err) { 2114 if (!obj || *obj) { 2115 visit_type_VncInfo_fields(m, obj, &err); 2116 error_propagate(errp, err); 2117 err = NULL; 2118 } 2119 /* Always call end_struct if start_struct succeeded. */ 2120 visit_end_struct(m, &err); 2121 } 2122 error_propagate(errp, err); 2123 } 2124} 2125 2126void visit_type_VncInfoList(Visitor *m, VncInfoList ** obj, const char *name, Error **errp) 2127{ 2128 GenericList *i, **prev = (GenericList **)obj; 2129 Error *err = NULL; 2130 2131 if (!error_is_set(errp)) { 2132 visit_start_list(m, name, &err); 2133 if (!err) { 2134 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2135 VncInfoList *native_i = (VncInfoList *)i; 2136 visit_type_VncInfo(m, &native_i->value, NULL, &err); 2137 } 2138 error_propagate(errp, err); 2139 err = NULL; 2140 2141 /* Always call end_list if start_list succeeded. */ 2142 visit_end_list(m, &err); 2143 } 2144 error_propagate(errp, err); 2145 } 2146} 2147 2148static void visit_type_SpiceChannel_fields(Visitor *m, SpiceChannel ** obj, Error **errp) 2149{ 2150 Error *err = NULL; 2151 visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 2152 visit_type_str(m, obj ? &(*obj)->family : NULL, "family", &err); 2153 visit_type_str(m, obj ? &(*obj)->port : NULL, "port", &err); 2154 visit_type_int(m, obj ? &(*obj)->connection_id : NULL, "connection-id", &err); 2155 visit_type_int(m, obj ? &(*obj)->channel_type : NULL, "channel-type", &err); 2156 visit_type_int(m, obj ? &(*obj)->channel_id : NULL, "channel-id", &err); 2157 visit_type_bool(m, obj ? &(*obj)->tls : NULL, "tls", &err); 2158 2159 error_propagate(errp, err); 2160} 2161 2162void visit_type_SpiceChannel(Visitor *m, SpiceChannel ** obj, const char *name, Error **errp) 2163{ 2164 if (!error_is_set(errp)) { 2165 Error *err = NULL; 2166 visit_start_struct(m, (void **)obj, "SpiceChannel", name, sizeof(SpiceChannel), &err); 2167 if (!err) { 2168 if (!obj || *obj) { 2169 visit_type_SpiceChannel_fields(m, obj, &err); 2170 error_propagate(errp, err); 2171 err = NULL; 2172 } 2173 /* Always call end_struct if start_struct succeeded. */ 2174 visit_end_struct(m, &err); 2175 } 2176 error_propagate(errp, err); 2177 } 2178} 2179 2180void visit_type_SpiceChannelList(Visitor *m, SpiceChannelList ** obj, const char *name, Error **errp) 2181{ 2182 GenericList *i, **prev = (GenericList **)obj; 2183 Error *err = NULL; 2184 2185 if (!error_is_set(errp)) { 2186 visit_start_list(m, name, &err); 2187 if (!err) { 2188 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2189 SpiceChannelList *native_i = (SpiceChannelList *)i; 2190 visit_type_SpiceChannel(m, &native_i->value, NULL, &err); 2191 } 2192 error_propagate(errp, err); 2193 err = NULL; 2194 2195 /* Always call end_list if start_list succeeded. */ 2196 visit_end_list(m, &err); 2197 } 2198 error_propagate(errp, err); 2199 } 2200} 2201 2202void visit_type_SpiceQueryMouseModeList(Visitor *m, SpiceQueryMouseModeList ** obj, const char *name, Error **errp) 2203{ 2204 GenericList *i, **prev = (GenericList **)obj; 2205 Error *err = NULL; 2206 2207 if (!error_is_set(errp)) { 2208 visit_start_list(m, name, &err); 2209 if (!err) { 2210 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2211 SpiceQueryMouseModeList *native_i = (SpiceQueryMouseModeList *)i; 2212 visit_type_SpiceQueryMouseMode(m, &native_i->value, NULL, &err); 2213 } 2214 error_propagate(errp, err); 2215 err = NULL; 2216 2217 /* Always call end_list if start_list succeeded. */ 2218 visit_end_list(m, &err); 2219 } 2220 error_propagate(errp, err); 2221 } 2222} 2223 2224void visit_type_SpiceQueryMouseMode(Visitor *m, SpiceQueryMouseMode * obj, const char *name, Error **errp) 2225{ 2226 visit_type_enum(m, (int *)obj, SpiceQueryMouseMode_lookup, "SpiceQueryMouseMode", name, errp); 2227} 2228 2229static void visit_type_SpiceInfo_fields(Visitor *m, SpiceInfo ** obj, Error **errp) 2230{ 2231 Error *err = NULL; 2232 visit_type_bool(m, obj ? &(*obj)->enabled : NULL, "enabled", &err); 2233 visit_type_bool(m, obj ? &(*obj)->migrated : NULL, "migrated", &err); 2234 visit_start_optional(m, obj ? &(*obj)->has_host : NULL, "host", &err); 2235 if (obj && (*obj)->has_host) { 2236 visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 2237 } 2238 visit_end_optional(m, &err); 2239 visit_start_optional(m, obj ? &(*obj)->has_port : NULL, "port", &err); 2240 if (obj && (*obj)->has_port) { 2241 visit_type_int(m, obj ? &(*obj)->port : NULL, "port", &err); 2242 } 2243 visit_end_optional(m, &err); 2244 visit_start_optional(m, obj ? &(*obj)->has_tls_port : NULL, "tls-port", &err); 2245 if (obj && (*obj)->has_tls_port) { 2246 visit_type_int(m, obj ? &(*obj)->tls_port : NULL, "tls-port", &err); 2247 } 2248 visit_end_optional(m, &err); 2249 visit_start_optional(m, obj ? &(*obj)->has_auth : NULL, "auth", &err); 2250 if (obj && (*obj)->has_auth) { 2251 visit_type_str(m, obj ? &(*obj)->auth : NULL, "auth", &err); 2252 } 2253 visit_end_optional(m, &err); 2254 visit_start_optional(m, obj ? &(*obj)->has_compiled_version : NULL, "compiled-version", &err); 2255 if (obj && (*obj)->has_compiled_version) { 2256 visit_type_str(m, obj ? &(*obj)->compiled_version : NULL, "compiled-version", &err); 2257 } 2258 visit_end_optional(m, &err); 2259 visit_type_SpiceQueryMouseMode(m, obj ? &(*obj)->mouse_mode : NULL, "mouse-mode", &err); 2260 visit_start_optional(m, obj ? &(*obj)->has_channels : NULL, "channels", &err); 2261 if (obj && (*obj)->has_channels) { 2262 visit_type_SpiceChannelList(m, obj ? &(*obj)->channels : NULL, "channels", &err); 2263 } 2264 visit_end_optional(m, &err); 2265 2266 error_propagate(errp, err); 2267} 2268 2269void visit_type_SpiceInfo(Visitor *m, SpiceInfo ** obj, const char *name, Error **errp) 2270{ 2271 if (!error_is_set(errp)) { 2272 Error *err = NULL; 2273 visit_start_struct(m, (void **)obj, "SpiceInfo", name, sizeof(SpiceInfo), &err); 2274 if (!err) { 2275 if (!obj || *obj) { 2276 visit_type_SpiceInfo_fields(m, obj, &err); 2277 error_propagate(errp, err); 2278 err = NULL; 2279 } 2280 /* Always call end_struct if start_struct succeeded. */ 2281 visit_end_struct(m, &err); 2282 } 2283 error_propagate(errp, err); 2284 } 2285} 2286 2287void visit_type_SpiceInfoList(Visitor *m, SpiceInfoList ** obj, const char *name, Error **errp) 2288{ 2289 GenericList *i, **prev = (GenericList **)obj; 2290 Error *err = NULL; 2291 2292 if (!error_is_set(errp)) { 2293 visit_start_list(m, name, &err); 2294 if (!err) { 2295 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2296 SpiceInfoList *native_i = (SpiceInfoList *)i; 2297 visit_type_SpiceInfo(m, &native_i->value, NULL, &err); 2298 } 2299 error_propagate(errp, err); 2300 err = NULL; 2301 2302 /* Always call end_list if start_list succeeded. */ 2303 visit_end_list(m, &err); 2304 } 2305 error_propagate(errp, err); 2306 } 2307} 2308 2309static void visit_type_BalloonInfo_fields(Visitor *m, BalloonInfo ** obj, Error **errp) 2310{ 2311 Error *err = NULL; 2312 visit_type_int(m, obj ? &(*obj)->actual : NULL, "actual", &err); 2313 2314 error_propagate(errp, err); 2315} 2316 2317void visit_type_BalloonInfo(Visitor *m, BalloonInfo ** obj, const char *name, Error **errp) 2318{ 2319 if (!error_is_set(errp)) { 2320 Error *err = NULL; 2321 visit_start_struct(m, (void **)obj, "BalloonInfo", name, sizeof(BalloonInfo), &err); 2322 if (!err) { 2323 if (!obj || *obj) { 2324 visit_type_BalloonInfo_fields(m, obj, &err); 2325 error_propagate(errp, err); 2326 err = NULL; 2327 } 2328 /* Always call end_struct if start_struct succeeded. */ 2329 visit_end_struct(m, &err); 2330 } 2331 error_propagate(errp, err); 2332 } 2333} 2334 2335void visit_type_BalloonInfoList(Visitor *m, BalloonInfoList ** obj, const char *name, Error **errp) 2336{ 2337 GenericList *i, **prev = (GenericList **)obj; 2338 Error *err = NULL; 2339 2340 if (!error_is_set(errp)) { 2341 visit_start_list(m, name, &err); 2342 if (!err) { 2343 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2344 BalloonInfoList *native_i = (BalloonInfoList *)i; 2345 visit_type_BalloonInfo(m, &native_i->value, NULL, &err); 2346 } 2347 error_propagate(errp, err); 2348 err = NULL; 2349 2350 /* Always call end_list if start_list succeeded. */ 2351 visit_end_list(m, &err); 2352 } 2353 error_propagate(errp, err); 2354 } 2355} 2356 2357static void visit_type_PciMemoryRange_fields(Visitor *m, PciMemoryRange ** obj, Error **errp) 2358{ 2359 Error *err = NULL; 2360 visit_type_int(m, obj ? &(*obj)->base : NULL, "base", &err); 2361 visit_type_int(m, obj ? &(*obj)->limit : NULL, "limit", &err); 2362 2363 error_propagate(errp, err); 2364} 2365 2366void visit_type_PciMemoryRange(Visitor *m, PciMemoryRange ** obj, const char *name, Error **errp) 2367{ 2368 if (!error_is_set(errp)) { 2369 Error *err = NULL; 2370 visit_start_struct(m, (void **)obj, "PciMemoryRange", name, sizeof(PciMemoryRange), &err); 2371 if (!err) { 2372 if (!obj || *obj) { 2373 visit_type_PciMemoryRange_fields(m, obj, &err); 2374 error_propagate(errp, err); 2375 err = NULL; 2376 } 2377 /* Always call end_struct if start_struct succeeded. */ 2378 visit_end_struct(m, &err); 2379 } 2380 error_propagate(errp, err); 2381 } 2382} 2383 2384void visit_type_PciMemoryRangeList(Visitor *m, PciMemoryRangeList ** obj, const char *name, Error **errp) 2385{ 2386 GenericList *i, **prev = (GenericList **)obj; 2387 Error *err = NULL; 2388 2389 if (!error_is_set(errp)) { 2390 visit_start_list(m, name, &err); 2391 if (!err) { 2392 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2393 PciMemoryRangeList *native_i = (PciMemoryRangeList *)i; 2394 visit_type_PciMemoryRange(m, &native_i->value, NULL, &err); 2395 } 2396 error_propagate(errp, err); 2397 err = NULL; 2398 2399 /* Always call end_list if start_list succeeded. */ 2400 visit_end_list(m, &err); 2401 } 2402 error_propagate(errp, err); 2403 } 2404} 2405 2406static void visit_type_PciMemoryRegion_fields(Visitor *m, PciMemoryRegion ** obj, Error **errp) 2407{ 2408 Error *err = NULL; 2409 visit_type_int(m, obj ? &(*obj)->bar : NULL, "bar", &err); 2410 visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 2411 visit_type_int(m, obj ? &(*obj)->address : NULL, "address", &err); 2412 visit_type_int(m, obj ? &(*obj)->size : NULL, "size", &err); 2413 visit_start_optional(m, obj ? &(*obj)->has_prefetch : NULL, "prefetch", &err); 2414 if (obj && (*obj)->has_prefetch) { 2415 visit_type_bool(m, obj ? &(*obj)->prefetch : NULL, "prefetch", &err); 2416 } 2417 visit_end_optional(m, &err); 2418 visit_start_optional(m, obj ? &(*obj)->has_mem_type_64 : NULL, "mem_type_64", &err); 2419 if (obj && (*obj)->has_mem_type_64) { 2420 visit_type_bool(m, obj ? &(*obj)->mem_type_64 : NULL, "mem_type_64", &err); 2421 } 2422 visit_end_optional(m, &err); 2423 2424 error_propagate(errp, err); 2425} 2426 2427void visit_type_PciMemoryRegion(Visitor *m, PciMemoryRegion ** obj, const char *name, Error **errp) 2428{ 2429 if (!error_is_set(errp)) { 2430 Error *err = NULL; 2431 visit_start_struct(m, (void **)obj, "PciMemoryRegion", name, sizeof(PciMemoryRegion), &err); 2432 if (!err) { 2433 if (!obj || *obj) { 2434 visit_type_PciMemoryRegion_fields(m, obj, &err); 2435 error_propagate(errp, err); 2436 err = NULL; 2437 } 2438 /* Always call end_struct if start_struct succeeded. */ 2439 visit_end_struct(m, &err); 2440 } 2441 error_propagate(errp, err); 2442 } 2443} 2444 2445void visit_type_PciMemoryRegionList(Visitor *m, PciMemoryRegionList ** obj, const char *name, Error **errp) 2446{ 2447 GenericList *i, **prev = (GenericList **)obj; 2448 Error *err = NULL; 2449 2450 if (!error_is_set(errp)) { 2451 visit_start_list(m, name, &err); 2452 if (!err) { 2453 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2454 PciMemoryRegionList *native_i = (PciMemoryRegionList *)i; 2455 visit_type_PciMemoryRegion(m, &native_i->value, NULL, &err); 2456 } 2457 error_propagate(errp, err); 2458 err = NULL; 2459 2460 /* Always call end_list if start_list succeeded. */ 2461 visit_end_list(m, &err); 2462 } 2463 error_propagate(errp, err); 2464 } 2465} 2466 2467static void visit_type_PciBridgeInfo_bus_fields(Visitor *m, PciBridgeInfo ** obj, Error **errp) 2468{ 2469 Error *err = NULL; 2470 visit_type_int(m, obj ? &(*obj)->bus.number : NULL, "number", &err); 2471 visit_type_int(m, obj ? &(*obj)->bus.secondary : NULL, "secondary", &err); 2472 visit_type_int(m, obj ? &(*obj)->bus.subordinate : NULL, "subordinate", &err); 2473 visit_type_PciMemoryRange(m, obj ? &(*obj)->bus.io_range : NULL, "io_range", &err); 2474 visit_type_PciMemoryRange(m, obj ? &(*obj)->bus.memory_range : NULL, "memory_range", &err); 2475 visit_type_PciMemoryRange(m, obj ? &(*obj)->bus.prefetchable_range : NULL, "prefetchable_range", &err); 2476 2477 error_propagate(errp, err); 2478} 2479 2480static void visit_type_PciBridgeInfo_fields(Visitor *m, PciBridgeInfo ** obj, Error **errp) 2481{ 2482 Error *err = NULL; 2483 if (!error_is_set(errp)) { 2484 Error **errp = &err; /* from outer scope */ 2485 Error *err = NULL; 2486 visit_start_struct(m, NULL, "", "bus", 0, &err); 2487 if (!err) { 2488 if (!obj || *obj) { 2489 visit_type_PciBridgeInfo_bus_fields(m, obj, &err); 2490 error_propagate(errp, err); 2491 err = NULL; 2492 } 2493 /* Always call end_struct if start_struct succeeded. */ 2494 visit_end_struct(m, &err); 2495 } 2496 error_propagate(errp, err); 2497 } 2498 visit_start_optional(m, obj ? &(*obj)->has_devices : NULL, "devices", &err); 2499 if (obj && (*obj)->has_devices) { 2500 visit_type_PciDeviceInfoList(m, obj ? &(*obj)->devices : NULL, "devices", &err); 2501 } 2502 visit_end_optional(m, &err); 2503 2504 error_propagate(errp, err); 2505} 2506 2507void visit_type_PciBridgeInfo(Visitor *m, PciBridgeInfo ** obj, const char *name, Error **errp) 2508{ 2509 if (!error_is_set(errp)) { 2510 Error *err = NULL; 2511 visit_start_struct(m, (void **)obj, "PciBridgeInfo", name, sizeof(PciBridgeInfo), &err); 2512 if (!err) { 2513 if (!obj || *obj) { 2514 visit_type_PciBridgeInfo_fields(m, obj, &err); 2515 error_propagate(errp, err); 2516 err = NULL; 2517 } 2518 /* Always call end_struct if start_struct succeeded. */ 2519 visit_end_struct(m, &err); 2520 } 2521 error_propagate(errp, err); 2522 } 2523} 2524 2525void visit_type_PciBridgeInfoList(Visitor *m, PciBridgeInfoList ** obj, const char *name, Error **errp) 2526{ 2527 GenericList *i, **prev = (GenericList **)obj; 2528 Error *err = NULL; 2529 2530 if (!error_is_set(errp)) { 2531 visit_start_list(m, name, &err); 2532 if (!err) { 2533 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2534 PciBridgeInfoList *native_i = (PciBridgeInfoList *)i; 2535 visit_type_PciBridgeInfo(m, &native_i->value, NULL, &err); 2536 } 2537 error_propagate(errp, err); 2538 err = NULL; 2539 2540 /* Always call end_list if start_list succeeded. */ 2541 visit_end_list(m, &err); 2542 } 2543 error_propagate(errp, err); 2544 } 2545} 2546 2547static void visit_type_PciDeviceInfo_class_info_fields(Visitor *m, PciDeviceInfo ** obj, Error **errp) 2548{ 2549 Error *err = NULL; 2550 visit_start_optional(m, obj ? &(*obj)->class_info.has_desc : NULL, "desc", &err); 2551 if (obj && (*obj)->class_info.has_desc) { 2552 visit_type_str(m, obj ? &(*obj)->class_info.desc : NULL, "desc", &err); 2553 } 2554 visit_end_optional(m, &err); 2555 visit_type_int(m, obj ? &(*obj)->class_info.q_class : NULL, "class", &err); 2556 2557 error_propagate(errp, err); 2558} 2559 2560static void visit_type_PciDeviceInfo_id_fields(Visitor *m, PciDeviceInfo ** obj, Error **errp) 2561{ 2562 Error *err = NULL; 2563 visit_type_int(m, obj ? &(*obj)->id.device : NULL, "device", &err); 2564 visit_type_int(m, obj ? &(*obj)->id.vendor : NULL, "vendor", &err); 2565 2566 error_propagate(errp, err); 2567} 2568 2569static void visit_type_PciDeviceInfo_fields(Visitor *m, PciDeviceInfo ** obj, Error **errp) 2570{ 2571 Error *err = NULL; 2572 visit_type_int(m, obj ? &(*obj)->bus : NULL, "bus", &err); 2573 visit_type_int(m, obj ? &(*obj)->slot : NULL, "slot", &err); 2574 visit_type_int(m, obj ? &(*obj)->function : NULL, "function", &err); 2575 if (!error_is_set(errp)) { 2576 Error **errp = &err; /* from outer scope */ 2577 Error *err = NULL; 2578 visit_start_struct(m, NULL, "", "class_info", 0, &err); 2579 if (!err) { 2580 if (!obj || *obj) { 2581 visit_type_PciDeviceInfo_class_info_fields(m, obj, &err); 2582 error_propagate(errp, err); 2583 err = NULL; 2584 } 2585 /* Always call end_struct if start_struct succeeded. */ 2586 visit_end_struct(m, &err); 2587 } 2588 error_propagate(errp, err); 2589 } 2590 if (!error_is_set(errp)) { 2591 Error **errp = &err; /* from outer scope */ 2592 Error *err = NULL; 2593 visit_start_struct(m, NULL, "", "id", 0, &err); 2594 if (!err) { 2595 if (!obj || *obj) { 2596 visit_type_PciDeviceInfo_id_fields(m, obj, &err); 2597 error_propagate(errp, err); 2598 err = NULL; 2599 } 2600 /* Always call end_struct if start_struct succeeded. */ 2601 visit_end_struct(m, &err); 2602 } 2603 error_propagate(errp, err); 2604 } 2605 visit_start_optional(m, obj ? &(*obj)->has_irq : NULL, "irq", &err); 2606 if (obj && (*obj)->has_irq) { 2607 visit_type_int(m, obj ? &(*obj)->irq : NULL, "irq", &err); 2608 } 2609 visit_end_optional(m, &err); 2610 visit_type_str(m, obj ? &(*obj)->qdev_id : NULL, "qdev_id", &err); 2611 visit_start_optional(m, obj ? &(*obj)->has_pci_bridge : NULL, "pci_bridge", &err); 2612 if (obj && (*obj)->has_pci_bridge) { 2613 visit_type_PciBridgeInfo(m, obj ? &(*obj)->pci_bridge : NULL, "pci_bridge", &err); 2614 } 2615 visit_end_optional(m, &err); 2616 visit_type_PciMemoryRegionList(m, obj ? &(*obj)->regions : NULL, "regions", &err); 2617 2618 error_propagate(errp, err); 2619} 2620 2621void visit_type_PciDeviceInfo(Visitor *m, PciDeviceInfo ** obj, const char *name, Error **errp) 2622{ 2623 if (!error_is_set(errp)) { 2624 Error *err = NULL; 2625 visit_start_struct(m, (void **)obj, "PciDeviceInfo", name, sizeof(PciDeviceInfo), &err); 2626 if (!err) { 2627 if (!obj || *obj) { 2628 visit_type_PciDeviceInfo_fields(m, obj, &err); 2629 error_propagate(errp, err); 2630 err = NULL; 2631 } 2632 /* Always call end_struct if start_struct succeeded. */ 2633 visit_end_struct(m, &err); 2634 } 2635 error_propagate(errp, err); 2636 } 2637} 2638 2639void visit_type_PciDeviceInfoList(Visitor *m, PciDeviceInfoList ** obj, const char *name, Error **errp) 2640{ 2641 GenericList *i, **prev = (GenericList **)obj; 2642 Error *err = NULL; 2643 2644 if (!error_is_set(errp)) { 2645 visit_start_list(m, name, &err); 2646 if (!err) { 2647 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2648 PciDeviceInfoList *native_i = (PciDeviceInfoList *)i; 2649 visit_type_PciDeviceInfo(m, &native_i->value, NULL, &err); 2650 } 2651 error_propagate(errp, err); 2652 err = NULL; 2653 2654 /* Always call end_list if start_list succeeded. */ 2655 visit_end_list(m, &err); 2656 } 2657 error_propagate(errp, err); 2658 } 2659} 2660 2661static void visit_type_PciInfo_fields(Visitor *m, PciInfo ** obj, Error **errp) 2662{ 2663 Error *err = NULL; 2664 visit_type_int(m, obj ? &(*obj)->bus : NULL, "bus", &err); 2665 visit_type_PciDeviceInfoList(m, obj ? &(*obj)->devices : NULL, "devices", &err); 2666 2667 error_propagate(errp, err); 2668} 2669 2670void visit_type_PciInfo(Visitor *m, PciInfo ** obj, const char *name, Error **errp) 2671{ 2672 if (!error_is_set(errp)) { 2673 Error *err = NULL; 2674 visit_start_struct(m, (void **)obj, "PciInfo", name, sizeof(PciInfo), &err); 2675 if (!err) { 2676 if (!obj || *obj) { 2677 visit_type_PciInfo_fields(m, obj, &err); 2678 error_propagate(errp, err); 2679 err = NULL; 2680 } 2681 /* Always call end_struct if start_struct succeeded. */ 2682 visit_end_struct(m, &err); 2683 } 2684 error_propagate(errp, err); 2685 } 2686} 2687 2688void visit_type_PciInfoList(Visitor *m, PciInfoList ** obj, const char *name, Error **errp) 2689{ 2690 GenericList *i, **prev = (GenericList **)obj; 2691 Error *err = NULL; 2692 2693 if (!error_is_set(errp)) { 2694 visit_start_list(m, name, &err); 2695 if (!err) { 2696 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2697 PciInfoList *native_i = (PciInfoList *)i; 2698 visit_type_PciInfo(m, &native_i->value, NULL, &err); 2699 } 2700 error_propagate(errp, err); 2701 err = NULL; 2702 2703 /* Always call end_list if start_list succeeded. */ 2704 visit_end_list(m, &err); 2705 } 2706 error_propagate(errp, err); 2707 } 2708} 2709 2710void visit_type_BlockdevOnErrorList(Visitor *m, BlockdevOnErrorList ** obj, const char *name, Error **errp) 2711{ 2712 GenericList *i, **prev = (GenericList **)obj; 2713 Error *err = NULL; 2714 2715 if (!error_is_set(errp)) { 2716 visit_start_list(m, name, &err); 2717 if (!err) { 2718 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2719 BlockdevOnErrorList *native_i = (BlockdevOnErrorList *)i; 2720 visit_type_BlockdevOnError(m, &native_i->value, NULL, &err); 2721 } 2722 error_propagate(errp, err); 2723 err = NULL; 2724 2725 /* Always call end_list if start_list succeeded. */ 2726 visit_end_list(m, &err); 2727 } 2728 error_propagate(errp, err); 2729 } 2730} 2731 2732void visit_type_BlockdevOnError(Visitor *m, BlockdevOnError * obj, const char *name, Error **errp) 2733{ 2734 visit_type_enum(m, (int *)obj, BlockdevOnError_lookup, "BlockdevOnError", name, errp); 2735} 2736 2737void visit_type_MirrorSyncModeList(Visitor *m, MirrorSyncModeList ** obj, const char *name, Error **errp) 2738{ 2739 GenericList *i, **prev = (GenericList **)obj; 2740 Error *err = NULL; 2741 2742 if (!error_is_set(errp)) { 2743 visit_start_list(m, name, &err); 2744 if (!err) { 2745 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2746 MirrorSyncModeList *native_i = (MirrorSyncModeList *)i; 2747 visit_type_MirrorSyncMode(m, &native_i->value, NULL, &err); 2748 } 2749 error_propagate(errp, err); 2750 err = NULL; 2751 2752 /* Always call end_list if start_list succeeded. */ 2753 visit_end_list(m, &err); 2754 } 2755 error_propagate(errp, err); 2756 } 2757} 2758 2759void visit_type_MirrorSyncMode(Visitor *m, MirrorSyncMode * obj, const char *name, Error **errp) 2760{ 2761 visit_type_enum(m, (int *)obj, MirrorSyncMode_lookup, "MirrorSyncMode", name, errp); 2762} 2763 2764void visit_type_BlockJobTypeList(Visitor *m, BlockJobTypeList ** obj, const char *name, Error **errp) 2765{ 2766 GenericList *i, **prev = (GenericList **)obj; 2767 Error *err = NULL; 2768 2769 if (!error_is_set(errp)) { 2770 visit_start_list(m, name, &err); 2771 if (!err) { 2772 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2773 BlockJobTypeList *native_i = (BlockJobTypeList *)i; 2774 visit_type_BlockJobType(m, &native_i->value, NULL, &err); 2775 } 2776 error_propagate(errp, err); 2777 err = NULL; 2778 2779 /* Always call end_list if start_list succeeded. */ 2780 visit_end_list(m, &err); 2781 } 2782 error_propagate(errp, err); 2783 } 2784} 2785 2786void visit_type_BlockJobType(Visitor *m, BlockJobType * obj, const char *name, Error **errp) 2787{ 2788 visit_type_enum(m, (int *)obj, BlockJobType_lookup, "BlockJobType", name, errp); 2789} 2790 2791static void visit_type_BlockJobInfo_fields(Visitor *m, BlockJobInfo ** obj, Error **errp) 2792{ 2793 Error *err = NULL; 2794 visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 2795 visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 2796 visit_type_int(m, obj ? &(*obj)->len : NULL, "len", &err); 2797 visit_type_int(m, obj ? &(*obj)->offset : NULL, "offset", &err); 2798 visit_type_bool(m, obj ? &(*obj)->busy : NULL, "busy", &err); 2799 visit_type_bool(m, obj ? &(*obj)->paused : NULL, "paused", &err); 2800 visit_type_int(m, obj ? &(*obj)->speed : NULL, "speed", &err); 2801 visit_type_BlockDeviceIoStatus(m, obj ? &(*obj)->io_status : NULL, "io-status", &err); 2802 2803 error_propagate(errp, err); 2804} 2805 2806void visit_type_BlockJobInfo(Visitor *m, BlockJobInfo ** obj, const char *name, Error **errp) 2807{ 2808 if (!error_is_set(errp)) { 2809 Error *err = NULL; 2810 visit_start_struct(m, (void **)obj, "BlockJobInfo", name, sizeof(BlockJobInfo), &err); 2811 if (!err) { 2812 if (!obj || *obj) { 2813 visit_type_BlockJobInfo_fields(m, obj, &err); 2814 error_propagate(errp, err); 2815 err = NULL; 2816 } 2817 /* Always call end_struct if start_struct succeeded. */ 2818 visit_end_struct(m, &err); 2819 } 2820 error_propagate(errp, err); 2821 } 2822} 2823 2824void visit_type_BlockJobInfoList(Visitor *m, BlockJobInfoList ** obj, const char *name, Error **errp) 2825{ 2826 GenericList *i, **prev = (GenericList **)obj; 2827 Error *err = NULL; 2828 2829 if (!error_is_set(errp)) { 2830 visit_start_list(m, name, &err); 2831 if (!err) { 2832 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2833 BlockJobInfoList *native_i = (BlockJobInfoList *)i; 2834 visit_type_BlockJobInfo(m, &native_i->value, NULL, &err); 2835 } 2836 error_propagate(errp, err); 2837 err = NULL; 2838 2839 /* Always call end_list if start_list succeeded. */ 2840 visit_end_list(m, &err); 2841 } 2842 error_propagate(errp, err); 2843 } 2844} 2845 2846void visit_type_NewImageModeList(Visitor *m, NewImageModeList ** obj, const char *name, Error **errp) 2847{ 2848 GenericList *i, **prev = (GenericList **)obj; 2849 Error *err = NULL; 2850 2851 if (!error_is_set(errp)) { 2852 visit_start_list(m, name, &err); 2853 if (!err) { 2854 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2855 NewImageModeList *native_i = (NewImageModeList *)i; 2856 visit_type_NewImageMode(m, &native_i->value, NULL, &err); 2857 } 2858 error_propagate(errp, err); 2859 err = NULL; 2860 2861 /* Always call end_list if start_list succeeded. */ 2862 visit_end_list(m, &err); 2863 } 2864 error_propagate(errp, err); 2865 } 2866} 2867 2868void visit_type_NewImageMode(Visitor *m, NewImageMode * obj, const char *name, Error **errp) 2869{ 2870 visit_type_enum(m, (int *)obj, NewImageMode_lookup, "NewImageMode", name, errp); 2871} 2872 2873static void visit_type_BlockdevSnapshot_fields(Visitor *m, BlockdevSnapshot ** obj, Error **errp) 2874{ 2875 Error *err = NULL; 2876 visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 2877 visit_type_str(m, obj ? &(*obj)->snapshot_file : NULL, "snapshot-file", &err); 2878 visit_start_optional(m, obj ? &(*obj)->has_format : NULL, "format", &err); 2879 if (obj && (*obj)->has_format) { 2880 visit_type_str(m, obj ? &(*obj)->format : NULL, "format", &err); 2881 } 2882 visit_end_optional(m, &err); 2883 visit_start_optional(m, obj ? &(*obj)->has_mode : NULL, "mode", &err); 2884 if (obj && (*obj)->has_mode) { 2885 visit_type_NewImageMode(m, obj ? &(*obj)->mode : NULL, "mode", &err); 2886 } 2887 visit_end_optional(m, &err); 2888 2889 error_propagate(errp, err); 2890} 2891 2892void visit_type_BlockdevSnapshot(Visitor *m, BlockdevSnapshot ** obj, const char *name, Error **errp) 2893{ 2894 if (!error_is_set(errp)) { 2895 Error *err = NULL; 2896 visit_start_struct(m, (void **)obj, "BlockdevSnapshot", name, sizeof(BlockdevSnapshot), &err); 2897 if (!err) { 2898 if (!obj || *obj) { 2899 visit_type_BlockdevSnapshot_fields(m, obj, &err); 2900 error_propagate(errp, err); 2901 err = NULL; 2902 } 2903 /* Always call end_struct if start_struct succeeded. */ 2904 visit_end_struct(m, &err); 2905 } 2906 error_propagate(errp, err); 2907 } 2908} 2909 2910void visit_type_BlockdevSnapshotList(Visitor *m, BlockdevSnapshotList ** obj, const char *name, Error **errp) 2911{ 2912 GenericList *i, **prev = (GenericList **)obj; 2913 Error *err = NULL; 2914 2915 if (!error_is_set(errp)) { 2916 visit_start_list(m, name, &err); 2917 if (!err) { 2918 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2919 BlockdevSnapshotList *native_i = (BlockdevSnapshotList *)i; 2920 visit_type_BlockdevSnapshot(m, &native_i->value, NULL, &err); 2921 } 2922 error_propagate(errp, err); 2923 err = NULL; 2924 2925 /* Always call end_list if start_list succeeded. */ 2926 visit_end_list(m, &err); 2927 } 2928 error_propagate(errp, err); 2929 } 2930} 2931 2932static void visit_type_BlockdevSnapshotInternal_fields(Visitor *m, BlockdevSnapshotInternal ** obj, Error **errp) 2933{ 2934 Error *err = NULL; 2935 visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 2936 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 2937 2938 error_propagate(errp, err); 2939} 2940 2941void visit_type_BlockdevSnapshotInternal(Visitor *m, BlockdevSnapshotInternal ** obj, const char *name, Error **errp) 2942{ 2943 if (!error_is_set(errp)) { 2944 Error *err = NULL; 2945 visit_start_struct(m, (void **)obj, "BlockdevSnapshotInternal", name, sizeof(BlockdevSnapshotInternal), &err); 2946 if (!err) { 2947 if (!obj || *obj) { 2948 visit_type_BlockdevSnapshotInternal_fields(m, obj, &err); 2949 error_propagate(errp, err); 2950 err = NULL; 2951 } 2952 /* Always call end_struct if start_struct succeeded. */ 2953 visit_end_struct(m, &err); 2954 } 2955 error_propagate(errp, err); 2956 } 2957} 2958 2959void visit_type_BlockdevSnapshotInternalList(Visitor *m, BlockdevSnapshotInternalList ** obj, const char *name, Error **errp) 2960{ 2961 GenericList *i, **prev = (GenericList **)obj; 2962 Error *err = NULL; 2963 2964 if (!error_is_set(errp)) { 2965 visit_start_list(m, name, &err); 2966 if (!err) { 2967 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2968 BlockdevSnapshotInternalList *native_i = (BlockdevSnapshotInternalList *)i; 2969 visit_type_BlockdevSnapshotInternal(m, &native_i->value, NULL, &err); 2970 } 2971 error_propagate(errp, err); 2972 err = NULL; 2973 2974 /* Always call end_list if start_list succeeded. */ 2975 visit_end_list(m, &err); 2976 } 2977 error_propagate(errp, err); 2978 } 2979} 2980 2981static void visit_type_DriveBackup_fields(Visitor *m, DriveBackup ** obj, Error **errp) 2982{ 2983 Error *err = NULL; 2984 visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 2985 visit_type_str(m, obj ? &(*obj)->target : NULL, "target", &err); 2986 visit_start_optional(m, obj ? &(*obj)->has_format : NULL, "format", &err); 2987 if (obj && (*obj)->has_format) { 2988 visit_type_str(m, obj ? &(*obj)->format : NULL, "format", &err); 2989 } 2990 visit_end_optional(m, &err); 2991 visit_type_MirrorSyncMode(m, obj ? &(*obj)->sync : NULL, "sync", &err); 2992 visit_start_optional(m, obj ? &(*obj)->has_mode : NULL, "mode", &err); 2993 if (obj && (*obj)->has_mode) { 2994 visit_type_NewImageMode(m, obj ? &(*obj)->mode : NULL, "mode", &err); 2995 } 2996 visit_end_optional(m, &err); 2997 visit_start_optional(m, obj ? &(*obj)->has_speed : NULL, "speed", &err); 2998 if (obj && (*obj)->has_speed) { 2999 visit_type_int(m, obj ? &(*obj)->speed : NULL, "speed", &err); 3000 } 3001 visit_end_optional(m, &err); 3002 visit_start_optional(m, obj ? &(*obj)->has_on_source_error : NULL, "on-source-error", &err); 3003 if (obj && (*obj)->has_on_source_error) { 3004 visit_type_BlockdevOnError(m, obj ? &(*obj)->on_source_error : NULL, "on-source-error", &err); 3005 } 3006 visit_end_optional(m, &err); 3007 visit_start_optional(m, obj ? &(*obj)->has_on_target_error : NULL, "on-target-error", &err); 3008 if (obj && (*obj)->has_on_target_error) { 3009 visit_type_BlockdevOnError(m, obj ? &(*obj)->on_target_error : NULL, "on-target-error", &err); 3010 } 3011 visit_end_optional(m, &err); 3012 3013 error_propagate(errp, err); 3014} 3015 3016void visit_type_DriveBackup(Visitor *m, DriveBackup ** obj, const char *name, Error **errp) 3017{ 3018 if (!error_is_set(errp)) { 3019 Error *err = NULL; 3020 visit_start_struct(m, (void **)obj, "DriveBackup", name, sizeof(DriveBackup), &err); 3021 if (!err) { 3022 if (!obj || *obj) { 3023 visit_type_DriveBackup_fields(m, obj, &err); 3024 error_propagate(errp, err); 3025 err = NULL; 3026 } 3027 /* Always call end_struct if start_struct succeeded. */ 3028 visit_end_struct(m, &err); 3029 } 3030 error_propagate(errp, err); 3031 } 3032} 3033 3034void visit_type_DriveBackupList(Visitor *m, DriveBackupList ** obj, const char *name, Error **errp) 3035{ 3036 GenericList *i, **prev = (GenericList **)obj; 3037 Error *err = NULL; 3038 3039 if (!error_is_set(errp)) { 3040 visit_start_list(m, name, &err); 3041 if (!err) { 3042 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3043 DriveBackupList *native_i = (DriveBackupList *)i; 3044 visit_type_DriveBackup(m, &native_i->value, NULL, &err); 3045 } 3046 error_propagate(errp, err); 3047 err = NULL; 3048 3049 /* Always call end_list if start_list succeeded. */ 3050 visit_end_list(m, &err); 3051 } 3052 error_propagate(errp, err); 3053 } 3054} 3055 3056static void visit_type_Abort_fields(Visitor *m, Abort ** obj, Error **errp) 3057{ 3058 Error *err = NULL; 3059 3060 error_propagate(errp, err); 3061} 3062 3063void visit_type_Abort(Visitor *m, Abort ** obj, const char *name, Error **errp) 3064{ 3065 if (!error_is_set(errp)) { 3066 Error *err = NULL; 3067 visit_start_struct(m, (void **)obj, "Abort", name, sizeof(Abort), &err); 3068 if (!err) { 3069 if (!obj || *obj) { 3070 visit_type_Abort_fields(m, obj, &err); 3071 error_propagate(errp, err); 3072 err = NULL; 3073 } 3074 /* Always call end_struct if start_struct succeeded. */ 3075 visit_end_struct(m, &err); 3076 } 3077 error_propagate(errp, err); 3078 } 3079} 3080 3081void visit_type_AbortList(Visitor *m, AbortList ** obj, const char *name, Error **errp) 3082{ 3083 GenericList *i, **prev = (GenericList **)obj; 3084 Error *err = NULL; 3085 3086 if (!error_is_set(errp)) { 3087 visit_start_list(m, name, &err); 3088 if (!err) { 3089 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3090 AbortList *native_i = (AbortList *)i; 3091 visit_type_Abort(m, &native_i->value, NULL, &err); 3092 } 3093 error_propagate(errp, err); 3094 err = NULL; 3095 3096 /* Always call end_list if start_list succeeded. */ 3097 visit_end_list(m, &err); 3098 } 3099 error_propagate(errp, err); 3100 } 3101} 3102 3103void visit_type_TransactionActionKind(Visitor *m, TransactionActionKind * obj, const char *name, Error **errp) 3104{ 3105 visit_type_enum(m, (int *)obj, TransactionActionKind_lookup, "TransactionActionKind", name, errp); 3106} 3107 3108void visit_type_TransactionAction(Visitor *m, TransactionAction ** obj, const char *name, Error **errp) 3109{ 3110 Error *err = NULL; 3111 3112 if (!error_is_set(errp)) { 3113 visit_start_struct(m, (void **)obj, "TransactionAction", name, sizeof(TransactionAction), &err); 3114 if (!err) { 3115 if (obj && *obj) { 3116 visit_type_TransactionActionKind(m, &(*obj)->kind, "type", &err); 3117 if (!err) { 3118 switch ((*obj)->kind) { 3119 case TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_SYNC: 3120 visit_type_BlockdevSnapshot(m, &(*obj)->blockdev_snapshot_sync, "data", &err); 3121 break; 3122 case TRANSACTION_ACTION_KIND_DRIVE_BACKUP: 3123 visit_type_DriveBackup(m, &(*obj)->drive_backup, "data", &err); 3124 break; 3125 case TRANSACTION_ACTION_KIND_ABORT: 3126 visit_type_Abort(m, &(*obj)->abort, "data", &err); 3127 break; 3128 case TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_INTERNAL_SYNC: 3129 visit_type_BlockdevSnapshotInternal(m, &(*obj)->blockdev_snapshot_internal_sync, "data", &err); 3130 break; 3131 default: 3132 abort(); 3133 } 3134 } 3135 error_propagate(errp, err); 3136 err = NULL; 3137 } 3138 /* Always call end_struct if start_struct succeeded. */ 3139 visit_end_struct(m, &err); 3140 } 3141 error_propagate(errp, err); 3142 } 3143} 3144 3145void visit_type_TransactionActionList(Visitor *m, TransactionActionList ** obj, const char *name, Error **errp) 3146{ 3147 GenericList *i, **prev = (GenericList **)obj; 3148 Error *err = NULL; 3149 3150 if (!error_is_set(errp)) { 3151 visit_start_list(m, name, &err); 3152 if (!err) { 3153 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3154 TransactionActionList *native_i = (TransactionActionList *)i; 3155 visit_type_TransactionAction(m, &native_i->value, NULL, &err); 3156 } 3157 error_propagate(errp, err); 3158 err = NULL; 3159 3160 /* Always call end_list if start_list succeeded. */ 3161 visit_end_list(m, &err); 3162 } 3163 error_propagate(errp, err); 3164 } 3165} 3166 3167static void visit_type_ObjectPropertyInfo_fields(Visitor *m, ObjectPropertyInfo ** obj, Error **errp) 3168{ 3169 Error *err = NULL; 3170 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 3171 visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 3172 3173 error_propagate(errp, err); 3174} 3175 3176void visit_type_ObjectPropertyInfo(Visitor *m, ObjectPropertyInfo ** obj, const char *name, Error **errp) 3177{ 3178 if (!error_is_set(errp)) { 3179 Error *err = NULL; 3180 visit_start_struct(m, (void **)obj, "ObjectPropertyInfo", name, sizeof(ObjectPropertyInfo), &err); 3181 if (!err) { 3182 if (!obj || *obj) { 3183 visit_type_ObjectPropertyInfo_fields(m, obj, &err); 3184 error_propagate(errp, err); 3185 err = NULL; 3186 } 3187 /* Always call end_struct if start_struct succeeded. */ 3188 visit_end_struct(m, &err); 3189 } 3190 error_propagate(errp, err); 3191 } 3192} 3193 3194void visit_type_ObjectPropertyInfoList(Visitor *m, ObjectPropertyInfoList ** obj, const char *name, Error **errp) 3195{ 3196 GenericList *i, **prev = (GenericList **)obj; 3197 Error *err = NULL; 3198 3199 if (!error_is_set(errp)) { 3200 visit_start_list(m, name, &err); 3201 if (!err) { 3202 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3203 ObjectPropertyInfoList *native_i = (ObjectPropertyInfoList *)i; 3204 visit_type_ObjectPropertyInfo(m, &native_i->value, NULL, &err); 3205 } 3206 error_propagate(errp, err); 3207 err = NULL; 3208 3209 /* Always call end_list if start_list succeeded. */ 3210 visit_end_list(m, &err); 3211 } 3212 error_propagate(errp, err); 3213 } 3214} 3215 3216static void visit_type_ObjectTypeInfo_fields(Visitor *m, ObjectTypeInfo ** obj, Error **errp) 3217{ 3218 Error *err = NULL; 3219 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 3220 3221 error_propagate(errp, err); 3222} 3223 3224void visit_type_ObjectTypeInfo(Visitor *m, ObjectTypeInfo ** obj, const char *name, Error **errp) 3225{ 3226 if (!error_is_set(errp)) { 3227 Error *err = NULL; 3228 visit_start_struct(m, (void **)obj, "ObjectTypeInfo", name, sizeof(ObjectTypeInfo), &err); 3229 if (!err) { 3230 if (!obj || *obj) { 3231 visit_type_ObjectTypeInfo_fields(m, obj, &err); 3232 error_propagate(errp, err); 3233 err = NULL; 3234 } 3235 /* Always call end_struct if start_struct succeeded. */ 3236 visit_end_struct(m, &err); 3237 } 3238 error_propagate(errp, err); 3239 } 3240} 3241 3242void visit_type_ObjectTypeInfoList(Visitor *m, ObjectTypeInfoList ** obj, const char *name, Error **errp) 3243{ 3244 GenericList *i, **prev = (GenericList **)obj; 3245 Error *err = NULL; 3246 3247 if (!error_is_set(errp)) { 3248 visit_start_list(m, name, &err); 3249 if (!err) { 3250 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3251 ObjectTypeInfoList *native_i = (ObjectTypeInfoList *)i; 3252 visit_type_ObjectTypeInfo(m, &native_i->value, NULL, &err); 3253 } 3254 error_propagate(errp, err); 3255 err = NULL; 3256 3257 /* Always call end_list if start_list succeeded. */ 3258 visit_end_list(m, &err); 3259 } 3260 error_propagate(errp, err); 3261 } 3262} 3263 3264static void visit_type_DevicePropertyInfo_fields(Visitor *m, DevicePropertyInfo ** obj, Error **errp) 3265{ 3266 Error *err = NULL; 3267 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 3268 visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 3269 3270 error_propagate(errp, err); 3271} 3272 3273void visit_type_DevicePropertyInfo(Visitor *m, DevicePropertyInfo ** obj, const char *name, Error **errp) 3274{ 3275 if (!error_is_set(errp)) { 3276 Error *err = NULL; 3277 visit_start_struct(m, (void **)obj, "DevicePropertyInfo", name, sizeof(DevicePropertyInfo), &err); 3278 if (!err) { 3279 if (!obj || *obj) { 3280 visit_type_DevicePropertyInfo_fields(m, obj, &err); 3281 error_propagate(errp, err); 3282 err = NULL; 3283 } 3284 /* Always call end_struct if start_struct succeeded. */ 3285 visit_end_struct(m, &err); 3286 } 3287 error_propagate(errp, err); 3288 } 3289} 3290 3291void visit_type_DevicePropertyInfoList(Visitor *m, DevicePropertyInfoList ** obj, const char *name, Error **errp) 3292{ 3293 GenericList *i, **prev = (GenericList **)obj; 3294 Error *err = NULL; 3295 3296 if (!error_is_set(errp)) { 3297 visit_start_list(m, name, &err); 3298 if (!err) { 3299 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3300 DevicePropertyInfoList *native_i = (DevicePropertyInfoList *)i; 3301 visit_type_DevicePropertyInfo(m, &native_i->value, NULL, &err); 3302 } 3303 error_propagate(errp, err); 3304 err = NULL; 3305 3306 /* Always call end_list if start_list succeeded. */ 3307 visit_end_list(m, &err); 3308 } 3309 error_propagate(errp, err); 3310 } 3311} 3312 3313static void visit_type_NetdevNoneOptions_fields(Visitor *m, NetdevNoneOptions ** obj, Error **errp) 3314{ 3315 Error *err = NULL; 3316 3317 error_propagate(errp, err); 3318} 3319 3320void visit_type_NetdevNoneOptions(Visitor *m, NetdevNoneOptions ** obj, const char *name, Error **errp) 3321{ 3322 if (!error_is_set(errp)) { 3323 Error *err = NULL; 3324 visit_start_struct(m, (void **)obj, "NetdevNoneOptions", name, sizeof(NetdevNoneOptions), &err); 3325 if (!err) { 3326 if (!obj || *obj) { 3327 visit_type_NetdevNoneOptions_fields(m, obj, &err); 3328 error_propagate(errp, err); 3329 err = NULL; 3330 } 3331 /* Always call end_struct if start_struct succeeded. */ 3332 visit_end_struct(m, &err); 3333 } 3334 error_propagate(errp, err); 3335 } 3336} 3337 3338void visit_type_NetdevNoneOptionsList(Visitor *m, NetdevNoneOptionsList ** obj, const char *name, Error **errp) 3339{ 3340 GenericList *i, **prev = (GenericList **)obj; 3341 Error *err = NULL; 3342 3343 if (!error_is_set(errp)) { 3344 visit_start_list(m, name, &err); 3345 if (!err) { 3346 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3347 NetdevNoneOptionsList *native_i = (NetdevNoneOptionsList *)i; 3348 visit_type_NetdevNoneOptions(m, &native_i->value, NULL, &err); 3349 } 3350 error_propagate(errp, err); 3351 err = NULL; 3352 3353 /* Always call end_list if start_list succeeded. */ 3354 visit_end_list(m, &err); 3355 } 3356 error_propagate(errp, err); 3357 } 3358} 3359 3360static void visit_type_NetLegacyNicOptions_fields(Visitor *m, NetLegacyNicOptions ** obj, Error **errp) 3361{ 3362 Error *err = NULL; 3363 visit_start_optional(m, obj ? &(*obj)->has_netdev : NULL, "netdev", &err); 3364 if (obj && (*obj)->has_netdev) { 3365 visit_type_str(m, obj ? &(*obj)->netdev : NULL, "netdev", &err); 3366 } 3367 visit_end_optional(m, &err); 3368 visit_start_optional(m, obj ? &(*obj)->has_macaddr : NULL, "macaddr", &err); 3369 if (obj && (*obj)->has_macaddr) { 3370 visit_type_str(m, obj ? &(*obj)->macaddr : NULL, "macaddr", &err); 3371 } 3372 visit_end_optional(m, &err); 3373 visit_start_optional(m, obj ? &(*obj)->has_model : NULL, "model", &err); 3374 if (obj && (*obj)->has_model) { 3375 visit_type_str(m, obj ? &(*obj)->model : NULL, "model", &err); 3376 } 3377 visit_end_optional(m, &err); 3378 visit_start_optional(m, obj ? &(*obj)->has_addr : NULL, "addr", &err); 3379 if (obj && (*obj)->has_addr) { 3380 visit_type_str(m, obj ? &(*obj)->addr : NULL, "addr", &err); 3381 } 3382 visit_end_optional(m, &err); 3383 visit_start_optional(m, obj ? &(*obj)->has_vectors : NULL, "vectors", &err); 3384 if (obj && (*obj)->has_vectors) { 3385 visit_type_uint32(m, obj ? &(*obj)->vectors : NULL, "vectors", &err); 3386 } 3387 visit_end_optional(m, &err); 3388 3389 error_propagate(errp, err); 3390} 3391 3392void visit_type_NetLegacyNicOptions(Visitor *m, NetLegacyNicOptions ** obj, const char *name, Error **errp) 3393{ 3394 if (!error_is_set(errp)) { 3395 Error *err = NULL; 3396 visit_start_struct(m, (void **)obj, "NetLegacyNicOptions", name, sizeof(NetLegacyNicOptions), &err); 3397 if (!err) { 3398 if (!obj || *obj) { 3399 visit_type_NetLegacyNicOptions_fields(m, obj, &err); 3400 error_propagate(errp, err); 3401 err = NULL; 3402 } 3403 /* Always call end_struct if start_struct succeeded. */ 3404 visit_end_struct(m, &err); 3405 } 3406 error_propagate(errp, err); 3407 } 3408} 3409 3410void visit_type_NetLegacyNicOptionsList(Visitor *m, NetLegacyNicOptionsList ** obj, const char *name, Error **errp) 3411{ 3412 GenericList *i, **prev = (GenericList **)obj; 3413 Error *err = NULL; 3414 3415 if (!error_is_set(errp)) { 3416 visit_start_list(m, name, &err); 3417 if (!err) { 3418 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3419 NetLegacyNicOptionsList *native_i = (NetLegacyNicOptionsList *)i; 3420 visit_type_NetLegacyNicOptions(m, &native_i->value, NULL, &err); 3421 } 3422 error_propagate(errp, err); 3423 err = NULL; 3424 3425 /* Always call end_list if start_list succeeded. */ 3426 visit_end_list(m, &err); 3427 } 3428 error_propagate(errp, err); 3429 } 3430} 3431 3432static void visit_type_String_fields(Visitor *m, String ** obj, Error **errp) 3433{ 3434 Error *err = NULL; 3435 visit_type_str(m, obj ? &(*obj)->str : NULL, "str", &err); 3436 3437 error_propagate(errp, err); 3438} 3439 3440void visit_type_String(Visitor *m, String ** obj, const char *name, Error **errp) 3441{ 3442 if (!error_is_set(errp)) { 3443 Error *err = NULL; 3444 visit_start_struct(m, (void **)obj, "String", name, sizeof(String), &err); 3445 if (!err) { 3446 if (!obj || *obj) { 3447 visit_type_String_fields(m, obj, &err); 3448 error_propagate(errp, err); 3449 err = NULL; 3450 } 3451 /* Always call end_struct if start_struct succeeded. */ 3452 visit_end_struct(m, &err); 3453 } 3454 error_propagate(errp, err); 3455 } 3456} 3457 3458void visit_type_StringList(Visitor *m, StringList ** obj, const char *name, Error **errp) 3459{ 3460 GenericList *i, **prev = (GenericList **)obj; 3461 Error *err = NULL; 3462 3463 if (!error_is_set(errp)) { 3464 visit_start_list(m, name, &err); 3465 if (!err) { 3466 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3467 StringList *native_i = (StringList *)i; 3468 visit_type_String(m, &native_i->value, NULL, &err); 3469 } 3470 error_propagate(errp, err); 3471 err = NULL; 3472 3473 /* Always call end_list if start_list succeeded. */ 3474 visit_end_list(m, &err); 3475 } 3476 error_propagate(errp, err); 3477 } 3478} 3479 3480static void visit_type_NetdevUserOptions_fields(Visitor *m, NetdevUserOptions ** obj, Error **errp) 3481{ 3482 Error *err = NULL; 3483 visit_start_optional(m, obj ? &(*obj)->has_hostname : NULL, "hostname", &err); 3484 if (obj && (*obj)->has_hostname) { 3485 visit_type_str(m, obj ? &(*obj)->hostname : NULL, "hostname", &err); 3486 } 3487 visit_end_optional(m, &err); 3488 visit_start_optional(m, obj ? &(*obj)->has_q_restrict : NULL, "restrict", &err); 3489 if (obj && (*obj)->has_q_restrict) { 3490 visit_type_bool(m, obj ? &(*obj)->q_restrict : NULL, "restrict", &err); 3491 } 3492 visit_end_optional(m, &err); 3493 visit_start_optional(m, obj ? &(*obj)->has_ip : NULL, "ip", &err); 3494 if (obj && (*obj)->has_ip) { 3495 visit_type_str(m, obj ? &(*obj)->ip : NULL, "ip", &err); 3496 } 3497 visit_end_optional(m, &err); 3498 visit_start_optional(m, obj ? &(*obj)->has_net : NULL, "net", &err); 3499 if (obj && (*obj)->has_net) { 3500 visit_type_str(m, obj ? &(*obj)->net : NULL, "net", &err); 3501 } 3502 visit_end_optional(m, &err); 3503 visit_start_optional(m, obj ? &(*obj)->has_host : NULL, "host", &err); 3504 if (obj && (*obj)->has_host) { 3505 visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 3506 } 3507 visit_end_optional(m, &err); 3508 visit_start_optional(m, obj ? &(*obj)->has_tftp : NULL, "tftp", &err); 3509 if (obj && (*obj)->has_tftp) { 3510 visit_type_str(m, obj ? &(*obj)->tftp : NULL, "tftp", &err); 3511 } 3512 visit_end_optional(m, &err); 3513 visit_start_optional(m, obj ? &(*obj)->has_bootfile : NULL, "bootfile", &err); 3514 if (obj && (*obj)->has_bootfile) { 3515 visit_type_str(m, obj ? &(*obj)->bootfile : NULL, "bootfile", &err); 3516 } 3517 visit_end_optional(m, &err); 3518 visit_start_optional(m, obj ? &(*obj)->has_dhcpstart : NULL, "dhcpstart", &err); 3519 if (obj && (*obj)->has_dhcpstart) { 3520 visit_type_str(m, obj ? &(*obj)->dhcpstart : NULL, "dhcpstart", &err); 3521 } 3522 visit_end_optional(m, &err); 3523 visit_start_optional(m, obj ? &(*obj)->has_dns : NULL, "dns", &err); 3524 if (obj && (*obj)->has_dns) { 3525 visit_type_str(m, obj ? &(*obj)->dns : NULL, "dns", &err); 3526 } 3527 visit_end_optional(m, &err); 3528 visit_start_optional(m, obj ? &(*obj)->has_dnssearch : NULL, "dnssearch", &err); 3529 if (obj && (*obj)->has_dnssearch) { 3530 visit_type_StringList(m, obj ? &(*obj)->dnssearch : NULL, "dnssearch", &err); 3531 } 3532 visit_end_optional(m, &err); 3533 visit_start_optional(m, obj ? &(*obj)->has_smb : NULL, "smb", &err); 3534 if (obj && (*obj)->has_smb) { 3535 visit_type_str(m, obj ? &(*obj)->smb : NULL, "smb", &err); 3536 } 3537 visit_end_optional(m, &err); 3538 visit_start_optional(m, obj ? &(*obj)->has_smbserver : NULL, "smbserver", &err); 3539 if (obj && (*obj)->has_smbserver) { 3540 visit_type_str(m, obj ? &(*obj)->smbserver : NULL, "smbserver", &err); 3541 } 3542 visit_end_optional(m, &err); 3543 visit_start_optional(m, obj ? &(*obj)->has_hostfwd : NULL, "hostfwd", &err); 3544 if (obj && (*obj)->has_hostfwd) { 3545 visit_type_StringList(m, obj ? &(*obj)->hostfwd : NULL, "hostfwd", &err); 3546 } 3547 visit_end_optional(m, &err); 3548 visit_start_optional(m, obj ? &(*obj)->has_guestfwd : NULL, "guestfwd", &err); 3549 if (obj && (*obj)->has_guestfwd) { 3550 visit_type_StringList(m, obj ? &(*obj)->guestfwd : NULL, "guestfwd", &err); 3551 } 3552 visit_end_optional(m, &err); 3553 3554 error_propagate(errp, err); 3555} 3556 3557void visit_type_NetdevUserOptions(Visitor *m, NetdevUserOptions ** obj, const char *name, Error **errp) 3558{ 3559 if (!error_is_set(errp)) { 3560 Error *err = NULL; 3561 visit_start_struct(m, (void **)obj, "NetdevUserOptions", name, sizeof(NetdevUserOptions), &err); 3562 if (!err) { 3563 if (!obj || *obj) { 3564 visit_type_NetdevUserOptions_fields(m, obj, &err); 3565 error_propagate(errp, err); 3566 err = NULL; 3567 } 3568 /* Always call end_struct if start_struct succeeded. */ 3569 visit_end_struct(m, &err); 3570 } 3571 error_propagate(errp, err); 3572 } 3573} 3574 3575void visit_type_NetdevUserOptionsList(Visitor *m, NetdevUserOptionsList ** obj, const char *name, Error **errp) 3576{ 3577 GenericList *i, **prev = (GenericList **)obj; 3578 Error *err = NULL; 3579 3580 if (!error_is_set(errp)) { 3581 visit_start_list(m, name, &err); 3582 if (!err) { 3583 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3584 NetdevUserOptionsList *native_i = (NetdevUserOptionsList *)i; 3585 visit_type_NetdevUserOptions(m, &native_i->value, NULL, &err); 3586 } 3587 error_propagate(errp, err); 3588 err = NULL; 3589 3590 /* Always call end_list if start_list succeeded. */ 3591 visit_end_list(m, &err); 3592 } 3593 error_propagate(errp, err); 3594 } 3595} 3596 3597static void visit_type_NetdevTapOptions_fields(Visitor *m, NetdevTapOptions ** obj, Error **errp) 3598{ 3599 Error *err = NULL; 3600 visit_start_optional(m, obj ? &(*obj)->has_ifname : NULL, "ifname", &err); 3601 if (obj && (*obj)->has_ifname) { 3602 visit_type_str(m, obj ? &(*obj)->ifname : NULL, "ifname", &err); 3603 } 3604 visit_end_optional(m, &err); 3605 visit_start_optional(m, obj ? &(*obj)->has_fd : NULL, "fd", &err); 3606 if (obj && (*obj)->has_fd) { 3607 visit_type_str(m, obj ? &(*obj)->fd : NULL, "fd", &err); 3608 } 3609 visit_end_optional(m, &err); 3610 visit_start_optional(m, obj ? &(*obj)->has_fds : NULL, "fds", &err); 3611 if (obj && (*obj)->has_fds) { 3612 visit_type_str(m, obj ? &(*obj)->fds : NULL, "fds", &err); 3613 } 3614 visit_end_optional(m, &err); 3615 visit_start_optional(m, obj ? &(*obj)->has_script : NULL, "script", &err); 3616 if (obj && (*obj)->has_script) { 3617 visit_type_str(m, obj ? &(*obj)->script : NULL, "script", &err); 3618 } 3619 visit_end_optional(m, &err); 3620 visit_start_optional(m, obj ? &(*obj)->has_downscript : NULL, "downscript", &err); 3621 if (obj && (*obj)->has_downscript) { 3622 visit_type_str(m, obj ? &(*obj)->downscript : NULL, "downscript", &err); 3623 } 3624 visit_end_optional(m, &err); 3625 visit_start_optional(m, obj ? &(*obj)->has_helper : NULL, "helper", &err); 3626 if (obj && (*obj)->has_helper) { 3627 visit_type_str(m, obj ? &(*obj)->helper : NULL, "helper", &err); 3628 } 3629 visit_end_optional(m, &err); 3630 visit_start_optional(m, obj ? &(*obj)->has_sndbuf : NULL, "sndbuf", &err); 3631 if (obj && (*obj)->has_sndbuf) { 3632 visit_type_size(m, obj ? &(*obj)->sndbuf : NULL, "sndbuf", &err); 3633 } 3634 visit_end_optional(m, &err); 3635 visit_start_optional(m, obj ? &(*obj)->has_vnet_hdr : NULL, "vnet_hdr", &err); 3636 if (obj && (*obj)->has_vnet_hdr) { 3637 visit_type_bool(m, obj ? &(*obj)->vnet_hdr : NULL, "vnet_hdr", &err); 3638 } 3639 visit_end_optional(m, &err); 3640 visit_start_optional(m, obj ? &(*obj)->has_vhost : NULL, "vhost", &err); 3641 if (obj && (*obj)->has_vhost) { 3642 visit_type_bool(m, obj ? &(*obj)->vhost : NULL, "vhost", &err); 3643 } 3644 visit_end_optional(m, &err); 3645 visit_start_optional(m, obj ? &(*obj)->has_vhostfd : NULL, "vhostfd", &err); 3646 if (obj && (*obj)->has_vhostfd) { 3647 visit_type_str(m, obj ? &(*obj)->vhostfd : NULL, "vhostfd", &err); 3648 } 3649 visit_end_optional(m, &err); 3650 visit_start_optional(m, obj ? &(*obj)->has_vhostfds : NULL, "vhostfds", &err); 3651 if (obj && (*obj)->has_vhostfds) { 3652 visit_type_str(m, obj ? &(*obj)->vhostfds : NULL, "vhostfds", &err); 3653 } 3654 visit_end_optional(m, &err); 3655 visit_start_optional(m, obj ? &(*obj)->has_vhostforce : NULL, "vhostforce", &err); 3656 if (obj && (*obj)->has_vhostforce) { 3657 visit_type_bool(m, obj ? &(*obj)->vhostforce : NULL, "vhostforce", &err); 3658 } 3659 visit_end_optional(m, &err); 3660 visit_start_optional(m, obj ? &(*obj)->has_queues : NULL, "queues", &err); 3661 if (obj && (*obj)->has_queues) { 3662 visit_type_uint32(m, obj ? &(*obj)->queues : NULL, "queues", &err); 3663 } 3664 visit_end_optional(m, &err); 3665 3666 error_propagate(errp, err); 3667} 3668 3669void visit_type_NetdevTapOptions(Visitor *m, NetdevTapOptions ** obj, const char *name, Error **errp) 3670{ 3671 if (!error_is_set(errp)) { 3672 Error *err = NULL; 3673 visit_start_struct(m, (void **)obj, "NetdevTapOptions", name, sizeof(NetdevTapOptions), &err); 3674 if (!err) { 3675 if (!obj || *obj) { 3676 visit_type_NetdevTapOptions_fields(m, obj, &err); 3677 error_propagate(errp, err); 3678 err = NULL; 3679 } 3680 /* Always call end_struct if start_struct succeeded. */ 3681 visit_end_struct(m, &err); 3682 } 3683 error_propagate(errp, err); 3684 } 3685} 3686 3687void visit_type_NetdevTapOptionsList(Visitor *m, NetdevTapOptionsList ** obj, const char *name, Error **errp) 3688{ 3689 GenericList *i, **prev = (GenericList **)obj; 3690 Error *err = NULL; 3691 3692 if (!error_is_set(errp)) { 3693 visit_start_list(m, name, &err); 3694 if (!err) { 3695 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3696 NetdevTapOptionsList *native_i = (NetdevTapOptionsList *)i; 3697 visit_type_NetdevTapOptions(m, &native_i->value, NULL, &err); 3698 } 3699 error_propagate(errp, err); 3700 err = NULL; 3701 3702 /* Always call end_list if start_list succeeded. */ 3703 visit_end_list(m, &err); 3704 } 3705 error_propagate(errp, err); 3706 } 3707} 3708 3709static void visit_type_NetdevSocketOptions_fields(Visitor *m, NetdevSocketOptions ** obj, Error **errp) 3710{ 3711 Error *err = NULL; 3712 visit_start_optional(m, obj ? &(*obj)->has_fd : NULL, "fd", &err); 3713 if (obj && (*obj)->has_fd) { 3714 visit_type_str(m, obj ? &(*obj)->fd : NULL, "fd", &err); 3715 } 3716 visit_end_optional(m, &err); 3717 visit_start_optional(m, obj ? &(*obj)->has_listen : NULL, "listen", &err); 3718 if (obj && (*obj)->has_listen) { 3719 visit_type_str(m, obj ? &(*obj)->listen : NULL, "listen", &err); 3720 } 3721 visit_end_optional(m, &err); 3722 visit_start_optional(m, obj ? &(*obj)->has_connect : NULL, "connect", &err); 3723 if (obj && (*obj)->has_connect) { 3724 visit_type_str(m, obj ? &(*obj)->connect : NULL, "connect", &err); 3725 } 3726 visit_end_optional(m, &err); 3727 visit_start_optional(m, obj ? &(*obj)->has_mcast : NULL, "mcast", &err); 3728 if (obj && (*obj)->has_mcast) { 3729 visit_type_str(m, obj ? &(*obj)->mcast : NULL, "mcast", &err); 3730 } 3731 visit_end_optional(m, &err); 3732 visit_start_optional(m, obj ? &(*obj)->has_localaddr : NULL, "localaddr", &err); 3733 if (obj && (*obj)->has_localaddr) { 3734 visit_type_str(m, obj ? &(*obj)->localaddr : NULL, "localaddr", &err); 3735 } 3736 visit_end_optional(m, &err); 3737 visit_start_optional(m, obj ? &(*obj)->has_udp : NULL, "udp", &err); 3738 if (obj && (*obj)->has_udp) { 3739 visit_type_str(m, obj ? &(*obj)->udp : NULL, "udp", &err); 3740 } 3741 visit_end_optional(m, &err); 3742 3743 error_propagate(errp, err); 3744} 3745 3746void visit_type_NetdevSocketOptions(Visitor *m, NetdevSocketOptions ** obj, const char *name, Error **errp) 3747{ 3748 if (!error_is_set(errp)) { 3749 Error *err = NULL; 3750 visit_start_struct(m, (void **)obj, "NetdevSocketOptions", name, sizeof(NetdevSocketOptions), &err); 3751 if (!err) { 3752 if (!obj || *obj) { 3753 visit_type_NetdevSocketOptions_fields(m, obj, &err); 3754 error_propagate(errp, err); 3755 err = NULL; 3756 } 3757 /* Always call end_struct if start_struct succeeded. */ 3758 visit_end_struct(m, &err); 3759 } 3760 error_propagate(errp, err); 3761 } 3762} 3763 3764void visit_type_NetdevSocketOptionsList(Visitor *m, NetdevSocketOptionsList ** obj, const char *name, Error **errp) 3765{ 3766 GenericList *i, **prev = (GenericList **)obj; 3767 Error *err = NULL; 3768 3769 if (!error_is_set(errp)) { 3770 visit_start_list(m, name, &err); 3771 if (!err) { 3772 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3773 NetdevSocketOptionsList *native_i = (NetdevSocketOptionsList *)i; 3774 visit_type_NetdevSocketOptions(m, &native_i->value, NULL, &err); 3775 } 3776 error_propagate(errp, err); 3777 err = NULL; 3778 3779 /* Always call end_list if start_list succeeded. */ 3780 visit_end_list(m, &err); 3781 } 3782 error_propagate(errp, err); 3783 } 3784} 3785 3786static void visit_type_NetdevVdeOptions_fields(Visitor *m, NetdevVdeOptions ** obj, Error **errp) 3787{ 3788 Error *err = NULL; 3789 visit_start_optional(m, obj ? &(*obj)->has_sock : NULL, "sock", &err); 3790 if (obj && (*obj)->has_sock) { 3791 visit_type_str(m, obj ? &(*obj)->sock : NULL, "sock", &err); 3792 } 3793 visit_end_optional(m, &err); 3794 visit_start_optional(m, obj ? &(*obj)->has_port : NULL, "port", &err); 3795 if (obj && (*obj)->has_port) { 3796 visit_type_uint16(m, obj ? &(*obj)->port : NULL, "port", &err); 3797 } 3798 visit_end_optional(m, &err); 3799 visit_start_optional(m, obj ? &(*obj)->has_group : NULL, "group", &err); 3800 if (obj && (*obj)->has_group) { 3801 visit_type_str(m, obj ? &(*obj)->group : NULL, "group", &err); 3802 } 3803 visit_end_optional(m, &err); 3804 visit_start_optional(m, obj ? &(*obj)->has_mode : NULL, "mode", &err); 3805 if (obj && (*obj)->has_mode) { 3806 visit_type_uint16(m, obj ? &(*obj)->mode : NULL, "mode", &err); 3807 } 3808 visit_end_optional(m, &err); 3809 3810 error_propagate(errp, err); 3811} 3812 3813void visit_type_NetdevVdeOptions(Visitor *m, NetdevVdeOptions ** obj, const char *name, Error **errp) 3814{ 3815 if (!error_is_set(errp)) { 3816 Error *err = NULL; 3817 visit_start_struct(m, (void **)obj, "NetdevVdeOptions", name, sizeof(NetdevVdeOptions), &err); 3818 if (!err) { 3819 if (!obj || *obj) { 3820 visit_type_NetdevVdeOptions_fields(m, obj, &err); 3821 error_propagate(errp, err); 3822 err = NULL; 3823 } 3824 /* Always call end_struct if start_struct succeeded. */ 3825 visit_end_struct(m, &err); 3826 } 3827 error_propagate(errp, err); 3828 } 3829} 3830 3831void visit_type_NetdevVdeOptionsList(Visitor *m, NetdevVdeOptionsList ** obj, const char *name, Error **errp) 3832{ 3833 GenericList *i, **prev = (GenericList **)obj; 3834 Error *err = NULL; 3835 3836 if (!error_is_set(errp)) { 3837 visit_start_list(m, name, &err); 3838 if (!err) { 3839 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3840 NetdevVdeOptionsList *native_i = (NetdevVdeOptionsList *)i; 3841 visit_type_NetdevVdeOptions(m, &native_i->value, NULL, &err); 3842 } 3843 error_propagate(errp, err); 3844 err = NULL; 3845 3846 /* Always call end_list if start_list succeeded. */ 3847 visit_end_list(m, &err); 3848 } 3849 error_propagate(errp, err); 3850 } 3851} 3852 3853static void visit_type_NetdevDumpOptions_fields(Visitor *m, NetdevDumpOptions ** obj, Error **errp) 3854{ 3855 Error *err = NULL; 3856 visit_start_optional(m, obj ? &(*obj)->has_len : NULL, "len", &err); 3857 if (obj && (*obj)->has_len) { 3858 visit_type_size(m, obj ? &(*obj)->len : NULL, "len", &err); 3859 } 3860 visit_end_optional(m, &err); 3861 visit_start_optional(m, obj ? &(*obj)->has_file : NULL, "file", &err); 3862 if (obj && (*obj)->has_file) { 3863 visit_type_str(m, obj ? &(*obj)->file : NULL, "file", &err); 3864 } 3865 visit_end_optional(m, &err); 3866 3867 error_propagate(errp, err); 3868} 3869 3870void visit_type_NetdevDumpOptions(Visitor *m, NetdevDumpOptions ** obj, const char *name, Error **errp) 3871{ 3872 if (!error_is_set(errp)) { 3873 Error *err = NULL; 3874 visit_start_struct(m, (void **)obj, "NetdevDumpOptions", name, sizeof(NetdevDumpOptions), &err); 3875 if (!err) { 3876 if (!obj || *obj) { 3877 visit_type_NetdevDumpOptions_fields(m, obj, &err); 3878 error_propagate(errp, err); 3879 err = NULL; 3880 } 3881 /* Always call end_struct if start_struct succeeded. */ 3882 visit_end_struct(m, &err); 3883 } 3884 error_propagate(errp, err); 3885 } 3886} 3887 3888void visit_type_NetdevDumpOptionsList(Visitor *m, NetdevDumpOptionsList ** obj, const char *name, Error **errp) 3889{ 3890 GenericList *i, **prev = (GenericList **)obj; 3891 Error *err = NULL; 3892 3893 if (!error_is_set(errp)) { 3894 visit_start_list(m, name, &err); 3895 if (!err) { 3896 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3897 NetdevDumpOptionsList *native_i = (NetdevDumpOptionsList *)i; 3898 visit_type_NetdevDumpOptions(m, &native_i->value, NULL, &err); 3899 } 3900 error_propagate(errp, err); 3901 err = NULL; 3902 3903 /* Always call end_list if start_list succeeded. */ 3904 visit_end_list(m, &err); 3905 } 3906 error_propagate(errp, err); 3907 } 3908} 3909 3910static void visit_type_NetdevBridgeOptions_fields(Visitor *m, NetdevBridgeOptions ** obj, Error **errp) 3911{ 3912 Error *err = NULL; 3913 visit_start_optional(m, obj ? &(*obj)->has_br : NULL, "br", &err); 3914 if (obj && (*obj)->has_br) { 3915 visit_type_str(m, obj ? &(*obj)->br : NULL, "br", &err); 3916 } 3917 visit_end_optional(m, &err); 3918 visit_start_optional(m, obj ? &(*obj)->has_helper : NULL, "helper", &err); 3919 if (obj && (*obj)->has_helper) { 3920 visit_type_str(m, obj ? &(*obj)->helper : NULL, "helper", &err); 3921 } 3922 visit_end_optional(m, &err); 3923 3924 error_propagate(errp, err); 3925} 3926 3927void visit_type_NetdevBridgeOptions(Visitor *m, NetdevBridgeOptions ** obj, const char *name, Error **errp) 3928{ 3929 if (!error_is_set(errp)) { 3930 Error *err = NULL; 3931 visit_start_struct(m, (void **)obj, "NetdevBridgeOptions", name, sizeof(NetdevBridgeOptions), &err); 3932 if (!err) { 3933 if (!obj || *obj) { 3934 visit_type_NetdevBridgeOptions_fields(m, obj, &err); 3935 error_propagate(errp, err); 3936 err = NULL; 3937 } 3938 /* Always call end_struct if start_struct succeeded. */ 3939 visit_end_struct(m, &err); 3940 } 3941 error_propagate(errp, err); 3942 } 3943} 3944 3945void visit_type_NetdevBridgeOptionsList(Visitor *m, NetdevBridgeOptionsList ** obj, const char *name, Error **errp) 3946{ 3947 GenericList *i, **prev = (GenericList **)obj; 3948 Error *err = NULL; 3949 3950 if (!error_is_set(errp)) { 3951 visit_start_list(m, name, &err); 3952 if (!err) { 3953 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3954 NetdevBridgeOptionsList *native_i = (NetdevBridgeOptionsList *)i; 3955 visit_type_NetdevBridgeOptions(m, &native_i->value, NULL, &err); 3956 } 3957 error_propagate(errp, err); 3958 err = NULL; 3959 3960 /* Always call end_list if start_list succeeded. */ 3961 visit_end_list(m, &err); 3962 } 3963 error_propagate(errp, err); 3964 } 3965} 3966 3967static void visit_type_NetdevHubPortOptions_fields(Visitor *m, NetdevHubPortOptions ** obj, Error **errp) 3968{ 3969 Error *err = NULL; 3970 visit_type_int32(m, obj ? &(*obj)->hubid : NULL, "hubid", &err); 3971 3972 error_propagate(errp, err); 3973} 3974 3975void visit_type_NetdevHubPortOptions(Visitor *m, NetdevHubPortOptions ** obj, const char *name, Error **errp) 3976{ 3977 if (!error_is_set(errp)) { 3978 Error *err = NULL; 3979 visit_start_struct(m, (void **)obj, "NetdevHubPortOptions", name, sizeof(NetdevHubPortOptions), &err); 3980 if (!err) { 3981 if (!obj || *obj) { 3982 visit_type_NetdevHubPortOptions_fields(m, obj, &err); 3983 error_propagate(errp, err); 3984 err = NULL; 3985 } 3986 /* Always call end_struct if start_struct succeeded. */ 3987 visit_end_struct(m, &err); 3988 } 3989 error_propagate(errp, err); 3990 } 3991} 3992 3993void visit_type_NetdevHubPortOptionsList(Visitor *m, NetdevHubPortOptionsList ** obj, const char *name, Error **errp) 3994{ 3995 GenericList *i, **prev = (GenericList **)obj; 3996 Error *err = NULL; 3997 3998 if (!error_is_set(errp)) { 3999 visit_start_list(m, name, &err); 4000 if (!err) { 4001 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4002 NetdevHubPortOptionsList *native_i = (NetdevHubPortOptionsList *)i; 4003 visit_type_NetdevHubPortOptions(m, &native_i->value, NULL, &err); 4004 } 4005 error_propagate(errp, err); 4006 err = NULL; 4007 4008 /* Always call end_list if start_list succeeded. */ 4009 visit_end_list(m, &err); 4010 } 4011 error_propagate(errp, err); 4012 } 4013} 4014 4015static void visit_type_NetdevNetmapOptions_fields(Visitor *m, NetdevNetmapOptions ** obj, Error **errp) 4016{ 4017 Error *err = NULL; 4018 visit_type_str(m, obj ? &(*obj)->ifname : NULL, "ifname", &err); 4019 visit_start_optional(m, obj ? &(*obj)->has_devname : NULL, "devname", &err); 4020 if (obj && (*obj)->has_devname) { 4021 visit_type_str(m, obj ? &(*obj)->devname : NULL, "devname", &err); 4022 } 4023 visit_end_optional(m, &err); 4024 4025 error_propagate(errp, err); 4026} 4027 4028void visit_type_NetdevNetmapOptions(Visitor *m, NetdevNetmapOptions ** obj, const char *name, Error **errp) 4029{ 4030 if (!error_is_set(errp)) { 4031 Error *err = NULL; 4032 visit_start_struct(m, (void **)obj, "NetdevNetmapOptions", name, sizeof(NetdevNetmapOptions), &err); 4033 if (!err) { 4034 if (!obj || *obj) { 4035 visit_type_NetdevNetmapOptions_fields(m, obj, &err); 4036 error_propagate(errp, err); 4037 err = NULL; 4038 } 4039 /* Always call end_struct if start_struct succeeded. */ 4040 visit_end_struct(m, &err); 4041 } 4042 error_propagate(errp, err); 4043 } 4044} 4045 4046void visit_type_NetdevNetmapOptionsList(Visitor *m, NetdevNetmapOptionsList ** obj, const char *name, Error **errp) 4047{ 4048 GenericList *i, **prev = (GenericList **)obj; 4049 Error *err = NULL; 4050 4051 if (!error_is_set(errp)) { 4052 visit_start_list(m, name, &err); 4053 if (!err) { 4054 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4055 NetdevNetmapOptionsList *native_i = (NetdevNetmapOptionsList *)i; 4056 visit_type_NetdevNetmapOptions(m, &native_i->value, NULL, &err); 4057 } 4058 error_propagate(errp, err); 4059 err = NULL; 4060 4061 /* Always call end_list if start_list succeeded. */ 4062 visit_end_list(m, &err); 4063 } 4064 error_propagate(errp, err); 4065 } 4066} 4067 4068void visit_type_NetClientOptionsKind(Visitor *m, NetClientOptionsKind * obj, const char *name, Error **errp) 4069{ 4070 visit_type_enum(m, (int *)obj, NetClientOptionsKind_lookup, "NetClientOptionsKind", name, errp); 4071} 4072 4073void visit_type_NetClientOptions(Visitor *m, NetClientOptions ** obj, const char *name, Error **errp) 4074{ 4075 Error *err = NULL; 4076 4077 if (!error_is_set(errp)) { 4078 visit_start_struct(m, (void **)obj, "NetClientOptions", name, sizeof(NetClientOptions), &err); 4079 if (!err) { 4080 if (obj && *obj) { 4081 visit_type_NetClientOptionsKind(m, &(*obj)->kind, "type", &err); 4082 if (!err) { 4083 switch ((*obj)->kind) { 4084 case NET_CLIENT_OPTIONS_KIND_NONE: 4085 visit_type_NetdevNoneOptions(m, &(*obj)->none, "data", &err); 4086 break; 4087 case NET_CLIENT_OPTIONS_KIND_NIC: 4088 visit_type_NetLegacyNicOptions(m, &(*obj)->nic, "data", &err); 4089 break; 4090 case NET_CLIENT_OPTIONS_KIND_USER: 4091 visit_type_NetdevUserOptions(m, &(*obj)->user, "data", &err); 4092 break; 4093 case NET_CLIENT_OPTIONS_KIND_TAP: 4094 visit_type_NetdevTapOptions(m, &(*obj)->tap, "data", &err); 4095 break; 4096 case NET_CLIENT_OPTIONS_KIND_SOCKET: 4097 visit_type_NetdevSocketOptions(m, &(*obj)->socket, "data", &err); 4098 break; 4099 case NET_CLIENT_OPTIONS_KIND_VDE: 4100 visit_type_NetdevVdeOptions(m, &(*obj)->vde, "data", &err); 4101 break; 4102 case NET_CLIENT_OPTIONS_KIND_DUMP: 4103 visit_type_NetdevDumpOptions(m, &(*obj)->dump, "data", &err); 4104 break; 4105 case NET_CLIENT_OPTIONS_KIND_BRIDGE: 4106 visit_type_NetdevBridgeOptions(m, &(*obj)->bridge, "data", &err); 4107 break; 4108 case NET_CLIENT_OPTIONS_KIND_HUBPORT: 4109 visit_type_NetdevHubPortOptions(m, &(*obj)->hubport, "data", &err); 4110 break; 4111 case NET_CLIENT_OPTIONS_KIND_NETMAP: 4112 visit_type_NetdevNetmapOptions(m, &(*obj)->netmap, "data", &err); 4113 break; 4114 default: 4115 abort(); 4116 } 4117 } 4118 error_propagate(errp, err); 4119 err = NULL; 4120 } 4121 /* Always call end_struct if start_struct succeeded. */ 4122 visit_end_struct(m, &err); 4123 } 4124 error_propagate(errp, err); 4125 } 4126} 4127 4128void visit_type_NetClientOptionsList(Visitor *m, NetClientOptionsList ** obj, const char *name, Error **errp) 4129{ 4130 GenericList *i, **prev = (GenericList **)obj; 4131 Error *err = NULL; 4132 4133 if (!error_is_set(errp)) { 4134 visit_start_list(m, name, &err); 4135 if (!err) { 4136 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4137 NetClientOptionsList *native_i = (NetClientOptionsList *)i; 4138 visit_type_NetClientOptions(m, &native_i->value, NULL, &err); 4139 } 4140 error_propagate(errp, err); 4141 err = NULL; 4142 4143 /* Always call end_list if start_list succeeded. */ 4144 visit_end_list(m, &err); 4145 } 4146 error_propagate(errp, err); 4147 } 4148} 4149 4150static void visit_type_NetLegacy_fields(Visitor *m, NetLegacy ** obj, Error **errp) 4151{ 4152 Error *err = NULL; 4153 visit_start_optional(m, obj ? &(*obj)->has_vlan : NULL, "vlan", &err); 4154 if (obj && (*obj)->has_vlan) { 4155 visit_type_int32(m, obj ? &(*obj)->vlan : NULL, "vlan", &err); 4156 } 4157 visit_end_optional(m, &err); 4158 visit_start_optional(m, obj ? &(*obj)->has_id : NULL, "id", &err); 4159 if (obj && (*obj)->has_id) { 4160 visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 4161 } 4162 visit_end_optional(m, &err); 4163 visit_start_optional(m, obj ? &(*obj)->has_name : NULL, "name", &err); 4164 if (obj && (*obj)->has_name) { 4165 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 4166 } 4167 visit_end_optional(m, &err); 4168 visit_type_NetClientOptions(m, obj ? &(*obj)->opts : NULL, "opts", &err); 4169 4170 error_propagate(errp, err); 4171} 4172 4173void visit_type_NetLegacy(Visitor *m, NetLegacy ** obj, const char *name, Error **errp) 4174{ 4175 if (!error_is_set(errp)) { 4176 Error *err = NULL; 4177 visit_start_struct(m, (void **)obj, "NetLegacy", name, sizeof(NetLegacy), &err); 4178 if (!err) { 4179 if (!obj || *obj) { 4180 visit_type_NetLegacy_fields(m, obj, &err); 4181 error_propagate(errp, err); 4182 err = NULL; 4183 } 4184 /* Always call end_struct if start_struct succeeded. */ 4185 visit_end_struct(m, &err); 4186 } 4187 error_propagate(errp, err); 4188 } 4189} 4190 4191void visit_type_NetLegacyList(Visitor *m, NetLegacyList ** obj, const char *name, Error **errp) 4192{ 4193 GenericList *i, **prev = (GenericList **)obj; 4194 Error *err = NULL; 4195 4196 if (!error_is_set(errp)) { 4197 visit_start_list(m, name, &err); 4198 if (!err) { 4199 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4200 NetLegacyList *native_i = (NetLegacyList *)i; 4201 visit_type_NetLegacy(m, &native_i->value, NULL, &err); 4202 } 4203 error_propagate(errp, err); 4204 err = NULL; 4205 4206 /* Always call end_list if start_list succeeded. */ 4207 visit_end_list(m, &err); 4208 } 4209 error_propagate(errp, err); 4210 } 4211} 4212 4213static void visit_type_Netdev_fields(Visitor *m, Netdev ** obj, Error **errp) 4214{ 4215 Error *err = NULL; 4216 visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 4217 visit_type_NetClientOptions(m, obj ? &(*obj)->opts : NULL, "opts", &err); 4218 4219 error_propagate(errp, err); 4220} 4221 4222void visit_type_Netdev(Visitor *m, Netdev ** obj, const char *name, Error **errp) 4223{ 4224 if (!error_is_set(errp)) { 4225 Error *err = NULL; 4226 visit_start_struct(m, (void **)obj, "Netdev", name, sizeof(Netdev), &err); 4227 if (!err) { 4228 if (!obj || *obj) { 4229 visit_type_Netdev_fields(m, obj, &err); 4230 error_propagate(errp, err); 4231 err = NULL; 4232 } 4233 /* Always call end_struct if start_struct succeeded. */ 4234 visit_end_struct(m, &err); 4235 } 4236 error_propagate(errp, err); 4237 } 4238} 4239 4240void visit_type_NetdevList(Visitor *m, NetdevList ** obj, const char *name, Error **errp) 4241{ 4242 GenericList *i, **prev = (GenericList **)obj; 4243 Error *err = NULL; 4244 4245 if (!error_is_set(errp)) { 4246 visit_start_list(m, name, &err); 4247 if (!err) { 4248 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4249 NetdevList *native_i = (NetdevList *)i; 4250 visit_type_Netdev(m, &native_i->value, NULL, &err); 4251 } 4252 error_propagate(errp, err); 4253 err = NULL; 4254 4255 /* Always call end_list if start_list succeeded. */ 4256 visit_end_list(m, &err); 4257 } 4258 error_propagate(errp, err); 4259 } 4260} 4261 4262static void visit_type_InetSocketAddress_fields(Visitor *m, InetSocketAddress ** obj, Error **errp) 4263{ 4264 Error *err = NULL; 4265 visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 4266 visit_type_str(m, obj ? &(*obj)->port : NULL, "port", &err); 4267 visit_start_optional(m, obj ? &(*obj)->has_to : NULL, "to", &err); 4268 if (obj && (*obj)->has_to) { 4269 visit_type_uint16(m, obj ? &(*obj)->to : NULL, "to", &err); 4270 } 4271 visit_end_optional(m, &err); 4272 visit_start_optional(m, obj ? &(*obj)->has_ipv4 : NULL, "ipv4", &err); 4273 if (obj && (*obj)->has_ipv4) { 4274 visit_type_bool(m, obj ? &(*obj)->ipv4 : NULL, "ipv4", &err); 4275 } 4276 visit_end_optional(m, &err); 4277 visit_start_optional(m, obj ? &(*obj)->has_ipv6 : NULL, "ipv6", &err); 4278 if (obj && (*obj)->has_ipv6) { 4279 visit_type_bool(m, obj ? &(*obj)->ipv6 : NULL, "ipv6", &err); 4280 } 4281 visit_end_optional(m, &err); 4282 4283 error_propagate(errp, err); 4284} 4285 4286void visit_type_InetSocketAddress(Visitor *m, InetSocketAddress ** obj, const char *name, Error **errp) 4287{ 4288 if (!error_is_set(errp)) { 4289 Error *err = NULL; 4290 visit_start_struct(m, (void **)obj, "InetSocketAddress", name, sizeof(InetSocketAddress), &err); 4291 if (!err) { 4292 if (!obj || *obj) { 4293 visit_type_InetSocketAddress_fields(m, obj, &err); 4294 error_propagate(errp, err); 4295 err = NULL; 4296 } 4297 /* Always call end_struct if start_struct succeeded. */ 4298 visit_end_struct(m, &err); 4299 } 4300 error_propagate(errp, err); 4301 } 4302} 4303 4304void visit_type_InetSocketAddressList(Visitor *m, InetSocketAddressList ** obj, const char *name, Error **errp) 4305{ 4306 GenericList *i, **prev = (GenericList **)obj; 4307 Error *err = NULL; 4308 4309 if (!error_is_set(errp)) { 4310 visit_start_list(m, name, &err); 4311 if (!err) { 4312 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4313 InetSocketAddressList *native_i = (InetSocketAddressList *)i; 4314 visit_type_InetSocketAddress(m, &native_i->value, NULL, &err); 4315 } 4316 error_propagate(errp, err); 4317 err = NULL; 4318 4319 /* Always call end_list if start_list succeeded. */ 4320 visit_end_list(m, &err); 4321 } 4322 error_propagate(errp, err); 4323 } 4324} 4325 4326static void visit_type_UnixSocketAddress_fields(Visitor *m, UnixSocketAddress ** obj, Error **errp) 4327{ 4328 Error *err = NULL; 4329 visit_type_str(m, obj ? &(*obj)->path : NULL, "path", &err); 4330 4331 error_propagate(errp, err); 4332} 4333 4334void visit_type_UnixSocketAddress(Visitor *m, UnixSocketAddress ** obj, const char *name, Error **errp) 4335{ 4336 if (!error_is_set(errp)) { 4337 Error *err = NULL; 4338 visit_start_struct(m, (void **)obj, "UnixSocketAddress", name, sizeof(UnixSocketAddress), &err); 4339 if (!err) { 4340 if (!obj || *obj) { 4341 visit_type_UnixSocketAddress_fields(m, obj, &err); 4342 error_propagate(errp, err); 4343 err = NULL; 4344 } 4345 /* Always call end_struct if start_struct succeeded. */ 4346 visit_end_struct(m, &err); 4347 } 4348 error_propagate(errp, err); 4349 } 4350} 4351 4352void visit_type_UnixSocketAddressList(Visitor *m, UnixSocketAddressList ** obj, const char *name, Error **errp) 4353{ 4354 GenericList *i, **prev = (GenericList **)obj; 4355 Error *err = NULL; 4356 4357 if (!error_is_set(errp)) { 4358 visit_start_list(m, name, &err); 4359 if (!err) { 4360 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4361 UnixSocketAddressList *native_i = (UnixSocketAddressList *)i; 4362 visit_type_UnixSocketAddress(m, &native_i->value, NULL, &err); 4363 } 4364 error_propagate(errp, err); 4365 err = NULL; 4366 4367 /* Always call end_list if start_list succeeded. */ 4368 visit_end_list(m, &err); 4369 } 4370 error_propagate(errp, err); 4371 } 4372} 4373 4374void visit_type_SocketAddressKind(Visitor *m, SocketAddressKind * obj, const char *name, Error **errp) 4375{ 4376 visit_type_enum(m, (int *)obj, SocketAddressKind_lookup, "SocketAddressKind", name, errp); 4377} 4378 4379void visit_type_SocketAddress(Visitor *m, SocketAddress ** obj, const char *name, Error **errp) 4380{ 4381 Error *err = NULL; 4382 4383 if (!error_is_set(errp)) { 4384 visit_start_struct(m, (void **)obj, "SocketAddress", name, sizeof(SocketAddress), &err); 4385 if (!err) { 4386 if (obj && *obj) { 4387 visit_type_SocketAddressKind(m, &(*obj)->kind, "type", &err); 4388 if (!err) { 4389 switch ((*obj)->kind) { 4390 case SOCKET_ADDRESS_KIND_INET: 4391 visit_type_InetSocketAddress(m, &(*obj)->inet, "data", &err); 4392 break; 4393 case SOCKET_ADDRESS_KIND_UNIX: 4394 visit_type_UnixSocketAddress(m, &(*obj)->q_unix, "data", &err); 4395 break; 4396 case SOCKET_ADDRESS_KIND_FD: 4397 visit_type_String(m, &(*obj)->fd, "data", &err); 4398 break; 4399 default: 4400 abort(); 4401 } 4402 } 4403 error_propagate(errp, err); 4404 err = NULL; 4405 } 4406 /* Always call end_struct if start_struct succeeded. */ 4407 visit_end_struct(m, &err); 4408 } 4409 error_propagate(errp, err); 4410 } 4411} 4412 4413void visit_type_SocketAddressList(Visitor *m, SocketAddressList ** obj, const char *name, Error **errp) 4414{ 4415 GenericList *i, **prev = (GenericList **)obj; 4416 Error *err = NULL; 4417 4418 if (!error_is_set(errp)) { 4419 visit_start_list(m, name, &err); 4420 if (!err) { 4421 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4422 SocketAddressList *native_i = (SocketAddressList *)i; 4423 visit_type_SocketAddress(m, &native_i->value, NULL, &err); 4424 } 4425 error_propagate(errp, err); 4426 err = NULL; 4427 4428 /* Always call end_list if start_list succeeded. */ 4429 visit_end_list(m, &err); 4430 } 4431 error_propagate(errp, err); 4432 } 4433} 4434 4435static void visit_type_MachineInfo_fields(Visitor *m, MachineInfo ** obj, Error **errp) 4436{ 4437 Error *err = NULL; 4438 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 4439 visit_start_optional(m, obj ? &(*obj)->has_alias : NULL, "alias", &err); 4440 if (obj && (*obj)->has_alias) { 4441 visit_type_str(m, obj ? &(*obj)->alias : NULL, "alias", &err); 4442 } 4443 visit_end_optional(m, &err); 4444 visit_start_optional(m, obj ? &(*obj)->has_is_default : NULL, "is-default", &err); 4445 if (obj && (*obj)->has_is_default) { 4446 visit_type_bool(m, obj ? &(*obj)->is_default : NULL, "is-default", &err); 4447 } 4448 visit_end_optional(m, &err); 4449 visit_type_int(m, obj ? &(*obj)->cpu_max : NULL, "cpu-max", &err); 4450 4451 error_propagate(errp, err); 4452} 4453 4454void visit_type_MachineInfo(Visitor *m, MachineInfo ** obj, const char *name, Error **errp) 4455{ 4456 if (!error_is_set(errp)) { 4457 Error *err = NULL; 4458 visit_start_struct(m, (void **)obj, "MachineInfo", name, sizeof(MachineInfo), &err); 4459 if (!err) { 4460 if (!obj || *obj) { 4461 visit_type_MachineInfo_fields(m, obj, &err); 4462 error_propagate(errp, err); 4463 err = NULL; 4464 } 4465 /* Always call end_struct if start_struct succeeded. */ 4466 visit_end_struct(m, &err); 4467 } 4468 error_propagate(errp, err); 4469 } 4470} 4471 4472void visit_type_MachineInfoList(Visitor *m, MachineInfoList ** obj, const char *name, Error **errp) 4473{ 4474 GenericList *i, **prev = (GenericList **)obj; 4475 Error *err = NULL; 4476 4477 if (!error_is_set(errp)) { 4478 visit_start_list(m, name, &err); 4479 if (!err) { 4480 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4481 MachineInfoList *native_i = (MachineInfoList *)i; 4482 visit_type_MachineInfo(m, &native_i->value, NULL, &err); 4483 } 4484 error_propagate(errp, err); 4485 err = NULL; 4486 4487 /* Always call end_list if start_list succeeded. */ 4488 visit_end_list(m, &err); 4489 } 4490 error_propagate(errp, err); 4491 } 4492} 4493 4494static void visit_type_CpuDefinitionInfo_fields(Visitor *m, CpuDefinitionInfo ** obj, Error **errp) 4495{ 4496 Error *err = NULL; 4497 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 4498 4499 error_propagate(errp, err); 4500} 4501 4502void visit_type_CpuDefinitionInfo(Visitor *m, CpuDefinitionInfo ** obj, const char *name, Error **errp) 4503{ 4504 if (!error_is_set(errp)) { 4505 Error *err = NULL; 4506 visit_start_struct(m, (void **)obj, "CpuDefinitionInfo", name, sizeof(CpuDefinitionInfo), &err); 4507 if (!err) { 4508 if (!obj || *obj) { 4509 visit_type_CpuDefinitionInfo_fields(m, obj, &err); 4510 error_propagate(errp, err); 4511 err = NULL; 4512 } 4513 /* Always call end_struct if start_struct succeeded. */ 4514 visit_end_struct(m, &err); 4515 } 4516 error_propagate(errp, err); 4517 } 4518} 4519 4520void visit_type_CpuDefinitionInfoList(Visitor *m, CpuDefinitionInfoList ** obj, const char *name, Error **errp) 4521{ 4522 GenericList *i, **prev = (GenericList **)obj; 4523 Error *err = NULL; 4524 4525 if (!error_is_set(errp)) { 4526 visit_start_list(m, name, &err); 4527 if (!err) { 4528 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4529 CpuDefinitionInfoList *native_i = (CpuDefinitionInfoList *)i; 4530 visit_type_CpuDefinitionInfo(m, &native_i->value, NULL, &err); 4531 } 4532 error_propagate(errp, err); 4533 err = NULL; 4534 4535 /* Always call end_list if start_list succeeded. */ 4536 visit_end_list(m, &err); 4537 } 4538 error_propagate(errp, err); 4539 } 4540} 4541 4542static void visit_type_AddfdInfo_fields(Visitor *m, AddfdInfo ** obj, Error **errp) 4543{ 4544 Error *err = NULL; 4545 visit_type_int(m, obj ? &(*obj)->fdset_id : NULL, "fdset-id", &err); 4546 visit_type_int(m, obj ? &(*obj)->fd : NULL, "fd", &err); 4547 4548 error_propagate(errp, err); 4549} 4550 4551void visit_type_AddfdInfo(Visitor *m, AddfdInfo ** obj, const char *name, Error **errp) 4552{ 4553 if (!error_is_set(errp)) { 4554 Error *err = NULL; 4555 visit_start_struct(m, (void **)obj, "AddfdInfo", name, sizeof(AddfdInfo), &err); 4556 if (!err) { 4557 if (!obj || *obj) { 4558 visit_type_AddfdInfo_fields(m, obj, &err); 4559 error_propagate(errp, err); 4560 err = NULL; 4561 } 4562 /* Always call end_struct if start_struct succeeded. */ 4563 visit_end_struct(m, &err); 4564 } 4565 error_propagate(errp, err); 4566 } 4567} 4568 4569void visit_type_AddfdInfoList(Visitor *m, AddfdInfoList ** obj, const char *name, Error **errp) 4570{ 4571 GenericList *i, **prev = (GenericList **)obj; 4572 Error *err = NULL; 4573 4574 if (!error_is_set(errp)) { 4575 visit_start_list(m, name, &err); 4576 if (!err) { 4577 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4578 AddfdInfoList *native_i = (AddfdInfoList *)i; 4579 visit_type_AddfdInfo(m, &native_i->value, NULL, &err); 4580 } 4581 error_propagate(errp, err); 4582 err = NULL; 4583 4584 /* Always call end_list if start_list succeeded. */ 4585 visit_end_list(m, &err); 4586 } 4587 error_propagate(errp, err); 4588 } 4589} 4590 4591static void visit_type_FdsetFdInfo_fields(Visitor *m, FdsetFdInfo ** obj, Error **errp) 4592{ 4593 Error *err = NULL; 4594 visit_type_int(m, obj ? &(*obj)->fd : NULL, "fd", &err); 4595 visit_start_optional(m, obj ? &(*obj)->has_opaque : NULL, "opaque", &err); 4596 if (obj && (*obj)->has_opaque) { 4597 visit_type_str(m, obj ? &(*obj)->opaque : NULL, "opaque", &err); 4598 } 4599 visit_end_optional(m, &err); 4600 4601 error_propagate(errp, err); 4602} 4603 4604void visit_type_FdsetFdInfo(Visitor *m, FdsetFdInfo ** obj, const char *name, Error **errp) 4605{ 4606 if (!error_is_set(errp)) { 4607 Error *err = NULL; 4608 visit_start_struct(m, (void **)obj, "FdsetFdInfo", name, sizeof(FdsetFdInfo), &err); 4609 if (!err) { 4610 if (!obj || *obj) { 4611 visit_type_FdsetFdInfo_fields(m, obj, &err); 4612 error_propagate(errp, err); 4613 err = NULL; 4614 } 4615 /* Always call end_struct if start_struct succeeded. */ 4616 visit_end_struct(m, &err); 4617 } 4618 error_propagate(errp, err); 4619 } 4620} 4621 4622void visit_type_FdsetFdInfoList(Visitor *m, FdsetFdInfoList ** obj, const char *name, Error **errp) 4623{ 4624 GenericList *i, **prev = (GenericList **)obj; 4625 Error *err = NULL; 4626 4627 if (!error_is_set(errp)) { 4628 visit_start_list(m, name, &err); 4629 if (!err) { 4630 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4631 FdsetFdInfoList *native_i = (FdsetFdInfoList *)i; 4632 visit_type_FdsetFdInfo(m, &native_i->value, NULL, &err); 4633 } 4634 error_propagate(errp, err); 4635 err = NULL; 4636 4637 /* Always call end_list if start_list succeeded. */ 4638 visit_end_list(m, &err); 4639 } 4640 error_propagate(errp, err); 4641 } 4642} 4643 4644static void visit_type_FdsetInfo_fields(Visitor *m, FdsetInfo ** obj, Error **errp) 4645{ 4646 Error *err = NULL; 4647 visit_type_int(m, obj ? &(*obj)->fdset_id : NULL, "fdset-id", &err); 4648 visit_type_FdsetFdInfoList(m, obj ? &(*obj)->fds : NULL, "fds", &err); 4649 4650 error_propagate(errp, err); 4651} 4652 4653void visit_type_FdsetInfo(Visitor *m, FdsetInfo ** obj, const char *name, Error **errp) 4654{ 4655 if (!error_is_set(errp)) { 4656 Error *err = NULL; 4657 visit_start_struct(m, (void **)obj, "FdsetInfo", name, sizeof(FdsetInfo), &err); 4658 if (!err) { 4659 if (!obj || *obj) { 4660 visit_type_FdsetInfo_fields(m, obj, &err); 4661 error_propagate(errp, err); 4662 err = NULL; 4663 } 4664 /* Always call end_struct if start_struct succeeded. */ 4665 visit_end_struct(m, &err); 4666 } 4667 error_propagate(errp, err); 4668 } 4669} 4670 4671void visit_type_FdsetInfoList(Visitor *m, FdsetInfoList ** obj, const char *name, Error **errp) 4672{ 4673 GenericList *i, **prev = (GenericList **)obj; 4674 Error *err = NULL; 4675 4676 if (!error_is_set(errp)) { 4677 visit_start_list(m, name, &err); 4678 if (!err) { 4679 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4680 FdsetInfoList *native_i = (FdsetInfoList *)i; 4681 visit_type_FdsetInfo(m, &native_i->value, NULL, &err); 4682 } 4683 error_propagate(errp, err); 4684 err = NULL; 4685 4686 /* Always call end_list if start_list succeeded. */ 4687 visit_end_list(m, &err); 4688 } 4689 error_propagate(errp, err); 4690 } 4691} 4692 4693static void visit_type_TargetInfo_fields(Visitor *m, TargetInfo ** obj, Error **errp) 4694{ 4695 Error *err = NULL; 4696 visit_type_str(m, obj ? &(*obj)->arch : NULL, "arch", &err); 4697 4698 error_propagate(errp, err); 4699} 4700 4701void visit_type_TargetInfo(Visitor *m, TargetInfo ** obj, const char *name, Error **errp) 4702{ 4703 if (!error_is_set(errp)) { 4704 Error *err = NULL; 4705 visit_start_struct(m, (void **)obj, "TargetInfo", name, sizeof(TargetInfo), &err); 4706 if (!err) { 4707 if (!obj || *obj) { 4708 visit_type_TargetInfo_fields(m, obj, &err); 4709 error_propagate(errp, err); 4710 err = NULL; 4711 } 4712 /* Always call end_struct if start_struct succeeded. */ 4713 visit_end_struct(m, &err); 4714 } 4715 error_propagate(errp, err); 4716 } 4717} 4718 4719void visit_type_TargetInfoList(Visitor *m, TargetInfoList ** obj, const char *name, Error **errp) 4720{ 4721 GenericList *i, **prev = (GenericList **)obj; 4722 Error *err = NULL; 4723 4724 if (!error_is_set(errp)) { 4725 visit_start_list(m, name, &err); 4726 if (!err) { 4727 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4728 TargetInfoList *native_i = (TargetInfoList *)i; 4729 visit_type_TargetInfo(m, &native_i->value, NULL, &err); 4730 } 4731 error_propagate(errp, err); 4732 err = NULL; 4733 4734 /* Always call end_list if start_list succeeded. */ 4735 visit_end_list(m, &err); 4736 } 4737 error_propagate(errp, err); 4738 } 4739} 4740 4741void visit_type_QKeyCodeList(Visitor *m, QKeyCodeList ** obj, const char *name, Error **errp) 4742{ 4743 GenericList *i, **prev = (GenericList **)obj; 4744 Error *err = NULL; 4745 4746 if (!error_is_set(errp)) { 4747 visit_start_list(m, name, &err); 4748 if (!err) { 4749 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4750 QKeyCodeList *native_i = (QKeyCodeList *)i; 4751 visit_type_QKeyCode(m, &native_i->value, NULL, &err); 4752 } 4753 error_propagate(errp, err); 4754 err = NULL; 4755 4756 /* Always call end_list if start_list succeeded. */ 4757 visit_end_list(m, &err); 4758 } 4759 error_propagate(errp, err); 4760 } 4761} 4762 4763void visit_type_QKeyCode(Visitor *m, QKeyCode * obj, const char *name, Error **errp) 4764{ 4765 visit_type_enum(m, (int *)obj, QKeyCode_lookup, "QKeyCode", name, errp); 4766} 4767 4768void visit_type_KeyValueKind(Visitor *m, KeyValueKind * obj, const char *name, Error **errp) 4769{ 4770 visit_type_enum(m, (int *)obj, KeyValueKind_lookup, "KeyValueKind", name, errp); 4771} 4772 4773void visit_type_KeyValue(Visitor *m, KeyValue ** obj, const char *name, Error **errp) 4774{ 4775 Error *err = NULL; 4776 4777 if (!error_is_set(errp)) { 4778 visit_start_struct(m, (void **)obj, "KeyValue", name, sizeof(KeyValue), &err); 4779 if (!err) { 4780 if (obj && *obj) { 4781 visit_type_KeyValueKind(m, &(*obj)->kind, "type", &err); 4782 if (!err) { 4783 switch ((*obj)->kind) { 4784 case KEY_VALUE_KIND_NUMBER: 4785 visit_type_int(m, &(*obj)->number, "data", &err); 4786 break; 4787 case KEY_VALUE_KIND_QCODE: 4788 visit_type_QKeyCode(m, &(*obj)->qcode, "data", &err); 4789 break; 4790 default: 4791 abort(); 4792 } 4793 } 4794 error_propagate(errp, err); 4795 err = NULL; 4796 } 4797 /* Always call end_struct if start_struct succeeded. */ 4798 visit_end_struct(m, &err); 4799 } 4800 error_propagate(errp, err); 4801 } 4802} 4803 4804void visit_type_KeyValueList(Visitor *m, KeyValueList ** obj, const char *name, Error **errp) 4805{ 4806 GenericList *i, **prev = (GenericList **)obj; 4807 Error *err = NULL; 4808 4809 if (!error_is_set(errp)) { 4810 visit_start_list(m, name, &err); 4811 if (!err) { 4812 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4813 KeyValueList *native_i = (KeyValueList *)i; 4814 visit_type_KeyValue(m, &native_i->value, NULL, &err); 4815 } 4816 error_propagate(errp, err); 4817 err = NULL; 4818 4819 /* Always call end_list if start_list succeeded. */ 4820 visit_end_list(m, &err); 4821 } 4822 error_propagate(errp, err); 4823 } 4824} 4825 4826static void visit_type_ChardevFile_fields(Visitor *m, ChardevFile ** obj, Error **errp) 4827{ 4828 Error *err = NULL; 4829 visit_start_optional(m, obj ? &(*obj)->has_in : NULL, "in", &err); 4830 if (obj && (*obj)->has_in) { 4831 visit_type_str(m, obj ? &(*obj)->in : NULL, "in", &err); 4832 } 4833 visit_end_optional(m, &err); 4834 visit_type_str(m, obj ? &(*obj)->out : NULL, "out", &err); 4835 4836 error_propagate(errp, err); 4837} 4838 4839void visit_type_ChardevFile(Visitor *m, ChardevFile ** obj, const char *name, Error **errp) 4840{ 4841 if (!error_is_set(errp)) { 4842 Error *err = NULL; 4843 visit_start_struct(m, (void **)obj, "ChardevFile", name, sizeof(ChardevFile), &err); 4844 if (!err) { 4845 if (!obj || *obj) { 4846 visit_type_ChardevFile_fields(m, obj, &err); 4847 error_propagate(errp, err); 4848 err = NULL; 4849 } 4850 /* Always call end_struct if start_struct succeeded. */ 4851 visit_end_struct(m, &err); 4852 } 4853 error_propagate(errp, err); 4854 } 4855} 4856 4857void visit_type_ChardevFileList(Visitor *m, ChardevFileList ** obj, const char *name, Error **errp) 4858{ 4859 GenericList *i, **prev = (GenericList **)obj; 4860 Error *err = NULL; 4861 4862 if (!error_is_set(errp)) { 4863 visit_start_list(m, name, &err); 4864 if (!err) { 4865 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4866 ChardevFileList *native_i = (ChardevFileList *)i; 4867 visit_type_ChardevFile(m, &native_i->value, NULL, &err); 4868 } 4869 error_propagate(errp, err); 4870 err = NULL; 4871 4872 /* Always call end_list if start_list succeeded. */ 4873 visit_end_list(m, &err); 4874 } 4875 error_propagate(errp, err); 4876 } 4877} 4878 4879static void visit_type_ChardevHostdev_fields(Visitor *m, ChardevHostdev ** obj, Error **errp) 4880{ 4881 Error *err = NULL; 4882 visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 4883 4884 error_propagate(errp, err); 4885} 4886 4887void visit_type_ChardevHostdev(Visitor *m, ChardevHostdev ** obj, const char *name, Error **errp) 4888{ 4889 if (!error_is_set(errp)) { 4890 Error *err = NULL; 4891 visit_start_struct(m, (void **)obj, "ChardevHostdev", name, sizeof(ChardevHostdev), &err); 4892 if (!err) { 4893 if (!obj || *obj) { 4894 visit_type_ChardevHostdev_fields(m, obj, &err); 4895 error_propagate(errp, err); 4896 err = NULL; 4897 } 4898 /* Always call end_struct if start_struct succeeded. */ 4899 visit_end_struct(m, &err); 4900 } 4901 error_propagate(errp, err); 4902 } 4903} 4904 4905void visit_type_ChardevHostdevList(Visitor *m, ChardevHostdevList ** obj, const char *name, Error **errp) 4906{ 4907 GenericList *i, **prev = (GenericList **)obj; 4908 Error *err = NULL; 4909 4910 if (!error_is_set(errp)) { 4911 visit_start_list(m, name, &err); 4912 if (!err) { 4913 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4914 ChardevHostdevList *native_i = (ChardevHostdevList *)i; 4915 visit_type_ChardevHostdev(m, &native_i->value, NULL, &err); 4916 } 4917 error_propagate(errp, err); 4918 err = NULL; 4919 4920 /* Always call end_list if start_list succeeded. */ 4921 visit_end_list(m, &err); 4922 } 4923 error_propagate(errp, err); 4924 } 4925} 4926 4927static void visit_type_ChardevSocket_fields(Visitor *m, ChardevSocket ** obj, Error **errp) 4928{ 4929 Error *err = NULL; 4930 visit_type_SocketAddress(m, obj ? &(*obj)->addr : NULL, "addr", &err); 4931 visit_start_optional(m, obj ? &(*obj)->has_server : NULL, "server", &err); 4932 if (obj && (*obj)->has_server) { 4933 visit_type_bool(m, obj ? &(*obj)->server : NULL, "server", &err); 4934 } 4935 visit_end_optional(m, &err); 4936 visit_start_optional(m, obj ? &(*obj)->has_wait : NULL, "wait", &err); 4937 if (obj && (*obj)->has_wait) { 4938 visit_type_bool(m, obj ? &(*obj)->wait : NULL, "wait", &err); 4939 } 4940 visit_end_optional(m, &err); 4941 visit_start_optional(m, obj ? &(*obj)->has_nodelay : NULL, "nodelay", &err); 4942 if (obj && (*obj)->has_nodelay) { 4943 visit_type_bool(m, obj ? &(*obj)->nodelay : NULL, "nodelay", &err); 4944 } 4945 visit_end_optional(m, &err); 4946 visit_start_optional(m, obj ? &(*obj)->has_telnet : NULL, "telnet", &err); 4947 if (obj && (*obj)->has_telnet) { 4948 visit_type_bool(m, obj ? &(*obj)->telnet : NULL, "telnet", &err); 4949 } 4950 visit_end_optional(m, &err); 4951 4952 error_propagate(errp, err); 4953} 4954 4955void visit_type_ChardevSocket(Visitor *m, ChardevSocket ** obj, const char *name, Error **errp) 4956{ 4957 if (!error_is_set(errp)) { 4958 Error *err = NULL; 4959 visit_start_struct(m, (void **)obj, "ChardevSocket", name, sizeof(ChardevSocket), &err); 4960 if (!err) { 4961 if (!obj || *obj) { 4962 visit_type_ChardevSocket_fields(m, obj, &err); 4963 error_propagate(errp, err); 4964 err = NULL; 4965 } 4966 /* Always call end_struct if start_struct succeeded. */ 4967 visit_end_struct(m, &err); 4968 } 4969 error_propagate(errp, err); 4970 } 4971} 4972 4973void visit_type_ChardevSocketList(Visitor *m, ChardevSocketList ** obj, const char *name, Error **errp) 4974{ 4975 GenericList *i, **prev = (GenericList **)obj; 4976 Error *err = NULL; 4977 4978 if (!error_is_set(errp)) { 4979 visit_start_list(m, name, &err); 4980 if (!err) { 4981 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4982 ChardevSocketList *native_i = (ChardevSocketList *)i; 4983 visit_type_ChardevSocket(m, &native_i->value, NULL, &err); 4984 } 4985 error_propagate(errp, err); 4986 err = NULL; 4987 4988 /* Always call end_list if start_list succeeded. */ 4989 visit_end_list(m, &err); 4990 } 4991 error_propagate(errp, err); 4992 } 4993} 4994 4995static void visit_type_ChardevUdp_fields(Visitor *m, ChardevUdp ** obj, Error **errp) 4996{ 4997 Error *err = NULL; 4998 visit_type_SocketAddress(m, obj ? &(*obj)->remote : NULL, "remote", &err); 4999 visit_start_optional(m, obj ? &(*obj)->has_local : NULL, "local", &err); 5000 if (obj && (*obj)->has_local) { 5001 visit_type_SocketAddress(m, obj ? &(*obj)->local : NULL, "local", &err); 5002 } 5003 visit_end_optional(m, &err); 5004 5005 error_propagate(errp, err); 5006} 5007 5008void visit_type_ChardevUdp(Visitor *m, ChardevUdp ** obj, const char *name, Error **errp) 5009{ 5010 if (!error_is_set(errp)) { 5011 Error *err = NULL; 5012 visit_start_struct(m, (void **)obj, "ChardevUdp", name, sizeof(ChardevUdp), &err); 5013 if (!err) { 5014 if (!obj || *obj) { 5015 visit_type_ChardevUdp_fields(m, obj, &err); 5016 error_propagate(errp, err); 5017 err = NULL; 5018 } 5019 /* Always call end_struct if start_struct succeeded. */ 5020 visit_end_struct(m, &err); 5021 } 5022 error_propagate(errp, err); 5023 } 5024} 5025 5026void visit_type_ChardevUdpList(Visitor *m, ChardevUdpList ** obj, const char *name, Error **errp) 5027{ 5028 GenericList *i, **prev = (GenericList **)obj; 5029 Error *err = NULL; 5030 5031 if (!error_is_set(errp)) { 5032 visit_start_list(m, name, &err); 5033 if (!err) { 5034 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5035 ChardevUdpList *native_i = (ChardevUdpList *)i; 5036 visit_type_ChardevUdp(m, &native_i->value, NULL, &err); 5037 } 5038 error_propagate(errp, err); 5039 err = NULL; 5040 5041 /* Always call end_list if start_list succeeded. */ 5042 visit_end_list(m, &err); 5043 } 5044 error_propagate(errp, err); 5045 } 5046} 5047 5048static void visit_type_ChardevMux_fields(Visitor *m, ChardevMux ** obj, Error **errp) 5049{ 5050 Error *err = NULL; 5051 visit_type_str(m, obj ? &(*obj)->chardev : NULL, "chardev", &err); 5052 5053 error_propagate(errp, err); 5054} 5055 5056void visit_type_ChardevMux(Visitor *m, ChardevMux ** obj, const char *name, Error **errp) 5057{ 5058 if (!error_is_set(errp)) { 5059 Error *err = NULL; 5060 visit_start_struct(m, (void **)obj, "ChardevMux", name, sizeof(ChardevMux), &err); 5061 if (!err) { 5062 if (!obj || *obj) { 5063 visit_type_ChardevMux_fields(m, obj, &err); 5064 error_propagate(errp, err); 5065 err = NULL; 5066 } 5067 /* Always call end_struct if start_struct succeeded. */ 5068 visit_end_struct(m, &err); 5069 } 5070 error_propagate(errp, err); 5071 } 5072} 5073 5074void visit_type_ChardevMuxList(Visitor *m, ChardevMuxList ** obj, const char *name, Error **errp) 5075{ 5076 GenericList *i, **prev = (GenericList **)obj; 5077 Error *err = NULL; 5078 5079 if (!error_is_set(errp)) { 5080 visit_start_list(m, name, &err); 5081 if (!err) { 5082 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5083 ChardevMuxList *native_i = (ChardevMuxList *)i; 5084 visit_type_ChardevMux(m, &native_i->value, NULL, &err); 5085 } 5086 error_propagate(errp, err); 5087 err = NULL; 5088 5089 /* Always call end_list if start_list succeeded. */ 5090 visit_end_list(m, &err); 5091 } 5092 error_propagate(errp, err); 5093 } 5094} 5095 5096static void visit_type_ChardevStdio_fields(Visitor *m, ChardevStdio ** obj, Error **errp) 5097{ 5098 Error *err = NULL; 5099 visit_start_optional(m, obj ? &(*obj)->has_signal : NULL, "signal", &err); 5100 if (obj && (*obj)->has_signal) { 5101 visit_type_bool(m, obj ? &(*obj)->signal : NULL, "signal", &err); 5102 } 5103 visit_end_optional(m, &err); 5104 5105 error_propagate(errp, err); 5106} 5107 5108void visit_type_ChardevStdio(Visitor *m, ChardevStdio ** obj, const char *name, Error **errp) 5109{ 5110 if (!error_is_set(errp)) { 5111 Error *err = NULL; 5112 visit_start_struct(m, (void **)obj, "ChardevStdio", name, sizeof(ChardevStdio), &err); 5113 if (!err) { 5114 if (!obj || *obj) { 5115 visit_type_ChardevStdio_fields(m, obj, &err); 5116 error_propagate(errp, err); 5117 err = NULL; 5118 } 5119 /* Always call end_struct if start_struct succeeded. */ 5120 visit_end_struct(m, &err); 5121 } 5122 error_propagate(errp, err); 5123 } 5124} 5125 5126void visit_type_ChardevStdioList(Visitor *m, ChardevStdioList ** obj, const char *name, Error **errp) 5127{ 5128 GenericList *i, **prev = (GenericList **)obj; 5129 Error *err = NULL; 5130 5131 if (!error_is_set(errp)) { 5132 visit_start_list(m, name, &err); 5133 if (!err) { 5134 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5135 ChardevStdioList *native_i = (ChardevStdioList *)i; 5136 visit_type_ChardevStdio(m, &native_i->value, NULL, &err); 5137 } 5138 error_propagate(errp, err); 5139 err = NULL; 5140 5141 /* Always call end_list if start_list succeeded. */ 5142 visit_end_list(m, &err); 5143 } 5144 error_propagate(errp, err); 5145 } 5146} 5147 5148static void visit_type_ChardevSpiceChannel_fields(Visitor *m, ChardevSpiceChannel ** obj, Error **errp) 5149{ 5150 Error *err = NULL; 5151 visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 5152 5153 error_propagate(errp, err); 5154} 5155 5156void visit_type_ChardevSpiceChannel(Visitor *m, ChardevSpiceChannel ** obj, const char *name, Error **errp) 5157{ 5158 if (!error_is_set(errp)) { 5159 Error *err = NULL; 5160 visit_start_struct(m, (void **)obj, "ChardevSpiceChannel", name, sizeof(ChardevSpiceChannel), &err); 5161 if (!err) { 5162 if (!obj || *obj) { 5163 visit_type_ChardevSpiceChannel_fields(m, obj, &err); 5164 error_propagate(errp, err); 5165 err = NULL; 5166 } 5167 /* Always call end_struct if start_struct succeeded. */ 5168 visit_end_struct(m, &err); 5169 } 5170 error_propagate(errp, err); 5171 } 5172} 5173 5174void visit_type_ChardevSpiceChannelList(Visitor *m, ChardevSpiceChannelList ** obj, const char *name, Error **errp) 5175{ 5176 GenericList *i, **prev = (GenericList **)obj; 5177 Error *err = NULL; 5178 5179 if (!error_is_set(errp)) { 5180 visit_start_list(m, name, &err); 5181 if (!err) { 5182 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5183 ChardevSpiceChannelList *native_i = (ChardevSpiceChannelList *)i; 5184 visit_type_ChardevSpiceChannel(m, &native_i->value, NULL, &err); 5185 } 5186 error_propagate(errp, err); 5187 err = NULL; 5188 5189 /* Always call end_list if start_list succeeded. */ 5190 visit_end_list(m, &err); 5191 } 5192 error_propagate(errp, err); 5193 } 5194} 5195 5196static void visit_type_ChardevSpicePort_fields(Visitor *m, ChardevSpicePort ** obj, Error **errp) 5197{ 5198 Error *err = NULL; 5199 visit_type_str(m, obj ? &(*obj)->fqdn : NULL, "fqdn", &err); 5200 5201 error_propagate(errp, err); 5202} 5203 5204void visit_type_ChardevSpicePort(Visitor *m, ChardevSpicePort ** obj, const char *name, Error **errp) 5205{ 5206 if (!error_is_set(errp)) { 5207 Error *err = NULL; 5208 visit_start_struct(m, (void **)obj, "ChardevSpicePort", name, sizeof(ChardevSpicePort), &err); 5209 if (!err) { 5210 if (!obj || *obj) { 5211 visit_type_ChardevSpicePort_fields(m, obj, &err); 5212 error_propagate(errp, err); 5213 err = NULL; 5214 } 5215 /* Always call end_struct if start_struct succeeded. */ 5216 visit_end_struct(m, &err); 5217 } 5218 error_propagate(errp, err); 5219 } 5220} 5221 5222void visit_type_ChardevSpicePortList(Visitor *m, ChardevSpicePortList ** obj, const char *name, Error **errp) 5223{ 5224 GenericList *i, **prev = (GenericList **)obj; 5225 Error *err = NULL; 5226 5227 if (!error_is_set(errp)) { 5228 visit_start_list(m, name, &err); 5229 if (!err) { 5230 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5231 ChardevSpicePortList *native_i = (ChardevSpicePortList *)i; 5232 visit_type_ChardevSpicePort(m, &native_i->value, NULL, &err); 5233 } 5234 error_propagate(errp, err); 5235 err = NULL; 5236 5237 /* Always call end_list if start_list succeeded. */ 5238 visit_end_list(m, &err); 5239 } 5240 error_propagate(errp, err); 5241 } 5242} 5243 5244static void visit_type_ChardevVC_fields(Visitor *m, ChardevVC ** obj, Error **errp) 5245{ 5246 Error *err = NULL; 5247 visit_start_optional(m, obj ? &(*obj)->has_width : NULL, "width", &err); 5248 if (obj && (*obj)->has_width) { 5249 visit_type_int(m, obj ? &(*obj)->width : NULL, "width", &err); 5250 } 5251 visit_end_optional(m, &err); 5252 visit_start_optional(m, obj ? &(*obj)->has_height : NULL, "height", &err); 5253 if (obj && (*obj)->has_height) { 5254 visit_type_int(m, obj ? &(*obj)->height : NULL, "height", &err); 5255 } 5256 visit_end_optional(m, &err); 5257 visit_start_optional(m, obj ? &(*obj)->has_cols : NULL, "cols", &err); 5258 if (obj && (*obj)->has_cols) { 5259 visit_type_int(m, obj ? &(*obj)->cols : NULL, "cols", &err); 5260 } 5261 visit_end_optional(m, &err); 5262 visit_start_optional(m, obj ? &(*obj)->has_rows : NULL, "rows", &err); 5263 if (obj && (*obj)->has_rows) { 5264 visit_type_int(m, obj ? &(*obj)->rows : NULL, "rows", &err); 5265 } 5266 visit_end_optional(m, &err); 5267 5268 error_propagate(errp, err); 5269} 5270 5271void visit_type_ChardevVC(Visitor *m, ChardevVC ** obj, const char *name, Error **errp) 5272{ 5273 if (!error_is_set(errp)) { 5274 Error *err = NULL; 5275 visit_start_struct(m, (void **)obj, "ChardevVC", name, sizeof(ChardevVC), &err); 5276 if (!err) { 5277 if (!obj || *obj) { 5278 visit_type_ChardevVC_fields(m, obj, &err); 5279 error_propagate(errp, err); 5280 err = NULL; 5281 } 5282 /* Always call end_struct if start_struct succeeded. */ 5283 visit_end_struct(m, &err); 5284 } 5285 error_propagate(errp, err); 5286 } 5287} 5288 5289void visit_type_ChardevVCList(Visitor *m, ChardevVCList ** obj, const char *name, Error **errp) 5290{ 5291 GenericList *i, **prev = (GenericList **)obj; 5292 Error *err = NULL; 5293 5294 if (!error_is_set(errp)) { 5295 visit_start_list(m, name, &err); 5296 if (!err) { 5297 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5298 ChardevVCList *native_i = (ChardevVCList *)i; 5299 visit_type_ChardevVC(m, &native_i->value, NULL, &err); 5300 } 5301 error_propagate(errp, err); 5302 err = NULL; 5303 5304 /* Always call end_list if start_list succeeded. */ 5305 visit_end_list(m, &err); 5306 } 5307 error_propagate(errp, err); 5308 } 5309} 5310 5311static void visit_type_ChardevRingbuf_fields(Visitor *m, ChardevRingbuf ** obj, Error **errp) 5312{ 5313 Error *err = NULL; 5314 visit_start_optional(m, obj ? &(*obj)->has_size : NULL, "size", &err); 5315 if (obj && (*obj)->has_size) { 5316 visit_type_int(m, obj ? &(*obj)->size : NULL, "size", &err); 5317 } 5318 visit_end_optional(m, &err); 5319 5320 error_propagate(errp, err); 5321} 5322 5323void visit_type_ChardevRingbuf(Visitor *m, ChardevRingbuf ** obj, const char *name, Error **errp) 5324{ 5325 if (!error_is_set(errp)) { 5326 Error *err = NULL; 5327 visit_start_struct(m, (void **)obj, "ChardevRingbuf", name, sizeof(ChardevRingbuf), &err); 5328 if (!err) { 5329 if (!obj || *obj) { 5330 visit_type_ChardevRingbuf_fields(m, obj, &err); 5331 error_propagate(errp, err); 5332 err = NULL; 5333 } 5334 /* Always call end_struct if start_struct succeeded. */ 5335 visit_end_struct(m, &err); 5336 } 5337 error_propagate(errp, err); 5338 } 5339} 5340 5341void visit_type_ChardevRingbufList(Visitor *m, ChardevRingbufList ** obj, const char *name, Error **errp) 5342{ 5343 GenericList *i, **prev = (GenericList **)obj; 5344 Error *err = NULL; 5345 5346 if (!error_is_set(errp)) { 5347 visit_start_list(m, name, &err); 5348 if (!err) { 5349 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5350 ChardevRingbufList *native_i = (ChardevRingbufList *)i; 5351 visit_type_ChardevRingbuf(m, &native_i->value, NULL, &err); 5352 } 5353 error_propagate(errp, err); 5354 err = NULL; 5355 5356 /* Always call end_list if start_list succeeded. */ 5357 visit_end_list(m, &err); 5358 } 5359 error_propagate(errp, err); 5360 } 5361} 5362 5363static void visit_type_ChardevDummy_fields(Visitor *m, ChardevDummy ** obj, Error **errp) 5364{ 5365 Error *err = NULL; 5366 5367 error_propagate(errp, err); 5368} 5369 5370void visit_type_ChardevDummy(Visitor *m, ChardevDummy ** obj, const char *name, Error **errp) 5371{ 5372 if (!error_is_set(errp)) { 5373 Error *err = NULL; 5374 visit_start_struct(m, (void **)obj, "ChardevDummy", name, sizeof(ChardevDummy), &err); 5375 if (!err) { 5376 if (!obj || *obj) { 5377 visit_type_ChardevDummy_fields(m, obj, &err); 5378 error_propagate(errp, err); 5379 err = NULL; 5380 } 5381 /* Always call end_struct if start_struct succeeded. */ 5382 visit_end_struct(m, &err); 5383 } 5384 error_propagate(errp, err); 5385 } 5386} 5387 5388void visit_type_ChardevDummyList(Visitor *m, ChardevDummyList ** obj, const char *name, Error **errp) 5389{ 5390 GenericList *i, **prev = (GenericList **)obj; 5391 Error *err = NULL; 5392 5393 if (!error_is_set(errp)) { 5394 visit_start_list(m, name, &err); 5395 if (!err) { 5396 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5397 ChardevDummyList *native_i = (ChardevDummyList *)i; 5398 visit_type_ChardevDummy(m, &native_i->value, NULL, &err); 5399 } 5400 error_propagate(errp, err); 5401 err = NULL; 5402 5403 /* Always call end_list if start_list succeeded. */ 5404 visit_end_list(m, &err); 5405 } 5406 error_propagate(errp, err); 5407 } 5408} 5409 5410void visit_type_ChardevBackendKind(Visitor *m, ChardevBackendKind * obj, const char *name, Error **errp) 5411{ 5412 visit_type_enum(m, (int *)obj, ChardevBackendKind_lookup, "ChardevBackendKind", name, errp); 5413} 5414 5415void visit_type_ChardevBackend(Visitor *m, ChardevBackend ** obj, const char *name, Error **errp) 5416{ 5417 Error *err = NULL; 5418 5419 if (!error_is_set(errp)) { 5420 visit_start_struct(m, (void **)obj, "ChardevBackend", name, sizeof(ChardevBackend), &err); 5421 if (!err) { 5422 if (obj && *obj) { 5423 visit_type_ChardevBackendKind(m, &(*obj)->kind, "type", &err); 5424 if (!err) { 5425 switch ((*obj)->kind) { 5426 case CHARDEV_BACKEND_KIND_FILE: 5427 visit_type_ChardevFile(m, &(*obj)->file, "data", &err); 5428 break; 5429 case CHARDEV_BACKEND_KIND_SERIAL: 5430 visit_type_ChardevHostdev(m, &(*obj)->serial, "data", &err); 5431 break; 5432 case CHARDEV_BACKEND_KIND_PARALLEL: 5433 visit_type_ChardevHostdev(m, &(*obj)->parallel, "data", &err); 5434 break; 5435 case CHARDEV_BACKEND_KIND_PIPE: 5436 visit_type_ChardevHostdev(m, &(*obj)->pipe, "data", &err); 5437 break; 5438 case CHARDEV_BACKEND_KIND_SOCKET: 5439 visit_type_ChardevSocket(m, &(*obj)->socket, "data", &err); 5440 break; 5441 case CHARDEV_BACKEND_KIND_UDP: 5442 visit_type_ChardevUdp(m, &(*obj)->udp, "data", &err); 5443 break; 5444 case CHARDEV_BACKEND_KIND_PTY: 5445 visit_type_ChardevDummy(m, &(*obj)->pty, "data", &err); 5446 break; 5447 case CHARDEV_BACKEND_KIND_NULL: 5448 visit_type_ChardevDummy(m, &(*obj)->null, "data", &err); 5449 break; 5450 case CHARDEV_BACKEND_KIND_MUX: 5451 visit_type_ChardevMux(m, &(*obj)->mux, "data", &err); 5452 break; 5453 case CHARDEV_BACKEND_KIND_MSMOUSE: 5454 visit_type_ChardevDummy(m, &(*obj)->msmouse, "data", &err); 5455 break; 5456 case CHARDEV_BACKEND_KIND_BRAILLE: 5457 visit_type_ChardevDummy(m, &(*obj)->braille, "data", &err); 5458 break; 5459 case CHARDEV_BACKEND_KIND_STDIO: 5460 visit_type_ChardevStdio(m, &(*obj)->stdio, "data", &err); 5461 break; 5462 case CHARDEV_BACKEND_KIND_CONSOLE: 5463 visit_type_ChardevDummy(m, &(*obj)->console, "data", &err); 5464 break; 5465 case CHARDEV_BACKEND_KIND_SPICEVMC: 5466 visit_type_ChardevSpiceChannel(m, &(*obj)->spicevmc, "data", &err); 5467 break; 5468 case CHARDEV_BACKEND_KIND_SPICEPORT: 5469 visit_type_ChardevSpicePort(m, &(*obj)->spiceport, "data", &err); 5470 break; 5471 case CHARDEV_BACKEND_KIND_VC: 5472 visit_type_ChardevVC(m, &(*obj)->vc, "data", &err); 5473 break; 5474 case CHARDEV_BACKEND_KIND_RINGBUF: 5475 visit_type_ChardevRingbuf(m, &(*obj)->ringbuf, "data", &err); 5476 break; 5477 case CHARDEV_BACKEND_KIND_MEMORY: 5478 visit_type_ChardevRingbuf(m, &(*obj)->memory, "data", &err); 5479 break; 5480 default: 5481 abort(); 5482 } 5483 } 5484 error_propagate(errp, err); 5485 err = NULL; 5486 } 5487 /* Always call end_struct if start_struct succeeded. */ 5488 visit_end_struct(m, &err); 5489 } 5490 error_propagate(errp, err); 5491 } 5492} 5493 5494void visit_type_ChardevBackendList(Visitor *m, ChardevBackendList ** obj, const char *name, Error **errp) 5495{ 5496 GenericList *i, **prev = (GenericList **)obj; 5497 Error *err = NULL; 5498 5499 if (!error_is_set(errp)) { 5500 visit_start_list(m, name, &err); 5501 if (!err) { 5502 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5503 ChardevBackendList *native_i = (ChardevBackendList *)i; 5504 visit_type_ChardevBackend(m, &native_i->value, NULL, &err); 5505 } 5506 error_propagate(errp, err); 5507 err = NULL; 5508 5509 /* Always call end_list if start_list succeeded. */ 5510 visit_end_list(m, &err); 5511 } 5512 error_propagate(errp, err); 5513 } 5514} 5515 5516static void visit_type_ChardevReturn_fields(Visitor *m, ChardevReturn ** obj, Error **errp) 5517{ 5518 Error *err = NULL; 5519 visit_start_optional(m, obj ? &(*obj)->has_pty : NULL, "pty", &err); 5520 if (obj && (*obj)->has_pty) { 5521 visit_type_str(m, obj ? &(*obj)->pty : NULL, "pty", &err); 5522 } 5523 visit_end_optional(m, &err); 5524 5525 error_propagate(errp, err); 5526} 5527 5528void visit_type_ChardevReturn(Visitor *m, ChardevReturn ** obj, const char *name, Error **errp) 5529{ 5530 if (!error_is_set(errp)) { 5531 Error *err = NULL; 5532 visit_start_struct(m, (void **)obj, "ChardevReturn", name, sizeof(ChardevReturn), &err); 5533 if (!err) { 5534 if (!obj || *obj) { 5535 visit_type_ChardevReturn_fields(m, obj, &err); 5536 error_propagate(errp, err); 5537 err = NULL; 5538 } 5539 /* Always call end_struct if start_struct succeeded. */ 5540 visit_end_struct(m, &err); 5541 } 5542 error_propagate(errp, err); 5543 } 5544} 5545 5546void visit_type_ChardevReturnList(Visitor *m, ChardevReturnList ** obj, const char *name, Error **errp) 5547{ 5548 GenericList *i, **prev = (GenericList **)obj; 5549 Error *err = NULL; 5550 5551 if (!error_is_set(errp)) { 5552 visit_start_list(m, name, &err); 5553 if (!err) { 5554 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5555 ChardevReturnList *native_i = (ChardevReturnList *)i; 5556 visit_type_ChardevReturn(m, &native_i->value, NULL, &err); 5557 } 5558 error_propagate(errp, err); 5559 err = NULL; 5560 5561 /* Always call end_list if start_list succeeded. */ 5562 visit_end_list(m, &err); 5563 } 5564 error_propagate(errp, err); 5565 } 5566} 5567 5568void visit_type_TpmModelList(Visitor *m, TpmModelList ** obj, const char *name, Error **errp) 5569{ 5570 GenericList *i, **prev = (GenericList **)obj; 5571 Error *err = NULL; 5572 5573 if (!error_is_set(errp)) { 5574 visit_start_list(m, name, &err); 5575 if (!err) { 5576 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5577 TpmModelList *native_i = (TpmModelList *)i; 5578 visit_type_TpmModel(m, &native_i->value, NULL, &err); 5579 } 5580 error_propagate(errp, err); 5581 err = NULL; 5582 5583 /* Always call end_list if start_list succeeded. */ 5584 visit_end_list(m, &err); 5585 } 5586 error_propagate(errp, err); 5587 } 5588} 5589 5590void visit_type_TpmModel(Visitor *m, TpmModel * obj, const char *name, Error **errp) 5591{ 5592 visit_type_enum(m, (int *)obj, TpmModel_lookup, "TpmModel", name, errp); 5593} 5594 5595void visit_type_TpmTypeList(Visitor *m, TpmTypeList ** obj, const char *name, Error **errp) 5596{ 5597 GenericList *i, **prev = (GenericList **)obj; 5598 Error *err = NULL; 5599 5600 if (!error_is_set(errp)) { 5601 visit_start_list(m, name, &err); 5602 if (!err) { 5603 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5604 TpmTypeList *native_i = (TpmTypeList *)i; 5605 visit_type_TpmType(m, &native_i->value, NULL, &err); 5606 } 5607 error_propagate(errp, err); 5608 err = NULL; 5609 5610 /* Always call end_list if start_list succeeded. */ 5611 visit_end_list(m, &err); 5612 } 5613 error_propagate(errp, err); 5614 } 5615} 5616 5617void visit_type_TpmType(Visitor *m, TpmType * obj, const char *name, Error **errp) 5618{ 5619 visit_type_enum(m, (int *)obj, TpmType_lookup, "TpmType", name, errp); 5620} 5621 5622static void visit_type_TPMPassthroughOptions_fields(Visitor *m, TPMPassthroughOptions ** obj, Error **errp) 5623{ 5624 Error *err = NULL; 5625 visit_start_optional(m, obj ? &(*obj)->has_path : NULL, "path", &err); 5626 if (obj && (*obj)->has_path) { 5627 visit_type_str(m, obj ? &(*obj)->path : NULL, "path", &err); 5628 } 5629 visit_end_optional(m, &err); 5630 visit_start_optional(m, obj ? &(*obj)->has_cancel_path : NULL, "cancel-path", &err); 5631 if (obj && (*obj)->has_cancel_path) { 5632 visit_type_str(m, obj ? &(*obj)->cancel_path : NULL, "cancel-path", &err); 5633 } 5634 visit_end_optional(m, &err); 5635 5636 error_propagate(errp, err); 5637} 5638 5639void visit_type_TPMPassthroughOptions(Visitor *m, TPMPassthroughOptions ** obj, const char *name, Error **errp) 5640{ 5641 if (!error_is_set(errp)) { 5642 Error *err = NULL; 5643 visit_start_struct(m, (void **)obj, "TPMPassthroughOptions", name, sizeof(TPMPassthroughOptions), &err); 5644 if (!err) { 5645 if (!obj || *obj) { 5646 visit_type_TPMPassthroughOptions_fields(m, obj, &err); 5647 error_propagate(errp, err); 5648 err = NULL; 5649 } 5650 /* Always call end_struct if start_struct succeeded. */ 5651 visit_end_struct(m, &err); 5652 } 5653 error_propagate(errp, err); 5654 } 5655} 5656 5657void visit_type_TPMPassthroughOptionsList(Visitor *m, TPMPassthroughOptionsList ** obj, const char *name, Error **errp) 5658{ 5659 GenericList *i, **prev = (GenericList **)obj; 5660 Error *err = NULL; 5661 5662 if (!error_is_set(errp)) { 5663 visit_start_list(m, name, &err); 5664 if (!err) { 5665 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5666 TPMPassthroughOptionsList *native_i = (TPMPassthroughOptionsList *)i; 5667 visit_type_TPMPassthroughOptions(m, &native_i->value, NULL, &err); 5668 } 5669 error_propagate(errp, err); 5670 err = NULL; 5671 5672 /* Always call end_list if start_list succeeded. */ 5673 visit_end_list(m, &err); 5674 } 5675 error_propagate(errp, err); 5676 } 5677} 5678 5679void visit_type_TpmTypeOptionsKind(Visitor *m, TpmTypeOptionsKind * obj, const char *name, Error **errp) 5680{ 5681 visit_type_enum(m, (int *)obj, TpmTypeOptionsKind_lookup, "TpmTypeOptionsKind", name, errp); 5682} 5683 5684void visit_type_TpmTypeOptions(Visitor *m, TpmTypeOptions ** obj, const char *name, Error **errp) 5685{ 5686 Error *err = NULL; 5687 5688 if (!error_is_set(errp)) { 5689 visit_start_struct(m, (void **)obj, "TpmTypeOptions", name, sizeof(TpmTypeOptions), &err); 5690 if (!err) { 5691 if (obj && *obj) { 5692 visit_type_TpmTypeOptionsKind(m, &(*obj)->kind, "type", &err); 5693 if (!err) { 5694 switch ((*obj)->kind) { 5695 case TPM_TYPE_OPTIONS_KIND_PASSTHROUGH: 5696 visit_type_TPMPassthroughOptions(m, &(*obj)->passthrough, "data", &err); 5697 break; 5698 default: 5699 abort(); 5700 } 5701 } 5702 error_propagate(errp, err); 5703 err = NULL; 5704 } 5705 /* Always call end_struct if start_struct succeeded. */ 5706 visit_end_struct(m, &err); 5707 } 5708 error_propagate(errp, err); 5709 } 5710} 5711 5712void visit_type_TpmTypeOptionsList(Visitor *m, TpmTypeOptionsList ** obj, const char *name, Error **errp) 5713{ 5714 GenericList *i, **prev = (GenericList **)obj; 5715 Error *err = NULL; 5716 5717 if (!error_is_set(errp)) { 5718 visit_start_list(m, name, &err); 5719 if (!err) { 5720 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5721 TpmTypeOptionsList *native_i = (TpmTypeOptionsList *)i; 5722 visit_type_TpmTypeOptions(m, &native_i->value, NULL, &err); 5723 } 5724 error_propagate(errp, err); 5725 err = NULL; 5726 5727 /* Always call end_list if start_list succeeded. */ 5728 visit_end_list(m, &err); 5729 } 5730 error_propagate(errp, err); 5731 } 5732} 5733 5734static void visit_type_TPMInfo_fields(Visitor *m, TPMInfo ** obj, Error **errp) 5735{ 5736 Error *err = NULL; 5737 visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 5738 visit_type_TpmModel(m, obj ? &(*obj)->model : NULL, "model", &err); 5739 visit_type_TpmTypeOptions(m, obj ? &(*obj)->options : NULL, "options", &err); 5740 5741 error_propagate(errp, err); 5742} 5743 5744void visit_type_TPMInfo(Visitor *m, TPMInfo ** obj, const char *name, Error **errp) 5745{ 5746 if (!error_is_set(errp)) { 5747 Error *err = NULL; 5748 visit_start_struct(m, (void **)obj, "TPMInfo", name, sizeof(TPMInfo), &err); 5749 if (!err) { 5750 if (!obj || *obj) { 5751 visit_type_TPMInfo_fields(m, obj, &err); 5752 error_propagate(errp, err); 5753 err = NULL; 5754 } 5755 /* Always call end_struct if start_struct succeeded. */ 5756 visit_end_struct(m, &err); 5757 } 5758 error_propagate(errp, err); 5759 } 5760} 5761 5762void visit_type_TPMInfoList(Visitor *m, TPMInfoList ** obj, const char *name, Error **errp) 5763{ 5764 GenericList *i, **prev = (GenericList **)obj; 5765 Error *err = NULL; 5766 5767 if (!error_is_set(errp)) { 5768 visit_start_list(m, name, &err); 5769 if (!err) { 5770 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5771 TPMInfoList *native_i = (TPMInfoList *)i; 5772 visit_type_TPMInfo(m, &native_i->value, NULL, &err); 5773 } 5774 error_propagate(errp, err); 5775 err = NULL; 5776 5777 /* Always call end_list if start_list succeeded. */ 5778 visit_end_list(m, &err); 5779 } 5780 error_propagate(errp, err); 5781 } 5782} 5783 5784static void visit_type_AcpiTableOptions_fields(Visitor *m, AcpiTableOptions ** obj, Error **errp) 5785{ 5786 Error *err = NULL; 5787 visit_start_optional(m, obj ? &(*obj)->has_sig : NULL, "sig", &err); 5788 if (obj && (*obj)->has_sig) { 5789 visit_type_str(m, obj ? &(*obj)->sig : NULL, "sig", &err); 5790 } 5791 visit_end_optional(m, &err); 5792 visit_start_optional(m, obj ? &(*obj)->has_rev : NULL, "rev", &err); 5793 if (obj && (*obj)->has_rev) { 5794 visit_type_uint8(m, obj ? &(*obj)->rev : NULL, "rev", &err); 5795 } 5796 visit_end_optional(m, &err); 5797 visit_start_optional(m, obj ? &(*obj)->has_oem_id : NULL, "oem_id", &err); 5798 if (obj && (*obj)->has_oem_id) { 5799 visit_type_str(m, obj ? &(*obj)->oem_id : NULL, "oem_id", &err); 5800 } 5801 visit_end_optional(m, &err); 5802 visit_start_optional(m, obj ? &(*obj)->has_oem_table_id : NULL, "oem_table_id", &err); 5803 if (obj && (*obj)->has_oem_table_id) { 5804 visit_type_str(m, obj ? &(*obj)->oem_table_id : NULL, "oem_table_id", &err); 5805 } 5806 visit_end_optional(m, &err); 5807 visit_start_optional(m, obj ? &(*obj)->has_oem_rev : NULL, "oem_rev", &err); 5808 if (obj && (*obj)->has_oem_rev) { 5809 visit_type_uint32(m, obj ? &(*obj)->oem_rev : NULL, "oem_rev", &err); 5810 } 5811 visit_end_optional(m, &err); 5812 visit_start_optional(m, obj ? &(*obj)->has_asl_compiler_id : NULL, "asl_compiler_id", &err); 5813 if (obj && (*obj)->has_asl_compiler_id) { 5814 visit_type_str(m, obj ? &(*obj)->asl_compiler_id : NULL, "asl_compiler_id", &err); 5815 } 5816 visit_end_optional(m, &err); 5817 visit_start_optional(m, obj ? &(*obj)->has_asl_compiler_rev : NULL, "asl_compiler_rev", &err); 5818 if (obj && (*obj)->has_asl_compiler_rev) { 5819 visit_type_uint32(m, obj ? &(*obj)->asl_compiler_rev : NULL, "asl_compiler_rev", &err); 5820 } 5821 visit_end_optional(m, &err); 5822 visit_start_optional(m, obj ? &(*obj)->has_file : NULL, "file", &err); 5823 if (obj && (*obj)->has_file) { 5824 visit_type_str(m, obj ? &(*obj)->file : NULL, "file", &err); 5825 } 5826 visit_end_optional(m, &err); 5827 visit_start_optional(m, obj ? &(*obj)->has_data : NULL, "data", &err); 5828 if (obj && (*obj)->has_data) { 5829 visit_type_str(m, obj ? &(*obj)->data : NULL, "data", &err); 5830 } 5831 visit_end_optional(m, &err); 5832 5833 error_propagate(errp, err); 5834} 5835 5836void visit_type_AcpiTableOptions(Visitor *m, AcpiTableOptions ** obj, const char *name, Error **errp) 5837{ 5838 if (!error_is_set(errp)) { 5839 Error *err = NULL; 5840 visit_start_struct(m, (void **)obj, "AcpiTableOptions", name, sizeof(AcpiTableOptions), &err); 5841 if (!err) { 5842 if (!obj || *obj) { 5843 visit_type_AcpiTableOptions_fields(m, obj, &err); 5844 error_propagate(errp, err); 5845 err = NULL; 5846 } 5847 /* Always call end_struct if start_struct succeeded. */ 5848 visit_end_struct(m, &err); 5849 } 5850 error_propagate(errp, err); 5851 } 5852} 5853 5854void visit_type_AcpiTableOptionsList(Visitor *m, AcpiTableOptionsList ** obj, const char *name, Error **errp) 5855{ 5856 GenericList *i, **prev = (GenericList **)obj; 5857 Error *err = NULL; 5858 5859 if (!error_is_set(errp)) { 5860 visit_start_list(m, name, &err); 5861 if (!err) { 5862 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5863 AcpiTableOptionsList *native_i = (AcpiTableOptionsList *)i; 5864 visit_type_AcpiTableOptions(m, &native_i->value, NULL, &err); 5865 } 5866 error_propagate(errp, err); 5867 err = NULL; 5868 5869 /* Always call end_list if start_list succeeded. */ 5870 visit_end_list(m, &err); 5871 } 5872 error_propagate(errp, err); 5873 } 5874} 5875 5876void visit_type_CommandLineParameterTypeList(Visitor *m, CommandLineParameterTypeList ** obj, const char *name, Error **errp) 5877{ 5878 GenericList *i, **prev = (GenericList **)obj; 5879 Error *err = NULL; 5880 5881 if (!error_is_set(errp)) { 5882 visit_start_list(m, name, &err); 5883 if (!err) { 5884 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5885 CommandLineParameterTypeList *native_i = (CommandLineParameterTypeList *)i; 5886 visit_type_CommandLineParameterType(m, &native_i->value, NULL, &err); 5887 } 5888 error_propagate(errp, err); 5889 err = NULL; 5890 5891 /* Always call end_list if start_list succeeded. */ 5892 visit_end_list(m, &err); 5893 } 5894 error_propagate(errp, err); 5895 } 5896} 5897 5898void visit_type_CommandLineParameterType(Visitor *m, CommandLineParameterType * obj, const char *name, Error **errp) 5899{ 5900 visit_type_enum(m, (int *)obj, CommandLineParameterType_lookup, "CommandLineParameterType", name, errp); 5901} 5902 5903static void visit_type_CommandLineParameterInfo_fields(Visitor *m, CommandLineParameterInfo ** obj, Error **errp) 5904{ 5905 Error *err = NULL; 5906 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 5907 visit_type_CommandLineParameterType(m, obj ? &(*obj)->type : NULL, "type", &err); 5908 visit_start_optional(m, obj ? &(*obj)->has_help : NULL, "help", &err); 5909 if (obj && (*obj)->has_help) { 5910 visit_type_str(m, obj ? &(*obj)->help : NULL, "help", &err); 5911 } 5912 visit_end_optional(m, &err); 5913 5914 error_propagate(errp, err); 5915} 5916 5917void visit_type_CommandLineParameterInfo(Visitor *m, CommandLineParameterInfo ** obj, const char *name, Error **errp) 5918{ 5919 if (!error_is_set(errp)) { 5920 Error *err = NULL; 5921 visit_start_struct(m, (void **)obj, "CommandLineParameterInfo", name, sizeof(CommandLineParameterInfo), &err); 5922 if (!err) { 5923 if (!obj || *obj) { 5924 visit_type_CommandLineParameterInfo_fields(m, obj, &err); 5925 error_propagate(errp, err); 5926 err = NULL; 5927 } 5928 /* Always call end_struct if start_struct succeeded. */ 5929 visit_end_struct(m, &err); 5930 } 5931 error_propagate(errp, err); 5932 } 5933} 5934 5935void visit_type_CommandLineParameterInfoList(Visitor *m, CommandLineParameterInfoList ** obj, const char *name, Error **errp) 5936{ 5937 GenericList *i, **prev = (GenericList **)obj; 5938 Error *err = NULL; 5939 5940 if (!error_is_set(errp)) { 5941 visit_start_list(m, name, &err); 5942 if (!err) { 5943 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5944 CommandLineParameterInfoList *native_i = (CommandLineParameterInfoList *)i; 5945 visit_type_CommandLineParameterInfo(m, &native_i->value, NULL, &err); 5946 } 5947 error_propagate(errp, err); 5948 err = NULL; 5949 5950 /* Always call end_list if start_list succeeded. */ 5951 visit_end_list(m, &err); 5952 } 5953 error_propagate(errp, err); 5954 } 5955} 5956 5957static void visit_type_CommandLineOptionInfo_fields(Visitor *m, CommandLineOptionInfo ** obj, Error **errp) 5958{ 5959 Error *err = NULL; 5960 visit_type_str(m, obj ? &(*obj)->option : NULL, "option", &err); 5961 visit_type_CommandLineParameterInfoList(m, obj ? &(*obj)->parameters : NULL, "parameters", &err); 5962 5963 error_propagate(errp, err); 5964} 5965 5966void visit_type_CommandLineOptionInfo(Visitor *m, CommandLineOptionInfo ** obj, const char *name, Error **errp) 5967{ 5968 if (!error_is_set(errp)) { 5969 Error *err = NULL; 5970 visit_start_struct(m, (void **)obj, "CommandLineOptionInfo", name, sizeof(CommandLineOptionInfo), &err); 5971 if (!err) { 5972 if (!obj || *obj) { 5973 visit_type_CommandLineOptionInfo_fields(m, obj, &err); 5974 error_propagate(errp, err); 5975 err = NULL; 5976 } 5977 /* Always call end_struct if start_struct succeeded. */ 5978 visit_end_struct(m, &err); 5979 } 5980 error_propagate(errp, err); 5981 } 5982} 5983 5984void visit_type_CommandLineOptionInfoList(Visitor *m, CommandLineOptionInfoList ** obj, const char *name, Error **errp) 5985{ 5986 GenericList *i, **prev = (GenericList **)obj; 5987 Error *err = NULL; 5988 5989 if (!error_is_set(errp)) { 5990 visit_start_list(m, name, &err); 5991 if (!err) { 5992 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5993 CommandLineOptionInfoList *native_i = (CommandLineOptionInfoList *)i; 5994 visit_type_CommandLineOptionInfo(m, &native_i->value, NULL, &err); 5995 } 5996 error_propagate(errp, err); 5997 err = NULL; 5998 5999 /* Always call end_list if start_list succeeded. */ 6000 visit_end_list(m, &err); 6001 } 6002 error_propagate(errp, err); 6003 } 6004} 6005 6006void visit_type_X86CPURegister32List(Visitor *m, X86CPURegister32List ** obj, const char *name, Error **errp) 6007{ 6008 GenericList *i, **prev = (GenericList **)obj; 6009 Error *err = NULL; 6010 6011 if (!error_is_set(errp)) { 6012 visit_start_list(m, name, &err); 6013 if (!err) { 6014 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6015 X86CPURegister32List *native_i = (X86CPURegister32List *)i; 6016 visit_type_X86CPURegister32(m, &native_i->value, NULL, &err); 6017 } 6018 error_propagate(errp, err); 6019 err = NULL; 6020 6021 /* Always call end_list if start_list succeeded. */ 6022 visit_end_list(m, &err); 6023 } 6024 error_propagate(errp, err); 6025 } 6026} 6027 6028void visit_type_X86CPURegister32(Visitor *m, X86CPURegister32 * obj, const char *name, Error **errp) 6029{ 6030 visit_type_enum(m, (int *)obj, X86CPURegister32_lookup, "X86CPURegister32", name, errp); 6031} 6032 6033static void visit_type_X86CPUFeatureWordInfo_fields(Visitor *m, X86CPUFeatureWordInfo ** obj, Error **errp) 6034{ 6035 Error *err = NULL; 6036 visit_type_int(m, obj ? &(*obj)->cpuid_input_eax : NULL, "cpuid-input-eax", &err); 6037 visit_start_optional(m, obj ? &(*obj)->has_cpuid_input_ecx : NULL, "cpuid-input-ecx", &err); 6038 if (obj && (*obj)->has_cpuid_input_ecx) { 6039 visit_type_int(m, obj ? &(*obj)->cpuid_input_ecx : NULL, "cpuid-input-ecx", &err); 6040 } 6041 visit_end_optional(m, &err); 6042 visit_type_X86CPURegister32(m, obj ? &(*obj)->cpuid_register : NULL, "cpuid-register", &err); 6043 visit_type_int(m, obj ? &(*obj)->features : NULL, "features", &err); 6044 6045 error_propagate(errp, err); 6046} 6047 6048void visit_type_X86CPUFeatureWordInfo(Visitor *m, X86CPUFeatureWordInfo ** obj, const char *name, Error **errp) 6049{ 6050 if (!error_is_set(errp)) { 6051 Error *err = NULL; 6052 visit_start_struct(m, (void **)obj, "X86CPUFeatureWordInfo", name, sizeof(X86CPUFeatureWordInfo), &err); 6053 if (!err) { 6054 if (!obj || *obj) { 6055 visit_type_X86CPUFeatureWordInfo_fields(m, obj, &err); 6056 error_propagate(errp, err); 6057 err = NULL; 6058 } 6059 /* Always call end_struct if start_struct succeeded. */ 6060 visit_end_struct(m, &err); 6061 } 6062 error_propagate(errp, err); 6063 } 6064} 6065 6066void visit_type_X86CPUFeatureWordInfoList(Visitor *m, X86CPUFeatureWordInfoList ** obj, const char *name, Error **errp) 6067{ 6068 GenericList *i, **prev = (GenericList **)obj; 6069 Error *err = NULL; 6070 6071 if (!error_is_set(errp)) { 6072 visit_start_list(m, name, &err); 6073 if (!err) { 6074 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6075 X86CPUFeatureWordInfoList *native_i = (X86CPUFeatureWordInfoList *)i; 6076 visit_type_X86CPUFeatureWordInfo(m, &native_i->value, NULL, &err); 6077 } 6078 error_propagate(errp, err); 6079 err = NULL; 6080 6081 /* Always call end_list if start_list succeeded. */ 6082 visit_end_list(m, &err); 6083 } 6084 error_propagate(errp, err); 6085 } 6086} 6087 6088void visit_type_RxStateList(Visitor *m, RxStateList ** obj, const char *name, Error **errp) 6089{ 6090 GenericList *i, **prev = (GenericList **)obj; 6091 Error *err = NULL; 6092 6093 if (!error_is_set(errp)) { 6094 visit_start_list(m, name, &err); 6095 if (!err) { 6096 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6097 RxStateList *native_i = (RxStateList *)i; 6098 visit_type_RxState(m, &native_i->value, NULL, &err); 6099 } 6100 error_propagate(errp, err); 6101 err = NULL; 6102 6103 /* Always call end_list if start_list succeeded. */ 6104 visit_end_list(m, &err); 6105 } 6106 error_propagate(errp, err); 6107 } 6108} 6109 6110void visit_type_RxState(Visitor *m, RxState * obj, const char *name, Error **errp) 6111{ 6112 visit_type_enum(m, (int *)obj, RxState_lookup, "RxState", name, errp); 6113} 6114 6115static void visit_type_RxFilterInfo_fields(Visitor *m, RxFilterInfo ** obj, Error **errp) 6116{ 6117 Error *err = NULL; 6118 visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 6119 visit_type_bool(m, obj ? &(*obj)->promiscuous : NULL, "promiscuous", &err); 6120 visit_type_RxState(m, obj ? &(*obj)->multicast : NULL, "multicast", &err); 6121 visit_type_RxState(m, obj ? &(*obj)->unicast : NULL, "unicast", &err); 6122 visit_type_bool(m, obj ? &(*obj)->broadcast_allowed : NULL, "broadcast-allowed", &err); 6123 visit_type_bool(m, obj ? &(*obj)->multicast_overflow : NULL, "multicast-overflow", &err); 6124 visit_type_bool(m, obj ? &(*obj)->unicast_overflow : NULL, "unicast-overflow", &err); 6125 visit_type_str(m, obj ? &(*obj)->main_mac : NULL, "main-mac", &err); 6126 visit_type_intList(m, obj ? &(*obj)->vlan_table : NULL, "vlan-table", &err); 6127 visit_type_strList(m, obj ? &(*obj)->unicast_table : NULL, "unicast-table", &err); 6128 visit_type_strList(m, obj ? &(*obj)->multicast_table : NULL, "multicast-table", &err); 6129 6130 error_propagate(errp, err); 6131} 6132 6133void visit_type_RxFilterInfo(Visitor *m, RxFilterInfo ** obj, const char *name, Error **errp) 6134{ 6135 if (!error_is_set(errp)) { 6136 Error *err = NULL; 6137 visit_start_struct(m, (void **)obj, "RxFilterInfo", name, sizeof(RxFilterInfo), &err); 6138 if (!err) { 6139 if (!obj || *obj) { 6140 visit_type_RxFilterInfo_fields(m, obj, &err); 6141 error_propagate(errp, err); 6142 err = NULL; 6143 } 6144 /* Always call end_struct if start_struct succeeded. */ 6145 visit_end_struct(m, &err); 6146 } 6147 error_propagate(errp, err); 6148 } 6149} 6150 6151void visit_type_RxFilterInfoList(Visitor *m, RxFilterInfoList ** obj, const char *name, Error **errp) 6152{ 6153 GenericList *i, **prev = (GenericList **)obj; 6154 Error *err = NULL; 6155 6156 if (!error_is_set(errp)) { 6157 visit_start_list(m, name, &err); 6158 if (!err) { 6159 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6160 RxFilterInfoList *native_i = (RxFilterInfoList *)i; 6161 visit_type_RxFilterInfo(m, &native_i->value, NULL, &err); 6162 } 6163 error_propagate(errp, err); 6164 err = NULL; 6165 6166 /* Always call end_list if start_list succeeded. */ 6167 visit_end_list(m, &err); 6168 } 6169 error_propagate(errp, err); 6170 } 6171} 6172 6173void visit_type_BlockdevDiscardOptionsList(Visitor *m, BlockdevDiscardOptionsList ** obj, const char *name, Error **errp) 6174{ 6175 GenericList *i, **prev = (GenericList **)obj; 6176 Error *err = NULL; 6177 6178 if (!error_is_set(errp)) { 6179 visit_start_list(m, name, &err); 6180 if (!err) { 6181 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6182 BlockdevDiscardOptionsList *native_i = (BlockdevDiscardOptionsList *)i; 6183 visit_type_BlockdevDiscardOptions(m, &native_i->value, NULL, &err); 6184 } 6185 error_propagate(errp, err); 6186 err = NULL; 6187 6188 /* Always call end_list if start_list succeeded. */ 6189 visit_end_list(m, &err); 6190 } 6191 error_propagate(errp, err); 6192 } 6193} 6194 6195void visit_type_BlockdevDiscardOptions(Visitor *m, BlockdevDiscardOptions * obj, const char *name, Error **errp) 6196{ 6197 visit_type_enum(m, (int *)obj, BlockdevDiscardOptions_lookup, "BlockdevDiscardOptions", name, errp); 6198} 6199 6200void visit_type_BlockdevAioOptionsList(Visitor *m, BlockdevAioOptionsList ** obj, const char *name, Error **errp) 6201{ 6202 GenericList *i, **prev = (GenericList **)obj; 6203 Error *err = NULL; 6204 6205 if (!error_is_set(errp)) { 6206 visit_start_list(m, name, &err); 6207 if (!err) { 6208 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6209 BlockdevAioOptionsList *native_i = (BlockdevAioOptionsList *)i; 6210 visit_type_BlockdevAioOptions(m, &native_i->value, NULL, &err); 6211 } 6212 error_propagate(errp, err); 6213 err = NULL; 6214 6215 /* Always call end_list if start_list succeeded. */ 6216 visit_end_list(m, &err); 6217 } 6218 error_propagate(errp, err); 6219 } 6220} 6221 6222void visit_type_BlockdevAioOptions(Visitor *m, BlockdevAioOptions * obj, const char *name, Error **errp) 6223{ 6224 visit_type_enum(m, (int *)obj, BlockdevAioOptions_lookup, "BlockdevAioOptions", name, errp); 6225} 6226 6227static void visit_type_BlockdevCacheOptions_fields(Visitor *m, BlockdevCacheOptions ** obj, Error **errp) 6228{ 6229 Error *err = NULL; 6230 visit_start_optional(m, obj ? &(*obj)->has_writeback : NULL, "writeback", &err); 6231 if (obj && (*obj)->has_writeback) { 6232 visit_type_bool(m, obj ? &(*obj)->writeback : NULL, "writeback", &err); 6233 } 6234 visit_end_optional(m, &err); 6235 visit_start_optional(m, obj ? &(*obj)->has_direct : NULL, "direct", &err); 6236 if (obj && (*obj)->has_direct) { 6237 visit_type_bool(m, obj ? &(*obj)->direct : NULL, "direct", &err); 6238 } 6239 visit_end_optional(m, &err); 6240 visit_start_optional(m, obj ? &(*obj)->has_no_flush : NULL, "no-flush", &err); 6241 if (obj && (*obj)->has_no_flush) { 6242 visit_type_bool(m, obj ? &(*obj)->no_flush : NULL, "no-flush", &err); 6243 } 6244 visit_end_optional(m, &err); 6245 6246 error_propagate(errp, err); 6247} 6248 6249void visit_type_BlockdevCacheOptions(Visitor *m, BlockdevCacheOptions ** obj, const char *name, Error **errp) 6250{ 6251 if (!error_is_set(errp)) { 6252 Error *err = NULL; 6253 visit_start_struct(m, (void **)obj, "BlockdevCacheOptions", name, sizeof(BlockdevCacheOptions), &err); 6254 if (!err) { 6255 if (!obj || *obj) { 6256 visit_type_BlockdevCacheOptions_fields(m, obj, &err); 6257 error_propagate(errp, err); 6258 err = NULL; 6259 } 6260 /* Always call end_struct if start_struct succeeded. */ 6261 visit_end_struct(m, &err); 6262 } 6263 error_propagate(errp, err); 6264 } 6265} 6266 6267void visit_type_BlockdevCacheOptionsList(Visitor *m, BlockdevCacheOptionsList ** obj, const char *name, Error **errp) 6268{ 6269 GenericList *i, **prev = (GenericList **)obj; 6270 Error *err = NULL; 6271 6272 if (!error_is_set(errp)) { 6273 visit_start_list(m, name, &err); 6274 if (!err) { 6275 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6276 BlockdevCacheOptionsList *native_i = (BlockdevCacheOptionsList *)i; 6277 visit_type_BlockdevCacheOptions(m, &native_i->value, NULL, &err); 6278 } 6279 error_propagate(errp, err); 6280 err = NULL; 6281 6282 /* Always call end_list if start_list succeeded. */ 6283 visit_end_list(m, &err); 6284 } 6285 error_propagate(errp, err); 6286 } 6287} 6288 6289static void visit_type_BlockdevOptionsBase_fields(Visitor *m, BlockdevOptionsBase ** obj, Error **errp) 6290{ 6291 Error *err = NULL; 6292 visit_type_str(m, obj ? &(*obj)->driver : NULL, "driver", &err); 6293 visit_start_optional(m, obj ? &(*obj)->has_id : NULL, "id", &err); 6294 if (obj && (*obj)->has_id) { 6295 visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 6296 } 6297 visit_end_optional(m, &err); 6298 visit_start_optional(m, obj ? &(*obj)->has_discard : NULL, "discard", &err); 6299 if (obj && (*obj)->has_discard) { 6300 visit_type_BlockdevDiscardOptions(m, obj ? &(*obj)->discard : NULL, "discard", &err); 6301 } 6302 visit_end_optional(m, &err); 6303 visit_start_optional(m, obj ? &(*obj)->has_cache : NULL, "cache", &err); 6304 if (obj && (*obj)->has_cache) { 6305 visit_type_BlockdevCacheOptions(m, obj ? &(*obj)->cache : NULL, "cache", &err); 6306 } 6307 visit_end_optional(m, &err); 6308 visit_start_optional(m, obj ? &(*obj)->has_aio : NULL, "aio", &err); 6309 if (obj && (*obj)->has_aio) { 6310 visit_type_BlockdevAioOptions(m, obj ? &(*obj)->aio : NULL, "aio", &err); 6311 } 6312 visit_end_optional(m, &err); 6313 visit_start_optional(m, obj ? &(*obj)->has_rerror : NULL, "rerror", &err); 6314 if (obj && (*obj)->has_rerror) { 6315 visit_type_BlockdevOnError(m, obj ? &(*obj)->rerror : NULL, "rerror", &err); 6316 } 6317 visit_end_optional(m, &err); 6318 visit_start_optional(m, obj ? &(*obj)->has_werror : NULL, "werror", &err); 6319 if (obj && (*obj)->has_werror) { 6320 visit_type_BlockdevOnError(m, obj ? &(*obj)->werror : NULL, "werror", &err); 6321 } 6322 visit_end_optional(m, &err); 6323 visit_start_optional(m, obj ? &(*obj)->has_read_only : NULL, "read-only", &err); 6324 if (obj && (*obj)->has_read_only) { 6325 visit_type_bool(m, obj ? &(*obj)->read_only : NULL, "read-only", &err); 6326 } 6327 visit_end_optional(m, &err); 6328 6329 error_propagate(errp, err); 6330} 6331 6332void visit_type_BlockdevOptionsBase(Visitor *m, BlockdevOptionsBase ** obj, const char *name, Error **errp) 6333{ 6334 if (!error_is_set(errp)) { 6335 Error *err = NULL; 6336 visit_start_struct(m, (void **)obj, "BlockdevOptionsBase", name, sizeof(BlockdevOptionsBase), &err); 6337 if (!err) { 6338 if (!obj || *obj) { 6339 visit_type_BlockdevOptionsBase_fields(m, obj, &err); 6340 error_propagate(errp, err); 6341 err = NULL; 6342 } 6343 /* Always call end_struct if start_struct succeeded. */ 6344 visit_end_struct(m, &err); 6345 } 6346 error_propagate(errp, err); 6347 } 6348} 6349 6350void visit_type_BlockdevOptionsBaseList(Visitor *m, BlockdevOptionsBaseList ** obj, const char *name, Error **errp) 6351{ 6352 GenericList *i, **prev = (GenericList **)obj; 6353 Error *err = NULL; 6354 6355 if (!error_is_set(errp)) { 6356 visit_start_list(m, name, &err); 6357 if (!err) { 6358 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6359 BlockdevOptionsBaseList *native_i = (BlockdevOptionsBaseList *)i; 6360 visit_type_BlockdevOptionsBase(m, &native_i->value, NULL, &err); 6361 } 6362 error_propagate(errp, err); 6363 err = NULL; 6364 6365 /* Always call end_list if start_list succeeded. */ 6366 visit_end_list(m, &err); 6367 } 6368 error_propagate(errp, err); 6369 } 6370} 6371 6372static void visit_type_BlockdevOptionsFile_fields(Visitor *m, BlockdevOptionsFile ** obj, Error **errp) 6373{ 6374 Error *err = NULL; 6375 visit_type_str(m, obj ? &(*obj)->filename : NULL, "filename", &err); 6376 6377 error_propagate(errp, err); 6378} 6379 6380void visit_type_BlockdevOptionsFile(Visitor *m, BlockdevOptionsFile ** obj, const char *name, Error **errp) 6381{ 6382 if (!error_is_set(errp)) { 6383 Error *err = NULL; 6384 visit_start_struct(m, (void **)obj, "BlockdevOptionsFile", name, sizeof(BlockdevOptionsFile), &err); 6385 if (!err) { 6386 if (!obj || *obj) { 6387 visit_type_BlockdevOptionsFile_fields(m, obj, &err); 6388 error_propagate(errp, err); 6389 err = NULL; 6390 } 6391 /* Always call end_struct if start_struct succeeded. */ 6392 visit_end_struct(m, &err); 6393 } 6394 error_propagate(errp, err); 6395 } 6396} 6397 6398void visit_type_BlockdevOptionsFileList(Visitor *m, BlockdevOptionsFileList ** obj, const char *name, Error **errp) 6399{ 6400 GenericList *i, **prev = (GenericList **)obj; 6401 Error *err = NULL; 6402 6403 if (!error_is_set(errp)) { 6404 visit_start_list(m, name, &err); 6405 if (!err) { 6406 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6407 BlockdevOptionsFileList *native_i = (BlockdevOptionsFileList *)i; 6408 visit_type_BlockdevOptionsFile(m, &native_i->value, NULL, &err); 6409 } 6410 error_propagate(errp, err); 6411 err = NULL; 6412 6413 /* Always call end_list if start_list succeeded. */ 6414 visit_end_list(m, &err); 6415 } 6416 error_propagate(errp, err); 6417 } 6418} 6419 6420static void visit_type_BlockdevOptionsVVFAT_fields(Visitor *m, BlockdevOptionsVVFAT ** obj, Error **errp) 6421{ 6422 Error *err = NULL; 6423 visit_type_str(m, obj ? &(*obj)->dir : NULL, "dir", &err); 6424 visit_start_optional(m, obj ? &(*obj)->has_fat_type : NULL, "fat-type", &err); 6425 if (obj && (*obj)->has_fat_type) { 6426 visit_type_int(m, obj ? &(*obj)->fat_type : NULL, "fat-type", &err); 6427 } 6428 visit_end_optional(m, &err); 6429 visit_start_optional(m, obj ? &(*obj)->has_floppy : NULL, "floppy", &err); 6430 if (obj && (*obj)->has_floppy) { 6431 visit_type_bool(m, obj ? &(*obj)->floppy : NULL, "floppy", &err); 6432 } 6433 visit_end_optional(m, &err); 6434 visit_start_optional(m, obj ? &(*obj)->has_rw : NULL, "rw", &err); 6435 if (obj && (*obj)->has_rw) { 6436 visit_type_bool(m, obj ? &(*obj)->rw : NULL, "rw", &err); 6437 } 6438 visit_end_optional(m, &err); 6439 6440 error_propagate(errp, err); 6441} 6442 6443void visit_type_BlockdevOptionsVVFAT(Visitor *m, BlockdevOptionsVVFAT ** obj, const char *name, Error **errp) 6444{ 6445 if (!error_is_set(errp)) { 6446 Error *err = NULL; 6447 visit_start_struct(m, (void **)obj, "BlockdevOptionsVVFAT", name, sizeof(BlockdevOptionsVVFAT), &err); 6448 if (!err) { 6449 if (!obj || *obj) { 6450 visit_type_BlockdevOptionsVVFAT_fields(m, obj, &err); 6451 error_propagate(errp, err); 6452 err = NULL; 6453 } 6454 /* Always call end_struct if start_struct succeeded. */ 6455 visit_end_struct(m, &err); 6456 } 6457 error_propagate(errp, err); 6458 } 6459} 6460 6461void visit_type_BlockdevOptionsVVFATList(Visitor *m, BlockdevOptionsVVFATList ** obj, const char *name, Error **errp) 6462{ 6463 GenericList *i, **prev = (GenericList **)obj; 6464 Error *err = NULL; 6465 6466 if (!error_is_set(errp)) { 6467 visit_start_list(m, name, &err); 6468 if (!err) { 6469 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6470 BlockdevOptionsVVFATList *native_i = (BlockdevOptionsVVFATList *)i; 6471 visit_type_BlockdevOptionsVVFAT(m, &native_i->value, NULL, &err); 6472 } 6473 error_propagate(errp, err); 6474 err = NULL; 6475 6476 /* Always call end_list if start_list succeeded. */ 6477 visit_end_list(m, &err); 6478 } 6479 error_propagate(errp, err); 6480 } 6481} 6482 6483static void visit_type_BlockdevOptionsGenericFormat_fields(Visitor *m, BlockdevOptionsGenericFormat ** obj, Error **errp) 6484{ 6485 Error *err = NULL; 6486 visit_type_BlockdevRef(m, obj ? &(*obj)->file : NULL, "file", &err); 6487 6488 error_propagate(errp, err); 6489} 6490 6491void visit_type_BlockdevOptionsGenericFormat(Visitor *m, BlockdevOptionsGenericFormat ** obj, const char *name, Error **errp) 6492{ 6493 if (!error_is_set(errp)) { 6494 Error *err = NULL; 6495 visit_start_struct(m, (void **)obj, "BlockdevOptionsGenericFormat", name, sizeof(BlockdevOptionsGenericFormat), &err); 6496 if (!err) { 6497 if (!obj || *obj) { 6498 visit_type_BlockdevOptionsGenericFormat_fields(m, obj, &err); 6499 error_propagate(errp, err); 6500 err = NULL; 6501 } 6502 /* Always call end_struct if start_struct succeeded. */ 6503 visit_end_struct(m, &err); 6504 } 6505 error_propagate(errp, err); 6506 } 6507} 6508 6509void visit_type_BlockdevOptionsGenericFormatList(Visitor *m, BlockdevOptionsGenericFormatList ** obj, const char *name, Error **errp) 6510{ 6511 GenericList *i, **prev = (GenericList **)obj; 6512 Error *err = NULL; 6513 6514 if (!error_is_set(errp)) { 6515 visit_start_list(m, name, &err); 6516 if (!err) { 6517 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6518 BlockdevOptionsGenericFormatList *native_i = (BlockdevOptionsGenericFormatList *)i; 6519 visit_type_BlockdevOptionsGenericFormat(m, &native_i->value, NULL, &err); 6520 } 6521 error_propagate(errp, err); 6522 err = NULL; 6523 6524 /* Always call end_list if start_list succeeded. */ 6525 visit_end_list(m, &err); 6526 } 6527 error_propagate(errp, err); 6528 } 6529} 6530 6531static void visit_type_BlockdevOptionsGenericCOWFormat_fields(Visitor *m, BlockdevOptionsGenericCOWFormat ** obj, Error **errp) 6532{ 6533 Error *err = NULL; 6534 visit_start_implicit_struct(m, obj ? (void**) &(*obj)->base : NULL, sizeof(BlockdevOptionsGenericFormat), &err); 6535 if (!err) { 6536 visit_type_BlockdevOptionsGenericFormat_fields(m, obj ? &(*obj)->base : NULL, &err); 6537 error_propagate(errp, err); 6538 err = NULL; 6539 visit_end_implicit_struct(m, &err); 6540 } 6541 visit_start_optional(m, obj ? &(*obj)->has_backing : NULL, "backing", &err); 6542 if (obj && (*obj)->has_backing) { 6543 visit_type_BlockdevRef(m, obj ? &(*obj)->backing : NULL, "backing", &err); 6544 } 6545 visit_end_optional(m, &err); 6546 6547 error_propagate(errp, err); 6548} 6549 6550void visit_type_BlockdevOptionsGenericCOWFormat(Visitor *m, BlockdevOptionsGenericCOWFormat ** obj, const char *name, Error **errp) 6551{ 6552 if (!error_is_set(errp)) { 6553 Error *err = NULL; 6554 visit_start_struct(m, (void **)obj, "BlockdevOptionsGenericCOWFormat", name, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6555 if (!err) { 6556 if (!obj || *obj) { 6557 visit_type_BlockdevOptionsGenericCOWFormat_fields(m, obj, &err); 6558 error_propagate(errp, err); 6559 err = NULL; 6560 } 6561 /* Always call end_struct if start_struct succeeded. */ 6562 visit_end_struct(m, &err); 6563 } 6564 error_propagate(errp, err); 6565 } 6566} 6567 6568void visit_type_BlockdevOptionsGenericCOWFormatList(Visitor *m, BlockdevOptionsGenericCOWFormatList ** obj, const char *name, Error **errp) 6569{ 6570 GenericList *i, **prev = (GenericList **)obj; 6571 Error *err = NULL; 6572 6573 if (!error_is_set(errp)) { 6574 visit_start_list(m, name, &err); 6575 if (!err) { 6576 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6577 BlockdevOptionsGenericCOWFormatList *native_i = (BlockdevOptionsGenericCOWFormatList *)i; 6578 visit_type_BlockdevOptionsGenericCOWFormat(m, &native_i->value, NULL, &err); 6579 } 6580 error_propagate(errp, err); 6581 err = NULL; 6582 6583 /* Always call end_list if start_list succeeded. */ 6584 visit_end_list(m, &err); 6585 } 6586 error_propagate(errp, err); 6587 } 6588} 6589 6590static void visit_type_BlockdevOptionsQcow2_fields(Visitor *m, BlockdevOptionsQcow2 ** obj, Error **errp) 6591{ 6592 Error *err = NULL; 6593 visit_start_implicit_struct(m, obj ? (void**) &(*obj)->base : NULL, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6594 if (!err) { 6595 visit_type_BlockdevOptionsGenericCOWFormat_fields(m, obj ? &(*obj)->base : NULL, &err); 6596 error_propagate(errp, err); 6597 err = NULL; 6598 visit_end_implicit_struct(m, &err); 6599 } 6600 visit_start_optional(m, obj ? &(*obj)->has_lazy_refcounts : NULL, "lazy-refcounts", &err); 6601 if (obj && (*obj)->has_lazy_refcounts) { 6602 visit_type_bool(m, obj ? &(*obj)->lazy_refcounts : NULL, "lazy-refcounts", &err); 6603 } 6604 visit_end_optional(m, &err); 6605 visit_start_optional(m, obj ? &(*obj)->has_pass_discard_request : NULL, "pass-discard-request", &err); 6606 if (obj && (*obj)->has_pass_discard_request) { 6607 visit_type_bool(m, obj ? &(*obj)->pass_discard_request : NULL, "pass-discard-request", &err); 6608 } 6609 visit_end_optional(m, &err); 6610 visit_start_optional(m, obj ? &(*obj)->has_pass_discard_snapshot : NULL, "pass-discard-snapshot", &err); 6611 if (obj && (*obj)->has_pass_discard_snapshot) { 6612 visit_type_bool(m, obj ? &(*obj)->pass_discard_snapshot : NULL, "pass-discard-snapshot", &err); 6613 } 6614 visit_end_optional(m, &err); 6615 visit_start_optional(m, obj ? &(*obj)->has_pass_discard_other : NULL, "pass-discard-other", &err); 6616 if (obj && (*obj)->has_pass_discard_other) { 6617 visit_type_bool(m, obj ? &(*obj)->pass_discard_other : NULL, "pass-discard-other", &err); 6618 } 6619 visit_end_optional(m, &err); 6620 6621 error_propagate(errp, err); 6622} 6623 6624void visit_type_BlockdevOptionsQcow2(Visitor *m, BlockdevOptionsQcow2 ** obj, const char *name, Error **errp) 6625{ 6626 if (!error_is_set(errp)) { 6627 Error *err = NULL; 6628 visit_start_struct(m, (void **)obj, "BlockdevOptionsQcow2", name, sizeof(BlockdevOptionsQcow2), &err); 6629 if (!err) { 6630 if (!obj || *obj) { 6631 visit_type_BlockdevOptionsQcow2_fields(m, obj, &err); 6632 error_propagate(errp, err); 6633 err = NULL; 6634 } 6635 /* Always call end_struct if start_struct succeeded. */ 6636 visit_end_struct(m, &err); 6637 } 6638 error_propagate(errp, err); 6639 } 6640} 6641 6642void visit_type_BlockdevOptionsQcow2List(Visitor *m, BlockdevOptionsQcow2List ** obj, const char *name, Error **errp) 6643{ 6644 GenericList *i, **prev = (GenericList **)obj; 6645 Error *err = NULL; 6646 6647 if (!error_is_set(errp)) { 6648 visit_start_list(m, name, &err); 6649 if (!err) { 6650 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6651 BlockdevOptionsQcow2List *native_i = (BlockdevOptionsQcow2List *)i; 6652 visit_type_BlockdevOptionsQcow2(m, &native_i->value, NULL, &err); 6653 } 6654 error_propagate(errp, err); 6655 err = NULL; 6656 6657 /* Always call end_list if start_list succeeded. */ 6658 visit_end_list(m, &err); 6659 } 6660 error_propagate(errp, err); 6661 } 6662} 6663 6664void visit_type_BlockdevOptionsKind(Visitor *m, BlockdevOptionsKind * obj, const char *name, Error **errp) 6665{ 6666 visit_type_enum(m, (int *)obj, BlockdevOptionsKind_lookup, "BlockdevOptionsKind", name, errp); 6667} 6668 6669static void visit_type_BlockdevOptions_fields(Visitor *m, BlockdevOptions ** obj, Error **errp) 6670{ 6671 Error *err = NULL; 6672 visit_start_optional(m, obj ? &(*obj)->has_id : NULL, "id", &err); 6673 if (obj && (*obj)->has_id) { 6674 visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 6675 } 6676 visit_end_optional(m, &err); 6677 visit_start_optional(m, obj ? &(*obj)->has_discard : NULL, "discard", &err); 6678 if (obj && (*obj)->has_discard) { 6679 visit_type_BlockdevDiscardOptions(m, obj ? &(*obj)->discard : NULL, "discard", &err); 6680 } 6681 visit_end_optional(m, &err); 6682 visit_start_optional(m, obj ? &(*obj)->has_cache : NULL, "cache", &err); 6683 if (obj && (*obj)->has_cache) { 6684 visit_type_BlockdevCacheOptions(m, obj ? &(*obj)->cache : NULL, "cache", &err); 6685 } 6686 visit_end_optional(m, &err); 6687 visit_start_optional(m, obj ? &(*obj)->has_aio : NULL, "aio", &err); 6688 if (obj && (*obj)->has_aio) { 6689 visit_type_BlockdevAioOptions(m, obj ? &(*obj)->aio : NULL, "aio", &err); 6690 } 6691 visit_end_optional(m, &err); 6692 visit_start_optional(m, obj ? &(*obj)->has_rerror : NULL, "rerror", &err); 6693 if (obj && (*obj)->has_rerror) { 6694 visit_type_BlockdevOnError(m, obj ? &(*obj)->rerror : NULL, "rerror", &err); 6695 } 6696 visit_end_optional(m, &err); 6697 visit_start_optional(m, obj ? &(*obj)->has_werror : NULL, "werror", &err); 6698 if (obj && (*obj)->has_werror) { 6699 visit_type_BlockdevOnError(m, obj ? &(*obj)->werror : NULL, "werror", &err); 6700 } 6701 visit_end_optional(m, &err); 6702 visit_start_optional(m, obj ? &(*obj)->has_read_only : NULL, "read-only", &err); 6703 if (obj && (*obj)->has_read_only) { 6704 visit_type_bool(m, obj ? &(*obj)->read_only : NULL, "read-only", &err); 6705 } 6706 visit_end_optional(m, &err); 6707 6708 error_propagate(errp, err); 6709} 6710 6711void visit_type_BlockdevOptions(Visitor *m, BlockdevOptions ** obj, const char *name, Error **errp) 6712{ 6713 Error *err = NULL; 6714 6715 if (!error_is_set(errp)) { 6716 visit_start_struct(m, (void **)obj, "BlockdevOptions", name, sizeof(BlockdevOptions), &err); 6717 if (!err) { 6718 if (obj && *obj) { 6719 visit_type_BlockdevOptions_fields(m, obj, &err); 6720 visit_type_BlockdevOptionsKind(m, &(*obj)->kind, "driver", &err); 6721 if (!err) { 6722 switch ((*obj)->kind) { 6723 case BLOCKDEV_OPTIONS_KIND_FILE: 6724 visit_start_implicit_struct(m, (void**) &(*obj)->file, sizeof(BlockdevOptionsFile), &err); 6725 if (!err) { 6726 visit_type_BlockdevOptionsFile_fields(m, &(*obj)->file, &err); 6727 error_propagate(errp, err); 6728 err = NULL; 6729 visit_end_implicit_struct(m, &err); 6730 } 6731 break; 6732 case BLOCKDEV_OPTIONS_KIND_HTTP: 6733 visit_start_implicit_struct(m, (void**) &(*obj)->http, sizeof(BlockdevOptionsFile), &err); 6734 if (!err) { 6735 visit_type_BlockdevOptionsFile_fields(m, &(*obj)->http, &err); 6736 error_propagate(errp, err); 6737 err = NULL; 6738 visit_end_implicit_struct(m, &err); 6739 } 6740 break; 6741 case BLOCKDEV_OPTIONS_KIND_HTTPS: 6742 visit_start_implicit_struct(m, (void**) &(*obj)->https, sizeof(BlockdevOptionsFile), &err); 6743 if (!err) { 6744 visit_type_BlockdevOptionsFile_fields(m, &(*obj)->https, &err); 6745 error_propagate(errp, err); 6746 err = NULL; 6747 visit_end_implicit_struct(m, &err); 6748 } 6749 break; 6750 case BLOCKDEV_OPTIONS_KIND_FTP: 6751 visit_start_implicit_struct(m, (void**) &(*obj)->ftp, sizeof(BlockdevOptionsFile), &err); 6752 if (!err) { 6753 visit_type_BlockdevOptionsFile_fields(m, &(*obj)->ftp, &err); 6754 error_propagate(errp, err); 6755 err = NULL; 6756 visit_end_implicit_struct(m, &err); 6757 } 6758 break; 6759 case BLOCKDEV_OPTIONS_KIND_FTPS: 6760 visit_start_implicit_struct(m, (void**) &(*obj)->ftps, sizeof(BlockdevOptionsFile), &err); 6761 if (!err) { 6762 visit_type_BlockdevOptionsFile_fields(m, &(*obj)->ftps, &err); 6763 error_propagate(errp, err); 6764 err = NULL; 6765 visit_end_implicit_struct(m, &err); 6766 } 6767 break; 6768 case BLOCKDEV_OPTIONS_KIND_TFTP: 6769 visit_start_implicit_struct(m, (void**) &(*obj)->tftp, sizeof(BlockdevOptionsFile), &err); 6770 if (!err) { 6771 visit_type_BlockdevOptionsFile_fields(m, &(*obj)->tftp, &err); 6772 error_propagate(errp, err); 6773 err = NULL; 6774 visit_end_implicit_struct(m, &err); 6775 } 6776 break; 6777 case BLOCKDEV_OPTIONS_KIND_VVFAT: 6778 visit_start_implicit_struct(m, (void**) &(*obj)->vvfat, sizeof(BlockdevOptionsVVFAT), &err); 6779 if (!err) { 6780 visit_type_BlockdevOptionsVVFAT_fields(m, &(*obj)->vvfat, &err); 6781 error_propagate(errp, err); 6782 err = NULL; 6783 visit_end_implicit_struct(m, &err); 6784 } 6785 break; 6786 case BLOCKDEV_OPTIONS_KIND_BOCHS: 6787 visit_start_implicit_struct(m, (void**) &(*obj)->bochs, sizeof(BlockdevOptionsGenericFormat), &err); 6788 if (!err) { 6789 visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->bochs, &err); 6790 error_propagate(errp, err); 6791 err = NULL; 6792 visit_end_implicit_struct(m, &err); 6793 } 6794 break; 6795 case BLOCKDEV_OPTIONS_KIND_CLOOP: 6796 visit_start_implicit_struct(m, (void**) &(*obj)->cloop, sizeof(BlockdevOptionsGenericFormat), &err); 6797 if (!err) { 6798 visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->cloop, &err); 6799 error_propagate(errp, err); 6800 err = NULL; 6801 visit_end_implicit_struct(m, &err); 6802 } 6803 break; 6804 case BLOCKDEV_OPTIONS_KIND_COW: 6805 visit_start_implicit_struct(m, (void**) &(*obj)->cow, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6806 if (!err) { 6807 visit_type_BlockdevOptionsGenericCOWFormat_fields(m, &(*obj)->cow, &err); 6808 error_propagate(errp, err); 6809 err = NULL; 6810 visit_end_implicit_struct(m, &err); 6811 } 6812 break; 6813 case BLOCKDEV_OPTIONS_KIND_DMG: 6814 visit_start_implicit_struct(m, (void**) &(*obj)->dmg, sizeof(BlockdevOptionsGenericFormat), &err); 6815 if (!err) { 6816 visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->dmg, &err); 6817 error_propagate(errp, err); 6818 err = NULL; 6819 visit_end_implicit_struct(m, &err); 6820 } 6821 break; 6822 case BLOCKDEV_OPTIONS_KIND_PARALLELS: 6823 visit_start_implicit_struct(m, (void**) &(*obj)->parallels, sizeof(BlockdevOptionsGenericFormat), &err); 6824 if (!err) { 6825 visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->parallels, &err); 6826 error_propagate(errp, err); 6827 err = NULL; 6828 visit_end_implicit_struct(m, &err); 6829 } 6830 break; 6831 case BLOCKDEV_OPTIONS_KIND_QCOW: 6832 visit_start_implicit_struct(m, (void**) &(*obj)->qcow, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6833 if (!err) { 6834 visit_type_BlockdevOptionsGenericCOWFormat_fields(m, &(*obj)->qcow, &err); 6835 error_propagate(errp, err); 6836 err = NULL; 6837 visit_end_implicit_struct(m, &err); 6838 } 6839 break; 6840 case BLOCKDEV_OPTIONS_KIND_QCOW2: 6841 visit_start_implicit_struct(m, (void**) &(*obj)->qcow2, sizeof(BlockdevOptionsQcow2), &err); 6842 if (!err) { 6843 visit_type_BlockdevOptionsQcow2_fields(m, &(*obj)->qcow2, &err); 6844 error_propagate(errp, err); 6845 err = NULL; 6846 visit_end_implicit_struct(m, &err); 6847 } 6848 break; 6849 case BLOCKDEV_OPTIONS_KIND_QED: 6850 visit_start_implicit_struct(m, (void**) &(*obj)->qed, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6851 if (!err) { 6852 visit_type_BlockdevOptionsGenericCOWFormat_fields(m, &(*obj)->qed, &err); 6853 error_propagate(errp, err); 6854 err = NULL; 6855 visit_end_implicit_struct(m, &err); 6856 } 6857 break; 6858 case BLOCKDEV_OPTIONS_KIND_RAW: 6859 visit_start_implicit_struct(m, (void**) &(*obj)->raw, sizeof(BlockdevOptionsGenericFormat), &err); 6860 if (!err) { 6861 visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->raw, &err); 6862 error_propagate(errp, err); 6863 err = NULL; 6864 visit_end_implicit_struct(m, &err); 6865 } 6866 break; 6867 case BLOCKDEV_OPTIONS_KIND_VDI: 6868 visit_start_implicit_struct(m, (void**) &(*obj)->vdi, sizeof(BlockdevOptionsGenericFormat), &err); 6869 if (!err) { 6870 visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->vdi, &err); 6871 error_propagate(errp, err); 6872 err = NULL; 6873 visit_end_implicit_struct(m, &err); 6874 } 6875 break; 6876 case BLOCKDEV_OPTIONS_KIND_VHDX: 6877 visit_start_implicit_struct(m, (void**) &(*obj)->vhdx, sizeof(BlockdevOptionsGenericFormat), &err); 6878 if (!err) { 6879 visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->vhdx, &err); 6880 error_propagate(errp, err); 6881 err = NULL; 6882 visit_end_implicit_struct(m, &err); 6883 } 6884 break; 6885 case BLOCKDEV_OPTIONS_KIND_VMDK: 6886 visit_start_implicit_struct(m, (void**) &(*obj)->vmdk, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6887 if (!err) { 6888 visit_type_BlockdevOptionsGenericCOWFormat_fields(m, &(*obj)->vmdk, &err); 6889 error_propagate(errp, err); 6890 err = NULL; 6891 visit_end_implicit_struct(m, &err); 6892 } 6893 break; 6894 case BLOCKDEV_OPTIONS_KIND_VPC: 6895 visit_start_implicit_struct(m, (void**) &(*obj)->vpc, sizeof(BlockdevOptionsGenericFormat), &err); 6896 if (!err) { 6897 visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->vpc, &err); 6898 error_propagate(errp, err); 6899 err = NULL; 6900 visit_end_implicit_struct(m, &err); 6901 } 6902 break; 6903 default: 6904 abort(); 6905 } 6906 } 6907 error_propagate(errp, err); 6908 err = NULL; 6909 } 6910 /* Always call end_struct if start_struct succeeded. */ 6911 visit_end_struct(m, &err); 6912 } 6913 error_propagate(errp, err); 6914 } 6915} 6916 6917void visit_type_BlockdevOptionsList(Visitor *m, BlockdevOptionsList ** obj, const char *name, Error **errp) 6918{ 6919 GenericList *i, **prev = (GenericList **)obj; 6920 Error *err = NULL; 6921 6922 if (!error_is_set(errp)) { 6923 visit_start_list(m, name, &err); 6924 if (!err) { 6925 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6926 BlockdevOptionsList *native_i = (BlockdevOptionsList *)i; 6927 visit_type_BlockdevOptions(m, &native_i->value, NULL, &err); 6928 } 6929 error_propagate(errp, err); 6930 err = NULL; 6931 6932 /* Always call end_list if start_list succeeded. */ 6933 visit_end_list(m, &err); 6934 } 6935 error_propagate(errp, err); 6936 } 6937} 6938 6939void visit_type_BlockdevRef(Visitor *m, BlockdevRef ** obj, const char *name, Error **errp) 6940{ 6941 Error *err = NULL; 6942 6943 if (!error_is_set(errp)) { 6944 visit_start_implicit_struct(m, (void**) obj, sizeof(BlockdevRef), &err); 6945 visit_get_next_type(m, (int*) &(*obj)->kind, BlockdevRef_qtypes, name, &err); 6946 switch ((*obj)->kind) { 6947 case BLOCKDEV_REF_KIND_DEFINITION: 6948 visit_type_BlockdevOptions(m, &(*obj)->definition, name, &err); 6949 break; 6950 case BLOCKDEV_REF_KIND_REFERENCE: 6951 visit_type_str(m, &(*obj)->reference, name, &err); 6952 break; 6953 default: 6954 abort(); 6955 } 6956 error_propagate(errp, err); 6957 err = NULL; 6958 visit_end_implicit_struct(m, &err); 6959 } 6960} 6961 6962void visit_type_BlockdevRefList(Visitor *m, BlockdevRefList ** obj, const char *name, Error **errp) 6963{ 6964 GenericList *i, **prev = (GenericList **)obj; 6965 Error *err = NULL; 6966 6967 if (!error_is_set(errp)) { 6968 visit_start_list(m, name, &err); 6969 if (!err) { 6970 for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6971 BlockdevRefList *native_i = (BlockdevRefList *)i; 6972 visit_type_BlockdevRef(m, &native_i->value, NULL, &err); 6973 } 6974 error_propagate(errp, err); 6975 err = NULL; 6976 6977 /* Always call end_list if start_list succeeded. */ 6978 visit_end_list(m, &err); 6979 } 6980 error_propagate(errp, err); 6981 } 6982} 6983