1910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT MODIFY */ 2910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner/* 4910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * schema-defined QAPI visitor functions 5910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * 6910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * Copyright IBM, Corp. 2011 7910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * 8910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * Authors: 9910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * Anthony Liguori <aliguori@us.ibm.com> 10910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * 11910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. 12910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * See the COPYING.LIB file in the top-level directory. 13910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * 14910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner */ 15910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 16910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qemu-common.h" 17910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi-visit.h" 18910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 19910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#ifndef QAPI_VISIT_BUILTIN_VISITOR_DEF_H 20910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#define QAPI_VISIT_BUILTIN_VISITOR_DEF_H 21910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 22910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 23910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_strList(Visitor *m, strList ** obj, const char *name, Error **errp) 24910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 25910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 26910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 27910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 28910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 29910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 30910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 31910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 32910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner strList *native_i = (strList *)i; 33910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, &native_i->value, NULL, &err); 34910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 35910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 36910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 37910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 38910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 39910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 40910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 41910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 42910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 43910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 44910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 45910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_intList(Visitor *m, intList ** obj, const char *name, Error **errp) 46910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 47910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 48910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 49910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 50910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 51910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 52910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 53910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 54910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner intList *native_i = (intList *)i; 55910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, &native_i->value, NULL, &err); 56910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 57910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 58910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 59910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 60910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 61910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 62910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 63910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 64910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 65910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 66910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 67910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_numberList(Visitor *m, numberList ** obj, const char *name, Error **errp) 68910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 69910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 70910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 71910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 72910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 73910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 74910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 75910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 76910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner numberList *native_i = (numberList *)i; 77910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_number(m, &native_i->value, NULL, &err); 78910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 79910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 80910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 81910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 82910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 83910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 84910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 85910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 86910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 87910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 88910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 89910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_boolList(Visitor *m, boolList ** obj, const char *name, Error **errp) 90910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 91910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 92910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 93910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 94910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 95910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 96910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 97910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 98910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner boolList *native_i = (boolList *)i; 99910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, &native_i->value, NULL, &err); 100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_int8List(Visitor *m, int8List ** obj, const char *name, Error **errp) 112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner int8List *native_i = (int8List *)i; 121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int8(m, &native_i->value, NULL, &err); 122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_int16List(Visitor *m, int16List ** obj, const char *name, Error **errp) 134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner int16List *native_i = (int16List *)i; 143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int16(m, &native_i->value, NULL, &err); 144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_int32List(Visitor *m, int32List ** obj, const char *name, Error **errp) 156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner int32List *native_i = (int32List *)i; 165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int32(m, &native_i->value, NULL, &err); 166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_int64List(Visitor *m, int64List ** obj, const char *name, Error **errp) 178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner int64List *native_i = (int64List *)i; 187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int64(m, &native_i->value, NULL, &err); 188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_uint8List(Visitor *m, uint8List ** obj, const char *name, Error **errp) 200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner uint8List *native_i = (uint8List *)i; 209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint8(m, &native_i->value, NULL, &err); 210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_uint16List(Visitor *m, uint16List ** obj, const char *name, Error **errp) 222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner uint16List *native_i = (uint16List *)i; 231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint16(m, &native_i->value, NULL, &err); 232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_uint32List(Visitor *m, uint32List ** obj, const char *name, Error **errp) 244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner uint32List *native_i = (uint32List *)i; 253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint32(m, &native_i->value, NULL, &err); 254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_uint64List(Visitor *m, uint64List ** obj, const char *name, Error **errp) 266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner uint64List *native_i = (uint64List *)i; 275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint64(m, &native_i->value, NULL, &err); 276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#endif /* QAPI_VISIT_BUILTIN_VISITOR_DEF_H */ 288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ErrorClassList(Visitor *m, ErrorClassList ** obj, const char *name, Error **errp) 291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ErrorClassList *native_i = (ErrorClassList *)i; 300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ErrorClass(m, &native_i->value, NULL, &err); 301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ErrorClass(Visitor *m, ErrorClass * obj, const char *name, Error **errp) 313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, ErrorClass_lookup, "ErrorClass", name, errp); 315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NameInfo_fields(Visitor *m, NameInfo ** obj, Error **errp) 318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_name : NULL, "name", &err); 321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_name) { 322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NameInfo(Visitor *m, NameInfo ** obj, const char *name, Error **errp) 330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NameInfo", name, sizeof(NameInfo), &err); 334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NameInfo_fields(m, obj, &err); 337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NameInfoList(Visitor *m, NameInfoList ** obj, const char *name, Error **errp) 348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NameInfoList *native_i = (NameInfoList *)i; 357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NameInfo(m, &native_i->value, NULL, &err); 358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_VersionInfo_qemu_fields(Visitor *m, VersionInfo ** obj, Error **errp) 370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->qemu.major : NULL, "major", &err); 373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->qemu.minor : NULL, "minor", &err); 374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->qemu.micro : NULL, "micro", &err); 375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_VersionInfo_fields(Visitor *m, VersionInfo ** obj, Error **errp) 380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error **errp = &err; /* from outer scope */ 384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, NULL, "", "qemu", 0, &err); 386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_VersionInfo_qemu_fields(m, obj, &err); 389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->package : NULL, "package", &err); 398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_VersionInfo(Visitor *m, VersionInfo ** obj, const char *name, Error **errp) 403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "VersionInfo", name, sizeof(VersionInfo), &err); 407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_VersionInfo_fields(m, obj, &err); 410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_VersionInfoList(Visitor *m, VersionInfoList ** obj, const char *name, Error **errp) 421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner VersionInfoList *native_i = (VersionInfoList *)i; 430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_VersionInfo(m, &native_i->value, NULL, &err); 431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_KvmInfo_fields(Visitor *m, KvmInfo ** obj, Error **errp) 443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->enabled : NULL, "enabled", &err); 446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->present : NULL, "present", &err); 447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_KvmInfo(Visitor *m, KvmInfo ** obj, const char *name, Error **errp) 452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "KvmInfo", name, sizeof(KvmInfo), &err); 456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_KvmInfo_fields(m, obj, &err); 459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_KvmInfoList(Visitor *m, KvmInfoList ** obj, const char *name, Error **errp) 470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner KvmInfoList *native_i = (KvmInfoList *)i; 479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_KvmInfo(m, &native_i->value, NULL, &err); 480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_RunStateList(Visitor *m, RunStateList ** obj, const char *name, Error **errp) 492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner RunStateList *native_i = (RunStateList *)i; 501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_RunState(m, &native_i->value, NULL, &err); 502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_RunState(Visitor *m, RunState * obj, const char *name, Error **errp) 514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, RunState_lookup, "RunState", name, errp); 516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_SnapshotInfo_fields(Visitor *m, SnapshotInfo ** obj, Error **errp) 519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->vm_state_size : NULL, "vm-state-size", &err); 524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->date_sec : NULL, "date-sec", &err); 525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->date_nsec : NULL, "date-nsec", &err); 526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->vm_clock_sec : NULL, "vm-clock-sec", &err); 527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->vm_clock_nsec : NULL, "vm-clock-nsec", &err); 528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SnapshotInfo(Visitor *m, SnapshotInfo ** obj, const char *name, Error **errp) 533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "SnapshotInfo", name, sizeof(SnapshotInfo), &err); 537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SnapshotInfo_fields(m, obj, &err); 540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SnapshotInfoList(Visitor *m, SnapshotInfoList ** obj, const char *name, Error **errp) 551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner SnapshotInfoList *native_i = (SnapshotInfoList *)i; 560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SnapshotInfo(m, &native_i->value, NULL, &err); 561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ImageInfoSpecificQCow2_fields(Visitor *m, ImageInfoSpecificQCow2 ** obj, Error **errp) 573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->compat : NULL, "compat", &err); 576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_lazy_refcounts : NULL, "lazy-refcounts", &err); 577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_lazy_refcounts) { 578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->lazy_refcounts : NULL, "lazy-refcounts", &err); 579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfoSpecificQCow2(Visitor *m, ImageInfoSpecificQCow2 ** obj, const char *name, Error **errp) 586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ImageInfoSpecificQCow2", name, sizeof(ImageInfoSpecificQCow2), &err); 590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecificQCow2_fields(m, obj, &err); 593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfoSpecificQCow2List(Visitor *m, ImageInfoSpecificQCow2List ** obj, const char *name, Error **errp) 604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ImageInfoSpecificQCow2List *native_i = (ImageInfoSpecificQCow2List *)i; 613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecificQCow2(m, &native_i->value, NULL, &err); 614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ImageInfoSpecificVmdk_fields(Visitor *m, ImageInfoSpecificVmdk ** obj, Error **errp) 626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->create_type : NULL, "create-type", &err); 629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->cid : NULL, "cid", &err); 630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->parent_cid : NULL, "parent-cid", &err); 631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoList(m, obj ? &(*obj)->extents : NULL, "extents", &err); 632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfoSpecificVmdk(Visitor *m, ImageInfoSpecificVmdk ** obj, const char *name, Error **errp) 637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ImageInfoSpecificVmdk", name, sizeof(ImageInfoSpecificVmdk), &err); 641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecificVmdk_fields(m, obj, &err); 644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfoSpecificVmdkList(Visitor *m, ImageInfoSpecificVmdkList ** obj, const char *name, Error **errp) 655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ImageInfoSpecificVmdkList *native_i = (ImageInfoSpecificVmdkList *)i; 664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecificVmdk(m, &native_i->value, NULL, &err); 665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfoSpecificKind(Visitor *m, ImageInfoSpecificKind * obj, const char *name, Error **errp) 677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, ImageInfoSpecificKind_lookup, "ImageInfoSpecificKind", name, errp); 679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfoSpecific(Visitor *m, ImageInfoSpecific ** obj, const char *name, Error **errp) 682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ImageInfoSpecific", name, sizeof(ImageInfoSpecific), &err); 687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && *obj) { 689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecificKind(m, &(*obj)->kind, "type", &err); 690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case IMAGE_INFO_SPECIFIC_KIND_QCOW2: 693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecificQCow2(m, &(*obj)->qcow2, "data", &err); 694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case IMAGE_INFO_SPECIFIC_KIND_VMDK: 696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecificVmdk(m, &(*obj)->vmdk, "data", &err); 697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfoSpecificList(Visitor *m, ImageInfoSpecificList ** obj, const char *name, Error **errp) 713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ImageInfoSpecificList *native_i = (ImageInfoSpecificList *)i; 722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecific(m, &native_i->value, NULL, &err); 723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ImageInfo_fields(Visitor *m, ImageInfo ** obj, Error **errp) 735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->filename : NULL, "filename", &err); 738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->format : NULL, "format", &err); 739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_dirty_flag : NULL, "dirty-flag", &err); 740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_dirty_flag) { 741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->dirty_flag : NULL, "dirty-flag", &err); 742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_actual_size : NULL, "actual-size", &err); 745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_actual_size) { 746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->actual_size : NULL, "actual-size", &err); 747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->virtual_size : NULL, "virtual-size", &err); 750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_cluster_size : NULL, "cluster-size", &err); 751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_cluster_size) { 752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->cluster_size : NULL, "cluster-size", &err); 753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_encrypted : NULL, "encrypted", &err); 756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_encrypted) { 757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->encrypted : NULL, "encrypted", &err); 758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_compressed : NULL, "compressed", &err); 761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_compressed) { 762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->compressed : NULL, "compressed", &err); 763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_backing_filename : NULL, "backing-filename", &err); 766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_backing_filename) { 767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->backing_filename : NULL, "backing-filename", &err); 768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_full_backing_filename : NULL, "full-backing-filename", &err); 771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_full_backing_filename) { 772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->full_backing_filename : NULL, "full-backing-filename", &err); 773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_backing_filename_format : NULL, "backing-filename-format", &err); 776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_backing_filename_format) { 777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->backing_filename_format : NULL, "backing-filename-format", &err); 778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_snapshots : NULL, "snapshots", &err); 781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_snapshots) { 782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SnapshotInfoList(m, obj ? &(*obj)->snapshots : NULL, "snapshots", &err); 783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_backing_image : NULL, "backing-image", &err); 786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_backing_image) { 787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfo(m, obj ? &(*obj)->backing_image : NULL, "backing-image", &err); 788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_format_specific : NULL, "format-specific", &err); 791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_format_specific) { 792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfoSpecific(m, obj ? &(*obj)->format_specific : NULL, "format-specific", &err); 793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfo(Visitor *m, ImageInfo ** obj, const char *name, Error **errp) 800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ImageInfo", name, sizeof(ImageInfo), &err); 804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfo_fields(m, obj, &err); 807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageInfoList(Visitor *m, ImageInfoList ** obj, const char *name, Error **errp) 818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ImageInfoList *native_i = (ImageInfoList *)i; 827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfo(m, &native_i->value, NULL, &err); 828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ImageCheck_fields(Visitor *m, ImageCheck ** obj, Error **errp) 840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->filename : NULL, "filename", &err); 843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->format : NULL, "format", &err); 844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->check_errors : NULL, "check-errors", &err); 845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_image_end_offset : NULL, "image-end-offset", &err); 846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_image_end_offset) { 847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->image_end_offset : NULL, "image-end-offset", &err); 848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_corruptions : NULL, "corruptions", &err); 851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_corruptions) { 852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->corruptions : NULL, "corruptions", &err); 853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_leaks : NULL, "leaks", &err); 856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_leaks) { 857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->leaks : NULL, "leaks", &err); 858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_corruptions_fixed : NULL, "corruptions-fixed", &err); 861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_corruptions_fixed) { 862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->corruptions_fixed : NULL, "corruptions-fixed", &err); 863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_leaks_fixed : NULL, "leaks-fixed", &err); 866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_leaks_fixed) { 867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->leaks_fixed : NULL, "leaks-fixed", &err); 868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_total_clusters : NULL, "total-clusters", &err); 871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_total_clusters) { 872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->total_clusters : NULL, "total-clusters", &err); 873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_allocated_clusters : NULL, "allocated-clusters", &err); 876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_allocated_clusters) { 877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->allocated_clusters : NULL, "allocated-clusters", &err); 878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_fragmented_clusters : NULL, "fragmented-clusters", &err); 881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_fragmented_clusters) { 882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->fragmented_clusters : NULL, "fragmented-clusters", &err); 883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_compressed_clusters : NULL, "compressed-clusters", &err); 886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_compressed_clusters) { 887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->compressed_clusters : NULL, "compressed-clusters", &err); 888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageCheck(Visitor *m, ImageCheck ** obj, const char *name, Error **errp) 895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ImageCheck", name, sizeof(ImageCheck), &err); 899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageCheck_fields(m, obj, &err); 902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ImageCheckList(Visitor *m, ImageCheckList ** obj, const char *name, Error **errp) 913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ImageCheckList *native_i = (ImageCheckList *)i; 922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageCheck(m, &native_i->value, NULL, &err); 923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_StatusInfo_fields(Visitor *m, StatusInfo ** obj, Error **errp) 935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->running : NULL, "running", &err); 938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->singlestep : NULL, "singlestep", &err); 939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_RunState(m, obj ? &(*obj)->status : NULL, "status", &err); 940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_StatusInfo(Visitor *m, StatusInfo ** obj, const char *name, Error **errp) 945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "StatusInfo", name, sizeof(StatusInfo), &err); 949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_StatusInfo_fields(m, obj, &err); 952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_StatusInfoList(Visitor *m, StatusInfoList ** obj, const char *name, Error **errp) 963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner StatusInfoList *native_i = (StatusInfoList *)i; 972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_StatusInfo(m, &native_i->value, NULL, &err); 973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_UuidInfo_fields(Visitor *m, UuidInfo ** obj, Error **errp) 985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->UUID : NULL, "UUID", &err); 988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_UuidInfo(Visitor *m, UuidInfo ** obj, const char *name, Error **errp) 993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "UuidInfo", name, sizeof(UuidInfo), &err); 997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_UuidInfo_fields(m, obj, &err); 1000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_UuidInfoList(Visitor *m, UuidInfoList ** obj, const char *name, Error **errp) 1011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner UuidInfoList *native_i = (UuidInfoList *)i; 1020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_UuidInfo(m, &native_i->value, NULL, &err); 1021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevInfo_fields(Visitor *m, ChardevInfo ** obj, Error **errp) 1033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->label : NULL, "label", &err); 1036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->filename : NULL, "filename", &err); 1037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevInfo(Visitor *m, ChardevInfo ** obj, const char *name, Error **errp) 1042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevInfo", name, sizeof(ChardevInfo), &err); 1046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevInfo_fields(m, obj, &err); 1049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevInfoList(Visitor *m, ChardevInfoList ** obj, const char *name, Error **errp) 1060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevInfoList *native_i = (ChardevInfoList *)i; 1069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevInfo(m, &native_i->value, NULL, &err); 1070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_DataFormatList(Visitor *m, DataFormatList ** obj, const char *name, Error **errp) 1082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner DataFormatList *native_i = (DataFormatList *)i; 1091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_DataFormat(m, &native_i->value, NULL, &err); 1092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_DataFormat(Visitor *m, DataFormat * obj, const char *name, Error **errp) 1104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, DataFormat_lookup, "DataFormat", name, errp); 1106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_CommandInfo_fields(Visitor *m, CommandInfo ** obj, Error **errp) 1109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 1112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CommandInfo(Visitor *m, CommandInfo ** obj, const char *name, Error **errp) 1117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "CommandInfo", name, sizeof(CommandInfo), &err); 1121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandInfo_fields(m, obj, &err); 1124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CommandInfoList(Visitor *m, CommandInfoList ** obj, const char *name, Error **errp) 1135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner CommandInfoList *native_i = (CommandInfoList *)i; 1144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandInfo(m, &native_i->value, NULL, &err); 1145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_EventInfo_fields(Visitor *m, EventInfo ** obj, Error **errp) 1157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 1160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_EventInfo(Visitor *m, EventInfo ** obj, const char *name, Error **errp) 1165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "EventInfo", name, sizeof(EventInfo), &err); 1169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_EventInfo_fields(m, obj, &err); 1172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_EventInfoList(Visitor *m, EventInfoList ** obj, const char *name, Error **errp) 1183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner EventInfoList *native_i = (EventInfoList *)i; 1192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_EventInfo(m, &native_i->value, NULL, &err); 1193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_MigrationStats_fields(Visitor *m, MigrationStats ** obj, Error **errp) 1205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->transferred : NULL, "transferred", &err); 1208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->remaining : NULL, "remaining", &err); 1209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->total : NULL, "total", &err); 1210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->duplicate : NULL, "duplicate", &err); 1211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->skipped : NULL, "skipped", &err); 1212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->normal : NULL, "normal", &err); 1213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->normal_bytes : NULL, "normal-bytes", &err); 1214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->dirty_pages_rate : NULL, "dirty-pages-rate", &err); 1215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_number(m, obj ? &(*obj)->mbps : NULL, "mbps", &err); 1216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MigrationStats(Visitor *m, MigrationStats ** obj, const char *name, Error **errp) 1221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "MigrationStats", name, sizeof(MigrationStats), &err); 1225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationStats_fields(m, obj, &err); 1228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MigrationStatsList(Visitor *m, MigrationStatsList ** obj, const char *name, Error **errp) 1239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner MigrationStatsList *native_i = (MigrationStatsList *)i; 1248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationStats(m, &native_i->value, NULL, &err); 1249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_XBZRLECacheStats_fields(Visitor *m, XBZRLECacheStats ** obj, Error **errp) 1261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->cache_size : NULL, "cache-size", &err); 1264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bytes : NULL, "bytes", &err); 1265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->pages : NULL, "pages", &err); 1266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->cache_miss : NULL, "cache-miss", &err); 1267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->overflow : NULL, "overflow", &err); 1268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_XBZRLECacheStats(Visitor *m, XBZRLECacheStats ** obj, const char *name, Error **errp) 1273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "XBZRLECacheStats", name, sizeof(XBZRLECacheStats), &err); 1277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_XBZRLECacheStats_fields(m, obj, &err); 1280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_XBZRLECacheStatsList(Visitor *m, XBZRLECacheStatsList ** obj, const char *name, Error **errp) 1291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner XBZRLECacheStatsList *native_i = (XBZRLECacheStatsList *)i; 1300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_XBZRLECacheStats(m, &native_i->value, NULL, &err); 1301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_MigrationInfo_fields(Visitor *m, MigrationInfo ** obj, Error **errp) 1313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_status : NULL, "status", &err); 1316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_status) { 1317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->status : NULL, "status", &err); 1318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_ram : NULL, "ram", &err); 1321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_ram) { 1322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationStats(m, obj ? &(*obj)->ram : NULL, "ram", &err); 1323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_disk : NULL, "disk", &err); 1326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_disk) { 1327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationStats(m, obj ? &(*obj)->disk : NULL, "disk", &err); 1328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_xbzrle_cache : NULL, "xbzrle-cache", &err); 1331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_xbzrle_cache) { 1332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_XBZRLECacheStats(m, obj ? &(*obj)->xbzrle_cache : NULL, "xbzrle-cache", &err); 1333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_total_time : NULL, "total-time", &err); 1336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_total_time) { 1337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->total_time : NULL, "total-time", &err); 1338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_expected_downtime : NULL, "expected-downtime", &err); 1341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_expected_downtime) { 1342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->expected_downtime : NULL, "expected-downtime", &err); 1343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_downtime : NULL, "downtime", &err); 1346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_downtime) { 1347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->downtime : NULL, "downtime", &err); 1348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_setup_time : NULL, "setup-time", &err); 1351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_setup_time) { 1352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->setup_time : NULL, "setup-time", &err); 1353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MigrationInfo(Visitor *m, MigrationInfo ** obj, const char *name, Error **errp) 1360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "MigrationInfo", name, sizeof(MigrationInfo), &err); 1364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationInfo_fields(m, obj, &err); 1367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MigrationInfoList(Visitor *m, MigrationInfoList ** obj, const char *name, Error **errp) 1378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner MigrationInfoList *native_i = (MigrationInfoList *)i; 1387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationInfo(m, &native_i->value, NULL, &err); 1388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MigrationCapabilityList(Visitor *m, MigrationCapabilityList ** obj, const char *name, Error **errp) 1400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner MigrationCapabilityList *native_i = (MigrationCapabilityList *)i; 1409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationCapability(m, &native_i->value, NULL, &err); 1410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MigrationCapability(Visitor *m, MigrationCapability * obj, const char *name, Error **errp) 1422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, MigrationCapability_lookup, "MigrationCapability", name, errp); 1424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_MigrationCapabilityStatus_fields(Visitor *m, MigrationCapabilityStatus ** obj, Error **errp) 1427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationCapability(m, obj ? &(*obj)->capability : NULL, "capability", &err); 1430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->state : NULL, "state", &err); 1431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MigrationCapabilityStatus(Visitor *m, MigrationCapabilityStatus ** obj, const char *name, Error **errp) 1436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "MigrationCapabilityStatus", name, sizeof(MigrationCapabilityStatus), &err); 1440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationCapabilityStatus_fields(m, obj, &err); 1443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MigrationCapabilityStatusList(Visitor *m, MigrationCapabilityStatusList ** obj, const char *name, Error **errp) 1454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner MigrationCapabilityStatusList *native_i = (MigrationCapabilityStatusList *)i; 1463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MigrationCapabilityStatus(m, &native_i->value, NULL, &err); 1464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_MouseInfo_fields(Visitor *m, MouseInfo ** obj, Error **errp) 1476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 1479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->index : NULL, "index", &err); 1480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->current : NULL, "current", &err); 1481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->absolute : NULL, "absolute", &err); 1482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MouseInfo(Visitor *m, MouseInfo ** obj, const char *name, Error **errp) 1487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "MouseInfo", name, sizeof(MouseInfo), &err); 1491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MouseInfo_fields(m, obj, &err); 1494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MouseInfoList(Visitor *m, MouseInfoList ** obj, const char *name, Error **errp) 1505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner MouseInfoList *native_i = (MouseInfoList *)i; 1514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MouseInfo(m, &native_i->value, NULL, &err); 1515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_CpuInfo_fields(Visitor *m, CpuInfo ** obj, Error **errp) 1527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->CPU : NULL, "CPU", &err); 1530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->current : NULL, "current", &err); 1531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->halted : NULL, "halted", &err); 1532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_pc : NULL, "pc", &err); 1533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_pc) { 1534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->pc : NULL, "pc", &err); 1535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_nip : NULL, "nip", &err); 1538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_nip) { 1539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->nip : NULL, "nip", &err); 1540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_npc : NULL, "npc", &err); 1543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_npc) { 1544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->npc : NULL, "npc", &err); 1545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_PC : NULL, "PC", &err); 1548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_PC) { 1549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->PC : NULL, "PC", &err); 1550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->thread_id : NULL, "thread_id", &err); 1553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CpuInfo(Visitor *m, CpuInfo ** obj, const char *name, Error **errp) 1558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "CpuInfo", name, sizeof(CpuInfo), &err); 1562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CpuInfo_fields(m, obj, &err); 1565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CpuInfoList(Visitor *m, CpuInfoList ** obj, const char *name, Error **errp) 1576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner CpuInfoList *native_i = (CpuInfoList *)i; 1585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CpuInfo(m, &native_i->value, NULL, &err); 1586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockDeviceInfo_fields(Visitor *m, BlockDeviceInfo ** obj, Error **errp) 1598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->file : NULL, "file", &err); 1601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->ro : NULL, "ro", &err); 1602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->drv : NULL, "drv", &err); 1603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_backing_file : NULL, "backing_file", &err); 1604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_backing_file) { 1605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->backing_file : NULL, "backing_file", &err); 1606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->backing_file_depth : NULL, "backing_file_depth", &err); 1609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->encrypted : NULL, "encrypted", &err); 1610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->encryption_key_missing : NULL, "encryption_key_missing", &err); 1611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bps : NULL, "bps", &err); 1612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bps_rd : NULL, "bps_rd", &err); 1613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bps_wr : NULL, "bps_wr", &err); 1614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->iops : NULL, "iops", &err); 1615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->iops_rd : NULL, "iops_rd", &err); 1616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->iops_wr : NULL, "iops_wr", &err); 1617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ImageInfo(m, obj ? &(*obj)->image : NULL, "image", &err); 1618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_bps_max : NULL, "bps_max", &err); 1619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_bps_max) { 1620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bps_max : NULL, "bps_max", &err); 1621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_bps_rd_max : NULL, "bps_rd_max", &err); 1624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_bps_rd_max) { 1625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bps_rd_max : NULL, "bps_rd_max", &err); 1626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_bps_wr_max : NULL, "bps_wr_max", &err); 1629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_bps_wr_max) { 1630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bps_wr_max : NULL, "bps_wr_max", &err); 1631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_iops_max : NULL, "iops_max", &err); 1634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_iops_max) { 1635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->iops_max : NULL, "iops_max", &err); 1636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_iops_rd_max : NULL, "iops_rd_max", &err); 1639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_iops_rd_max) { 1640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->iops_rd_max : NULL, "iops_rd_max", &err); 1641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_iops_wr_max : NULL, "iops_wr_max", &err); 1644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_iops_wr_max) { 1645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->iops_wr_max : NULL, "iops_wr_max", &err); 1646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_iops_size : NULL, "iops_size", &err); 1649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_iops_size) { 1650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->iops_size : NULL, "iops_size", &err); 1651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDeviceInfo(Visitor *m, BlockDeviceInfo ** obj, const char *name, Error **errp) 1658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockDeviceInfo", name, sizeof(BlockDeviceInfo), &err); 1662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceInfo_fields(m, obj, &err); 1665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDeviceInfoList(Visitor *m, BlockDeviceInfoList ** obj, const char *name, Error **errp) 1676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockDeviceInfoList *native_i = (BlockDeviceInfoList *)i; 1685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceInfo(m, &native_i->value, NULL, &err); 1686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDeviceIoStatusList(Visitor *m, BlockDeviceIoStatusList ** obj, const char *name, Error **errp) 1698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockDeviceIoStatusList *native_i = (BlockDeviceIoStatusList *)i; 1707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceIoStatus(m, &native_i->value, NULL, &err); 1708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDeviceIoStatus(Visitor *m, BlockDeviceIoStatus * obj, const char *name, Error **errp) 1720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, BlockDeviceIoStatus_lookup, "BlockDeviceIoStatus", name, errp); 1722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockDeviceMapEntry_fields(Visitor *m, BlockDeviceMapEntry ** obj, Error **errp) 1725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->start : NULL, "start", &err); 1728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->length : NULL, "length", &err); 1729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->depth : NULL, "depth", &err); 1730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->zero : NULL, "zero", &err); 1731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->data : NULL, "data", &err); 1732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_offset : NULL, "offset", &err); 1733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_offset) { 1734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->offset : NULL, "offset", &err); 1735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDeviceMapEntry(Visitor *m, BlockDeviceMapEntry ** obj, const char *name, Error **errp) 1742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockDeviceMapEntry", name, sizeof(BlockDeviceMapEntry), &err); 1746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceMapEntry_fields(m, obj, &err); 1749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDeviceMapEntryList(Visitor *m, BlockDeviceMapEntryList ** obj, const char *name, Error **errp) 1760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockDeviceMapEntryList *native_i = (BlockDeviceMapEntryList *)i; 1769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceMapEntry(m, &native_i->value, NULL, &err); 1770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockDirtyInfo_fields(Visitor *m, BlockDirtyInfo ** obj, Error **errp) 1782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->count : NULL, "count", &err); 1785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->granularity : NULL, "granularity", &err); 1786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDirtyInfo(Visitor *m, BlockDirtyInfo ** obj, const char *name, Error **errp) 1791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockDirtyInfo", name, sizeof(BlockDirtyInfo), &err); 1795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDirtyInfo_fields(m, obj, &err); 1798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDirtyInfoList(Visitor *m, BlockDirtyInfoList ** obj, const char *name, Error **errp) 1809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockDirtyInfoList *native_i = (BlockDirtyInfoList *)i; 1818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDirtyInfo(m, &native_i->value, NULL, &err); 1819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockInfo_fields(Visitor *m, BlockInfo ** obj, Error **errp) 1831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 1834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 1835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->removable : NULL, "removable", &err); 1836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->locked : NULL, "locked", &err); 1837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_inserted : NULL, "inserted", &err); 1838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_inserted) { 1839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceInfo(m, obj ? &(*obj)->inserted : NULL, "inserted", &err); 1840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_tray_open : NULL, "tray_open", &err); 1843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_tray_open) { 1844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->tray_open : NULL, "tray_open", &err); 1845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_io_status : NULL, "io-status", &err); 1848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_io_status) { 1849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceIoStatus(m, obj ? &(*obj)->io_status : NULL, "io-status", &err); 1850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_dirty_bitmaps : NULL, "dirty-bitmaps", &err); 1853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_dirty_bitmaps) { 1854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDirtyInfoList(m, obj ? &(*obj)->dirty_bitmaps : NULL, "dirty-bitmaps", &err); 1855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockInfo(Visitor *m, BlockInfo ** obj, const char *name, Error **errp) 1862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockInfo", name, sizeof(BlockInfo), &err); 1866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockInfo_fields(m, obj, &err); 1869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockInfoList(Visitor *m, BlockInfoList ** obj, const char *name, Error **errp) 1880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockInfoList *native_i = (BlockInfoList *)i; 1889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockInfo(m, &native_i->value, NULL, &err); 1890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockDeviceStats_fields(Visitor *m, BlockDeviceStats ** obj, Error **errp) 1902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->rd_bytes : NULL, "rd_bytes", &err); 1905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->wr_bytes : NULL, "wr_bytes", &err); 1906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->rd_operations : NULL, "rd_operations", &err); 1907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->wr_operations : NULL, "wr_operations", &err); 1908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->flush_operations : NULL, "flush_operations", &err); 1909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->flush_total_time_ns : NULL, "flush_total_time_ns", &err); 1910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->wr_total_time_ns : NULL, "wr_total_time_ns", &err); 1911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->rd_total_time_ns : NULL, "rd_total_time_ns", &err); 1912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->wr_highest_offset : NULL, "wr_highest_offset", &err); 1913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDeviceStats(Visitor *m, BlockDeviceStats ** obj, const char *name, Error **errp) 1918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockDeviceStats", name, sizeof(BlockDeviceStats), &err); 1922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceStats_fields(m, obj, &err); 1925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockDeviceStatsList(Visitor *m, BlockDeviceStatsList ** obj, const char *name, Error **errp) 1936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 1942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 1944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockDeviceStatsList *native_i = (BlockDeviceStatsList *)i; 1945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceStats(m, &native_i->value, NULL, &err); 1946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 1951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 1952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockStats_fields(Visitor *m, BlockStats ** obj, Error **errp) 1958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_device : NULL, "device", &err); 1961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_device) { 1962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 1963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceStats(m, obj ? &(*obj)->stats : NULL, "stats", &err); 1966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_parent : NULL, "parent", &err); 1967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_parent) { 1968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockStats(m, obj ? &(*obj)->parent : NULL, "parent", &err); 1969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 1971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockStats(Visitor *m, BlockStats ** obj, const char *name, Error **errp) 1976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockStats", name, sizeof(BlockStats), &err); 1980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 1981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 1982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockStats_fields(m, obj, &err); 1983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 1985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 1987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 1988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 1990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 1991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 1992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockStatsList(Visitor *m, BlockStatsList ** obj, const char *name, Error **errp) 1994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 1995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 1996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 1997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 1998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 1999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockStatsList *native_i = (BlockStatsList *)i; 2003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockStats(m, &native_i->value, NULL, &err); 2004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_VncClientInfo_fields(Visitor *m, VncClientInfo ** obj, Error **errp) 2016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 2019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->family : NULL, "family", &err); 2020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->service : NULL, "service", &err); 2021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_x509_dname : NULL, "x509_dname", &err); 2022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_x509_dname) { 2023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->x509_dname : NULL, "x509_dname", &err); 2024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_sasl_username : NULL, "sasl_username", &err); 2027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_sasl_username) { 2028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->sasl_username : NULL, "sasl_username", &err); 2029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_VncClientInfo(Visitor *m, VncClientInfo ** obj, const char *name, Error **errp) 2036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "VncClientInfo", name, sizeof(VncClientInfo), &err); 2040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_VncClientInfo_fields(m, obj, &err); 2043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_VncClientInfoList(Visitor *m, VncClientInfoList ** obj, const char *name, Error **errp) 2054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner VncClientInfoList *native_i = (VncClientInfoList *)i; 2063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_VncClientInfo(m, &native_i->value, NULL, &err); 2064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_VncInfo_fields(Visitor *m, VncInfo ** obj, Error **errp) 2076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->enabled : NULL, "enabled", &err); 2079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_host : NULL, "host", &err); 2080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_host) { 2081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 2082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_family : NULL, "family", &err); 2085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_family) { 2086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->family : NULL, "family", &err); 2087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_service : NULL, "service", &err); 2090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_service) { 2091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->service : NULL, "service", &err); 2092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_auth : NULL, "auth", &err); 2095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_auth) { 2096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->auth : NULL, "auth", &err); 2097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_clients : NULL, "clients", &err); 2100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_clients) { 2101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_VncClientInfoList(m, obj ? &(*obj)->clients : NULL, "clients", &err); 2102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_VncInfo(Visitor *m, VncInfo ** obj, const char *name, Error **errp) 2109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "VncInfo", name, sizeof(VncInfo), &err); 2113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_VncInfo_fields(m, obj, &err); 2116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_VncInfoList(Visitor *m, VncInfoList ** obj, const char *name, Error **errp) 2127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner VncInfoList *native_i = (VncInfoList *)i; 2136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_VncInfo(m, &native_i->value, NULL, &err); 2137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_SpiceChannel_fields(Visitor *m, SpiceChannel ** obj, Error **errp) 2149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 2152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->family : NULL, "family", &err); 2153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->port : NULL, "port", &err); 2154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->connection_id : NULL, "connection-id", &err); 2155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->channel_type : NULL, "channel-type", &err); 2156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->channel_id : NULL, "channel-id", &err); 2157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->tls : NULL, "tls", &err); 2158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SpiceChannel(Visitor *m, SpiceChannel ** obj, const char *name, Error **errp) 2163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "SpiceChannel", name, sizeof(SpiceChannel), &err); 2167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SpiceChannel_fields(m, obj, &err); 2170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SpiceChannelList(Visitor *m, SpiceChannelList ** obj, const char *name, Error **errp) 2181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner SpiceChannelList *native_i = (SpiceChannelList *)i; 2190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SpiceChannel(m, &native_i->value, NULL, &err); 2191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SpiceQueryMouseModeList(Visitor *m, SpiceQueryMouseModeList ** obj, const char *name, Error **errp) 2203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner SpiceQueryMouseModeList *native_i = (SpiceQueryMouseModeList *)i; 2212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SpiceQueryMouseMode(m, &native_i->value, NULL, &err); 2213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SpiceQueryMouseMode(Visitor *m, SpiceQueryMouseMode * obj, const char *name, Error **errp) 2225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, SpiceQueryMouseMode_lookup, "SpiceQueryMouseMode", name, errp); 2227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_SpiceInfo_fields(Visitor *m, SpiceInfo ** obj, Error **errp) 2230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->enabled : NULL, "enabled", &err); 2233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->migrated : NULL, "migrated", &err); 2234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_host : NULL, "host", &err); 2235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_host) { 2236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 2237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_port : NULL, "port", &err); 2240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_port) { 2241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->port : NULL, "port", &err); 2242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_tls_port : NULL, "tls-port", &err); 2245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_tls_port) { 2246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->tls_port : NULL, "tls-port", &err); 2247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_auth : NULL, "auth", &err); 2250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_auth) { 2251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->auth : NULL, "auth", &err); 2252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_compiled_version : NULL, "compiled-version", &err); 2255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_compiled_version) { 2256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->compiled_version : NULL, "compiled-version", &err); 2257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SpiceQueryMouseMode(m, obj ? &(*obj)->mouse_mode : NULL, "mouse-mode", &err); 2260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_channels : NULL, "channels", &err); 2261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_channels) { 2262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SpiceChannelList(m, obj ? &(*obj)->channels : NULL, "channels", &err); 2263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SpiceInfo(Visitor *m, SpiceInfo ** obj, const char *name, Error **errp) 2270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "SpiceInfo", name, sizeof(SpiceInfo), &err); 2274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SpiceInfo_fields(m, obj, &err); 2277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SpiceInfoList(Visitor *m, SpiceInfoList ** obj, const char *name, Error **errp) 2288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner SpiceInfoList *native_i = (SpiceInfoList *)i; 2297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SpiceInfo(m, &native_i->value, NULL, &err); 2298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BalloonInfo_fields(Visitor *m, BalloonInfo ** obj, Error **errp) 2310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->actual : NULL, "actual", &err); 2313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BalloonInfo(Visitor *m, BalloonInfo ** obj, const char *name, Error **errp) 2318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BalloonInfo", name, sizeof(BalloonInfo), &err); 2322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BalloonInfo_fields(m, obj, &err); 2325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BalloonInfoList(Visitor *m, BalloonInfoList ** obj, const char *name, Error **errp) 2336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BalloonInfoList *native_i = (BalloonInfoList *)i; 2345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BalloonInfo(m, &native_i->value, NULL, &err); 2346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_PciMemoryRange_fields(Visitor *m, PciMemoryRange ** obj, Error **errp) 2358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->base : NULL, "base", &err); 2361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->limit : NULL, "limit", &err); 2362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciMemoryRange(Visitor *m, PciMemoryRange ** obj, const char *name, Error **errp) 2367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "PciMemoryRange", name, sizeof(PciMemoryRange), &err); 2371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciMemoryRange_fields(m, obj, &err); 2374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciMemoryRangeList(Visitor *m, PciMemoryRangeList ** obj, const char *name, Error **errp) 2385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner PciMemoryRangeList *native_i = (PciMemoryRangeList *)i; 2394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciMemoryRange(m, &native_i->value, NULL, &err); 2395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_PciMemoryRegion_fields(Visitor *m, PciMemoryRegion ** obj, Error **errp) 2407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bar : NULL, "bar", &err); 2410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 2411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->address : NULL, "address", &err); 2412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->size : NULL, "size", &err); 2413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_prefetch : NULL, "prefetch", &err); 2414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_prefetch) { 2415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->prefetch : NULL, "prefetch", &err); 2416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_mem_type_64 : NULL, "mem_type_64", &err); 2419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_mem_type_64) { 2420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->mem_type_64 : NULL, "mem_type_64", &err); 2421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciMemoryRegion(Visitor *m, PciMemoryRegion ** obj, const char *name, Error **errp) 2428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "PciMemoryRegion", name, sizeof(PciMemoryRegion), &err); 2432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciMemoryRegion_fields(m, obj, &err); 2435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciMemoryRegionList(Visitor *m, PciMemoryRegionList ** obj, const char *name, Error **errp) 2446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner PciMemoryRegionList *native_i = (PciMemoryRegionList *)i; 2455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciMemoryRegion(m, &native_i->value, NULL, &err); 2456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_PciBridgeInfo_bus_fields(Visitor *m, PciBridgeInfo ** obj, Error **errp) 2468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bus.number : NULL, "number", &err); 2471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bus.secondary : NULL, "secondary", &err); 2472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bus.subordinate : NULL, "subordinate", &err); 2473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciMemoryRange(m, obj ? &(*obj)->bus.io_range : NULL, "io_range", &err); 2474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciMemoryRange(m, obj ? &(*obj)->bus.memory_range : NULL, "memory_range", &err); 2475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciMemoryRange(m, obj ? &(*obj)->bus.prefetchable_range : NULL, "prefetchable_range", &err); 2476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_PciBridgeInfo_fields(Visitor *m, PciBridgeInfo ** obj, Error **errp) 2481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error **errp = &err; /* from outer scope */ 2485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, NULL, "", "bus", 0, &err); 2487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciBridgeInfo_bus_fields(m, obj, &err); 2490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_devices : NULL, "devices", &err); 2499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_devices) { 2500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciDeviceInfoList(m, obj ? &(*obj)->devices : NULL, "devices", &err); 2501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciBridgeInfo(Visitor *m, PciBridgeInfo ** obj, const char *name, Error **errp) 2508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "PciBridgeInfo", name, sizeof(PciBridgeInfo), &err); 2512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciBridgeInfo_fields(m, obj, &err); 2515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciBridgeInfoList(Visitor *m, PciBridgeInfoList ** obj, const char *name, Error **errp) 2526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner PciBridgeInfoList *native_i = (PciBridgeInfoList *)i; 2535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciBridgeInfo(m, &native_i->value, NULL, &err); 2536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_PciDeviceInfo_class_info_fields(Visitor *m, PciDeviceInfo ** obj, Error **errp) 2548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->class_info.has_desc : NULL, "desc", &err); 2551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->class_info.has_desc) { 2552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->class_info.desc : NULL, "desc", &err); 2553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->class_info.q_class : NULL, "class", &err); 2556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_PciDeviceInfo_id_fields(Visitor *m, PciDeviceInfo ** obj, Error **errp) 2561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->id.device : NULL, "device", &err); 2564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->id.vendor : NULL, "vendor", &err); 2565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_PciDeviceInfo_fields(Visitor *m, PciDeviceInfo ** obj, Error **errp) 2570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bus : NULL, "bus", &err); 2573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->slot : NULL, "slot", &err); 2574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->function : NULL, "function", &err); 2575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error **errp = &err; /* from outer scope */ 2577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, NULL, "", "class_info", 0, &err); 2579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciDeviceInfo_class_info_fields(m, obj, &err); 2582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error **errp = &err; /* from outer scope */ 2592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, NULL, "", "id", 0, &err); 2594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciDeviceInfo_id_fields(m, obj, &err); 2597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_irq : NULL, "irq", &err); 2606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_irq) { 2607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->irq : NULL, "irq", &err); 2608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->qdev_id : NULL, "qdev_id", &err); 2611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_pci_bridge : NULL, "pci_bridge", &err); 2612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_pci_bridge) { 2613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciBridgeInfo(m, obj ? &(*obj)->pci_bridge : NULL, "pci_bridge", &err); 2614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciMemoryRegionList(m, obj ? &(*obj)->regions : NULL, "regions", &err); 2617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciDeviceInfo(Visitor *m, PciDeviceInfo ** obj, const char *name, Error **errp) 2622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "PciDeviceInfo", name, sizeof(PciDeviceInfo), &err); 2626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciDeviceInfo_fields(m, obj, &err); 2629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciDeviceInfoList(Visitor *m, PciDeviceInfoList ** obj, const char *name, Error **errp) 2640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner PciDeviceInfoList *native_i = (PciDeviceInfoList *)i; 2649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciDeviceInfo(m, &native_i->value, NULL, &err); 2650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_PciInfo_fields(Visitor *m, PciInfo ** obj, Error **errp) 2662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->bus : NULL, "bus", &err); 2665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciDeviceInfoList(m, obj ? &(*obj)->devices : NULL, "devices", &err); 2666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciInfo(Visitor *m, PciInfo ** obj, const char *name, Error **errp) 2671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "PciInfo", name, sizeof(PciInfo), &err); 2675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciInfo_fields(m, obj, &err); 2678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_PciInfoList(Visitor *m, PciInfoList ** obj, const char *name, Error **errp) 2689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner PciInfoList *native_i = (PciInfoList *)i; 2698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_PciInfo(m, &native_i->value, NULL, &err); 2699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOnErrorList(Visitor *m, BlockdevOnErrorList ** obj, const char *name, Error **errp) 2711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevOnErrorList *native_i = (BlockdevOnErrorList *)i; 2720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOnError(m, &native_i->value, NULL, &err); 2721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOnError(Visitor *m, BlockdevOnError * obj, const char *name, Error **errp) 2733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, BlockdevOnError_lookup, "BlockdevOnError", name, errp); 2735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MirrorSyncModeList(Visitor *m, MirrorSyncModeList ** obj, const char *name, Error **errp) 2738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner MirrorSyncModeList *native_i = (MirrorSyncModeList *)i; 2747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MirrorSyncMode(m, &native_i->value, NULL, &err); 2748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MirrorSyncMode(Visitor *m, MirrorSyncMode * obj, const char *name, Error **errp) 2760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, MirrorSyncMode_lookup, "MirrorSyncMode", name, errp); 2762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockJobTypeList(Visitor *m, BlockJobTypeList ** obj, const char *name, Error **errp) 2765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockJobTypeList *native_i = (BlockJobTypeList *)i; 2774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockJobType(m, &native_i->value, NULL, &err); 2775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockJobType(Visitor *m, BlockJobType * obj, const char *name, Error **errp) 2787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, BlockJobType_lookup, "BlockJobType", name, errp); 2789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockJobInfo_fields(Visitor *m, BlockJobInfo ** obj, Error **errp) 2792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 2795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 2796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->len : NULL, "len", &err); 2797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->offset : NULL, "offset", &err); 2798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->busy : NULL, "busy", &err); 2799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->paused : NULL, "paused", &err); 2800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->speed : NULL, "speed", &err); 2801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockDeviceIoStatus(m, obj ? &(*obj)->io_status : NULL, "io-status", &err); 2802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockJobInfo(Visitor *m, BlockJobInfo ** obj, const char *name, Error **errp) 2807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockJobInfo", name, sizeof(BlockJobInfo), &err); 2811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockJobInfo_fields(m, obj, &err); 2814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockJobInfoList(Visitor *m, BlockJobInfoList ** obj, const char *name, Error **errp) 2825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockJobInfoList *native_i = (BlockJobInfoList *)i; 2834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockJobInfo(m, &native_i->value, NULL, &err); 2835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NewImageModeList(Visitor *m, NewImageModeList ** obj, const char *name, Error **errp) 2847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NewImageModeList *native_i = (NewImageModeList *)i; 2856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NewImageMode(m, &native_i->value, NULL, &err); 2857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NewImageMode(Visitor *m, NewImageMode * obj, const char *name, Error **errp) 2869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, NewImageMode_lookup, "NewImageMode", name, errp); 2871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevSnapshot_fields(Visitor *m, BlockdevSnapshot ** obj, Error **errp) 2874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 2877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->snapshot_file : NULL, "snapshot-file", &err); 2878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_format : NULL, "format", &err); 2879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_format) { 2880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->format : NULL, "format", &err); 2881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_mode : NULL, "mode", &err); 2884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_mode) { 2885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NewImageMode(m, obj ? &(*obj)->mode : NULL, "mode", &err); 2886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevSnapshot(Visitor *m, BlockdevSnapshot ** obj, const char *name, Error **errp) 2893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevSnapshot", name, sizeof(BlockdevSnapshot), &err); 2897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevSnapshot_fields(m, obj, &err); 2900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevSnapshotList(Visitor *m, BlockdevSnapshotList ** obj, const char *name, Error **errp) 2911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevSnapshotList *native_i = (BlockdevSnapshotList *)i; 2920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevSnapshot(m, &native_i->value, NULL, &err); 2921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevSnapshotInternal_fields(Visitor *m, BlockdevSnapshotInternal ** obj, Error **errp) 2933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 2936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 2937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevSnapshotInternal(Visitor *m, BlockdevSnapshotInternal ** obj, const char *name, Error **errp) 2942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevSnapshotInternal", name, sizeof(BlockdevSnapshotInternal), &err); 2946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 2948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevSnapshotInternal_fields(m, obj, &err); 2949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 2953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 2954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevSnapshotInternalList(Visitor *m, BlockdevSnapshotInternalList ** obj, const char *name, Error **errp) 2960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 2962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 2965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 2966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 2967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 2968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevSnapshotInternalList *native_i = (BlockdevSnapshotInternalList *)i; 2969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevSnapshotInternal(m, &native_i->value, NULL, &err); 2970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 2973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 2975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 2976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 2978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 2980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 2981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_DriveBackup_fields(Visitor *m, DriveBackup ** obj, Error **errp) 2982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 2983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 2984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 2985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->target : NULL, "target", &err); 2986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_format : NULL, "format", &err); 2987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_format) { 2988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->format : NULL, "format", &err); 2989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MirrorSyncMode(m, obj ? &(*obj)->sync : NULL, "sync", &err); 2992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_mode : NULL, "mode", &err); 2993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_mode) { 2994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NewImageMode(m, obj ? &(*obj)->mode : NULL, "mode", &err); 2995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 2996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 2997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_speed : NULL, "speed", &err); 2998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_speed) { 2999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->speed : NULL, "speed", &err); 3000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_on_source_error : NULL, "on-source-error", &err); 3003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_on_source_error) { 3004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOnError(m, obj ? &(*obj)->on_source_error : NULL, "on-source-error", &err); 3005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_on_target_error : NULL, "on-target-error", &err); 3008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_on_target_error) { 3009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOnError(m, obj ? &(*obj)->on_target_error : NULL, "on-target-error", &err); 3010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_DriveBackup(Visitor *m, DriveBackup ** obj, const char *name, Error **errp) 3017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "DriveBackup", name, sizeof(DriveBackup), &err); 3021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_DriveBackup_fields(m, obj, &err); 3024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_DriveBackupList(Visitor *m, DriveBackupList ** obj, const char *name, Error **errp) 3035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner DriveBackupList *native_i = (DriveBackupList *)i; 3044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_DriveBackup(m, &native_i->value, NULL, &err); 3045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_Abort_fields(Visitor *m, Abort ** obj, Error **errp) 3057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_Abort(Visitor *m, Abort ** obj, const char *name, Error **errp) 3064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "Abort", name, sizeof(Abort), &err); 3068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_Abort_fields(m, obj, &err); 3071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_AbortList(Visitor *m, AbortList ** obj, const char *name, Error **errp) 3082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner AbortList *native_i = (AbortList *)i; 3091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_Abort(m, &native_i->value, NULL, &err); 3092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TransactionActionKind(Visitor *m, TransactionActionKind * obj, const char *name, Error **errp) 3104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, TransactionActionKind_lookup, "TransactionActionKind", name, errp); 3106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TransactionAction(Visitor *m, TransactionAction ** obj, const char *name, Error **errp) 3109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "TransactionAction", name, sizeof(TransactionAction), &err); 3114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && *obj) { 3116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TransactionActionKind(m, &(*obj)->kind, "type", &err); 3117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 3119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_SYNC: 3120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevSnapshot(m, &(*obj)->blockdev_snapshot_sync, "data", &err); 3121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 3122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case TRANSACTION_ACTION_KIND_DRIVE_BACKUP: 3123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_DriveBackup(m, &(*obj)->drive_backup, "data", &err); 3124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 3125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case TRANSACTION_ACTION_KIND_ABORT: 3126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_Abort(m, &(*obj)->abort, "data", &err); 3127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 3128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_INTERNAL_SYNC: 3129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevSnapshotInternal(m, &(*obj)->blockdev_snapshot_internal_sync, "data", &err); 3130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 3131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 3132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 3133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TransactionActionList(Visitor *m, TransactionActionList ** obj, const char *name, Error **errp) 3146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner TransactionActionList *native_i = (TransactionActionList *)i; 3155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TransactionAction(m, &native_i->value, NULL, &err); 3156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ObjectPropertyInfo_fields(Visitor *m, ObjectPropertyInfo ** obj, Error **errp) 3168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 3171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 3172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ObjectPropertyInfo(Visitor *m, ObjectPropertyInfo ** obj, const char *name, Error **errp) 3177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ObjectPropertyInfo", name, sizeof(ObjectPropertyInfo), &err); 3181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ObjectPropertyInfo_fields(m, obj, &err); 3184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ObjectPropertyInfoList(Visitor *m, ObjectPropertyInfoList ** obj, const char *name, Error **errp) 3195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ObjectPropertyInfoList *native_i = (ObjectPropertyInfoList *)i; 3204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ObjectPropertyInfo(m, &native_i->value, NULL, &err); 3205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ObjectTypeInfo_fields(Visitor *m, ObjectTypeInfo ** obj, Error **errp) 3217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 3220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ObjectTypeInfo(Visitor *m, ObjectTypeInfo ** obj, const char *name, Error **errp) 3225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ObjectTypeInfo", name, sizeof(ObjectTypeInfo), &err); 3229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ObjectTypeInfo_fields(m, obj, &err); 3232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ObjectTypeInfoList(Visitor *m, ObjectTypeInfoList ** obj, const char *name, Error **errp) 3243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ObjectTypeInfoList *native_i = (ObjectTypeInfoList *)i; 3252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ObjectTypeInfo(m, &native_i->value, NULL, &err); 3253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_DevicePropertyInfo_fields(Visitor *m, DevicePropertyInfo ** obj, Error **errp) 3265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 3268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 3269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_DevicePropertyInfo(Visitor *m, DevicePropertyInfo ** obj, const char *name, Error **errp) 3274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "DevicePropertyInfo", name, sizeof(DevicePropertyInfo), &err); 3278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_DevicePropertyInfo_fields(m, obj, &err); 3281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_DevicePropertyInfoList(Visitor *m, DevicePropertyInfoList ** obj, const char *name, Error **errp) 3292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner DevicePropertyInfoList *native_i = (DevicePropertyInfoList *)i; 3301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_DevicePropertyInfo(m, &native_i->value, NULL, &err); 3302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevNoneOptions_fields(Visitor *m, NetdevNoneOptions ** obj, Error **errp) 3314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevNoneOptions(Visitor *m, NetdevNoneOptions ** obj, const char *name, Error **errp) 3321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevNoneOptions", name, sizeof(NetdevNoneOptions), &err); 3325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevNoneOptions_fields(m, obj, &err); 3328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevNoneOptionsList(Visitor *m, NetdevNoneOptionsList ** obj, const char *name, Error **errp) 3339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevNoneOptionsList *native_i = (NetdevNoneOptionsList *)i; 3348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevNoneOptions(m, &native_i->value, NULL, &err); 3349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetLegacyNicOptions_fields(Visitor *m, NetLegacyNicOptions ** obj, Error **errp) 3361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_netdev : NULL, "netdev", &err); 3364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_netdev) { 3365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->netdev : NULL, "netdev", &err); 3366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_macaddr : NULL, "macaddr", &err); 3369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_macaddr) { 3370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->macaddr : NULL, "macaddr", &err); 3371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_model : NULL, "model", &err); 3374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_model) { 3375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->model : NULL, "model", &err); 3376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_addr : NULL, "addr", &err); 3379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_addr) { 3380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->addr : NULL, "addr", &err); 3381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_vectors : NULL, "vectors", &err); 3384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_vectors) { 3385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint32(m, obj ? &(*obj)->vectors : NULL, "vectors", &err); 3386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetLegacyNicOptions(Visitor *m, NetLegacyNicOptions ** obj, const char *name, Error **errp) 3393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetLegacyNicOptions", name, sizeof(NetLegacyNicOptions), &err); 3397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetLegacyNicOptions_fields(m, obj, &err); 3400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetLegacyNicOptionsList(Visitor *m, NetLegacyNicOptionsList ** obj, const char *name, Error **errp) 3411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetLegacyNicOptionsList *native_i = (NetLegacyNicOptionsList *)i; 3420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetLegacyNicOptions(m, &native_i->value, NULL, &err); 3421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_String_fields(Visitor *m, String ** obj, Error **errp) 3433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->str : NULL, "str", &err); 3436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_String(Visitor *m, String ** obj, const char *name, Error **errp) 3441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "String", name, sizeof(String), &err); 3445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_String_fields(m, obj, &err); 3448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_StringList(Visitor *m, StringList ** obj, const char *name, Error **errp) 3459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner StringList *native_i = (StringList *)i; 3468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_String(m, &native_i->value, NULL, &err); 3469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevUserOptions_fields(Visitor *m, NetdevUserOptions ** obj, Error **errp) 3481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_hostname : NULL, "hostname", &err); 3484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_hostname) { 3485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->hostname : NULL, "hostname", &err); 3486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_q_restrict : NULL, "restrict", &err); 3489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_q_restrict) { 3490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->q_restrict : NULL, "restrict", &err); 3491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_ip : NULL, "ip", &err); 3494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_ip) { 3495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->ip : NULL, "ip", &err); 3496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_net : NULL, "net", &err); 3499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_net) { 3500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->net : NULL, "net", &err); 3501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_host : NULL, "host", &err); 3504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_host) { 3505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 3506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_tftp : NULL, "tftp", &err); 3509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_tftp) { 3510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->tftp : NULL, "tftp", &err); 3511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_bootfile : NULL, "bootfile", &err); 3514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_bootfile) { 3515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->bootfile : NULL, "bootfile", &err); 3516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_dhcpstart : NULL, "dhcpstart", &err); 3519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_dhcpstart) { 3520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->dhcpstart : NULL, "dhcpstart", &err); 3521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_dns : NULL, "dns", &err); 3524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_dns) { 3525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->dns : NULL, "dns", &err); 3526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_dnssearch : NULL, "dnssearch", &err); 3529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_dnssearch) { 3530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_StringList(m, obj ? &(*obj)->dnssearch : NULL, "dnssearch", &err); 3531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_smb : NULL, "smb", &err); 3534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_smb) { 3535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->smb : NULL, "smb", &err); 3536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_smbserver : NULL, "smbserver", &err); 3539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_smbserver) { 3540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->smbserver : NULL, "smbserver", &err); 3541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_hostfwd : NULL, "hostfwd", &err); 3544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_hostfwd) { 3545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_StringList(m, obj ? &(*obj)->hostfwd : NULL, "hostfwd", &err); 3546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_guestfwd : NULL, "guestfwd", &err); 3549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_guestfwd) { 3550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_StringList(m, obj ? &(*obj)->guestfwd : NULL, "guestfwd", &err); 3551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevUserOptions(Visitor *m, NetdevUserOptions ** obj, const char *name, Error **errp) 3558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevUserOptions", name, sizeof(NetdevUserOptions), &err); 3562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevUserOptions_fields(m, obj, &err); 3565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevUserOptionsList(Visitor *m, NetdevUserOptionsList ** obj, const char *name, Error **errp) 3576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevUserOptionsList *native_i = (NetdevUserOptionsList *)i; 3585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevUserOptions(m, &native_i->value, NULL, &err); 3586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevTapOptions_fields(Visitor *m, NetdevTapOptions ** obj, Error **errp) 3598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_ifname : NULL, "ifname", &err); 3601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_ifname) { 3602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->ifname : NULL, "ifname", &err); 3603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_fd : NULL, "fd", &err); 3606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_fd) { 3607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->fd : NULL, "fd", &err); 3608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_fds : NULL, "fds", &err); 3611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_fds) { 3612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->fds : NULL, "fds", &err); 3613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_script : NULL, "script", &err); 3616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_script) { 3617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->script : NULL, "script", &err); 3618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_downscript : NULL, "downscript", &err); 3621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_downscript) { 3622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->downscript : NULL, "downscript", &err); 3623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_helper : NULL, "helper", &err); 3626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_helper) { 3627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->helper : NULL, "helper", &err); 3628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_sndbuf : NULL, "sndbuf", &err); 3631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_sndbuf) { 3632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_size(m, obj ? &(*obj)->sndbuf : NULL, "sndbuf", &err); 3633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_vnet_hdr : NULL, "vnet_hdr", &err); 3636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_vnet_hdr) { 3637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->vnet_hdr : NULL, "vnet_hdr", &err); 3638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_vhost : NULL, "vhost", &err); 3641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_vhost) { 3642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->vhost : NULL, "vhost", &err); 3643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_vhostfd : NULL, "vhostfd", &err); 3646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_vhostfd) { 3647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->vhostfd : NULL, "vhostfd", &err); 3648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_vhostfds : NULL, "vhostfds", &err); 3651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_vhostfds) { 3652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->vhostfds : NULL, "vhostfds", &err); 3653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_vhostforce : NULL, "vhostforce", &err); 3656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_vhostforce) { 3657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->vhostforce : NULL, "vhostforce", &err); 3658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_queues : NULL, "queues", &err); 3661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_queues) { 3662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint32(m, obj ? &(*obj)->queues : NULL, "queues", &err); 3663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevTapOptions(Visitor *m, NetdevTapOptions ** obj, const char *name, Error **errp) 3670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevTapOptions", name, sizeof(NetdevTapOptions), &err); 3674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevTapOptions_fields(m, obj, &err); 3677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevTapOptionsList(Visitor *m, NetdevTapOptionsList ** obj, const char *name, Error **errp) 3688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevTapOptionsList *native_i = (NetdevTapOptionsList *)i; 3697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevTapOptions(m, &native_i->value, NULL, &err); 3698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevSocketOptions_fields(Visitor *m, NetdevSocketOptions ** obj, Error **errp) 3710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_fd : NULL, "fd", &err); 3713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_fd) { 3714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->fd : NULL, "fd", &err); 3715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_listen : NULL, "listen", &err); 3718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_listen) { 3719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->listen : NULL, "listen", &err); 3720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_connect : NULL, "connect", &err); 3723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_connect) { 3724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->connect : NULL, "connect", &err); 3725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_mcast : NULL, "mcast", &err); 3728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_mcast) { 3729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->mcast : NULL, "mcast", &err); 3730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_localaddr : NULL, "localaddr", &err); 3733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_localaddr) { 3734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->localaddr : NULL, "localaddr", &err); 3735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_udp : NULL, "udp", &err); 3738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_udp) { 3739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->udp : NULL, "udp", &err); 3740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevSocketOptions(Visitor *m, NetdevSocketOptions ** obj, const char *name, Error **errp) 3747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevSocketOptions", name, sizeof(NetdevSocketOptions), &err); 3751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevSocketOptions_fields(m, obj, &err); 3754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevSocketOptionsList(Visitor *m, NetdevSocketOptionsList ** obj, const char *name, Error **errp) 3765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevSocketOptionsList *native_i = (NetdevSocketOptionsList *)i; 3774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevSocketOptions(m, &native_i->value, NULL, &err); 3775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevVdeOptions_fields(Visitor *m, NetdevVdeOptions ** obj, Error **errp) 3787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_sock : NULL, "sock", &err); 3790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_sock) { 3791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->sock : NULL, "sock", &err); 3792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_port : NULL, "port", &err); 3795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_port) { 3796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint16(m, obj ? &(*obj)->port : NULL, "port", &err); 3797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_group : NULL, "group", &err); 3800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_group) { 3801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->group : NULL, "group", &err); 3802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_mode : NULL, "mode", &err); 3805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_mode) { 3806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint16(m, obj ? &(*obj)->mode : NULL, "mode", &err); 3807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevVdeOptions(Visitor *m, NetdevVdeOptions ** obj, const char *name, Error **errp) 3814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevVdeOptions", name, sizeof(NetdevVdeOptions), &err); 3818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevVdeOptions_fields(m, obj, &err); 3821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevVdeOptionsList(Visitor *m, NetdevVdeOptionsList ** obj, const char *name, Error **errp) 3832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevVdeOptionsList *native_i = (NetdevVdeOptionsList *)i; 3841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevVdeOptions(m, &native_i->value, NULL, &err); 3842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevDumpOptions_fields(Visitor *m, NetdevDumpOptions ** obj, Error **errp) 3854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_len : NULL, "len", &err); 3857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_len) { 3858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_size(m, obj ? &(*obj)->len : NULL, "len", &err); 3859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_file : NULL, "file", &err); 3862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_file) { 3863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->file : NULL, "file", &err); 3864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevDumpOptions(Visitor *m, NetdevDumpOptions ** obj, const char *name, Error **errp) 3871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevDumpOptions", name, sizeof(NetdevDumpOptions), &err); 3875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevDumpOptions_fields(m, obj, &err); 3878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevDumpOptionsList(Visitor *m, NetdevDumpOptionsList ** obj, const char *name, Error **errp) 3889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevDumpOptionsList *native_i = (NetdevDumpOptionsList *)i; 3898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevDumpOptions(m, &native_i->value, NULL, &err); 3899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevBridgeOptions_fields(Visitor *m, NetdevBridgeOptions ** obj, Error **errp) 3911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_br : NULL, "br", &err); 3914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_br) { 3915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->br : NULL, "br", &err); 3916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_helper : NULL, "helper", &err); 3919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_helper) { 3920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->helper : NULL, "helper", &err); 3921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 3923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevBridgeOptions(Visitor *m, NetdevBridgeOptions ** obj, const char *name, Error **errp) 3928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevBridgeOptions", name, sizeof(NetdevBridgeOptions), &err); 3932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevBridgeOptions_fields(m, obj, &err); 3935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevBridgeOptionsList(Visitor *m, NetdevBridgeOptionsList ** obj, const char *name, Error **errp) 3946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 3952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 3954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevBridgeOptionsList *native_i = (NetdevBridgeOptionsList *)i; 3955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevBridgeOptions(m, &native_i->value, NULL, &err); 3956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 3961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 3962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevHubPortOptions_fields(Visitor *m, NetdevHubPortOptions ** obj, Error **errp) 3968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int32(m, obj ? &(*obj)->hubid : NULL, "hubid", &err); 3971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevHubPortOptions(Visitor *m, NetdevHubPortOptions ** obj, const char *name, Error **errp) 3976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevHubPortOptions", name, sizeof(NetdevHubPortOptions), &err); 3980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 3981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 3982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevHubPortOptions_fields(m, obj, &err); 3983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 3985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 3987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 3988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 3990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 3991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 3992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevHubPortOptionsList(Visitor *m, NetdevHubPortOptionsList ** obj, const char *name, Error **errp) 3994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 3995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 3996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 3997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 3998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 3999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevHubPortOptionsList *native_i = (NetdevHubPortOptionsList *)i; 4003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevHubPortOptions(m, &native_i->value, NULL, &err); 4004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetdevNetmapOptions_fields(Visitor *m, NetdevNetmapOptions ** obj, Error **errp) 4016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->ifname : NULL, "ifname", &err); 4019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_devname : NULL, "devname", &err); 4020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_devname) { 4021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->devname : NULL, "devname", &err); 4022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevNetmapOptions(Visitor *m, NetdevNetmapOptions ** obj, const char *name, Error **errp) 4029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetdevNetmapOptions", name, sizeof(NetdevNetmapOptions), &err); 4033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevNetmapOptions_fields(m, obj, &err); 4036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevNetmapOptionsList(Visitor *m, NetdevNetmapOptionsList ** obj, const char *name, Error **errp) 4047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevNetmapOptionsList *native_i = (NetdevNetmapOptionsList *)i; 4056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevNetmapOptions(m, &native_i->value, NULL, &err); 4057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetClientOptionsKind(Visitor *m, NetClientOptionsKind * obj, const char *name, Error **errp) 4069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, NetClientOptionsKind_lookup, "NetClientOptionsKind", name, errp); 4071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetClientOptions(Visitor *m, NetClientOptions ** obj, const char *name, Error **errp) 4074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetClientOptions", name, sizeof(NetClientOptions), &err); 4079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && *obj) { 4081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetClientOptionsKind(m, &(*obj)->kind, "type", &err); 4082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 4084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_NONE: 4085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevNoneOptions(m, &(*obj)->none, "data", &err); 4086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_NIC: 4088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetLegacyNicOptions(m, &(*obj)->nic, "data", &err); 4089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_USER: 4091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevUserOptions(m, &(*obj)->user, "data", &err); 4092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_TAP: 4094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevTapOptions(m, &(*obj)->tap, "data", &err); 4095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_SOCKET: 4097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevSocketOptions(m, &(*obj)->socket, "data", &err); 4098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_VDE: 4100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevVdeOptions(m, &(*obj)->vde, "data", &err); 4101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_DUMP: 4103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevDumpOptions(m, &(*obj)->dump, "data", &err); 4104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_BRIDGE: 4106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevBridgeOptions(m, &(*obj)->bridge, "data", &err); 4107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_HUBPORT: 4109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevHubPortOptions(m, &(*obj)->hubport, "data", &err); 4110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case NET_CLIENT_OPTIONS_KIND_NETMAP: 4112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetdevNetmapOptions(m, &(*obj)->netmap, "data", &err); 4113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 4115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 4116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetClientOptionsList(Visitor *m, NetClientOptionsList ** obj, const char *name, Error **errp) 4129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetClientOptionsList *native_i = (NetClientOptionsList *)i; 4138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetClientOptions(m, &native_i->value, NULL, &err); 4139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_NetLegacy_fields(Visitor *m, NetLegacy ** obj, Error **errp) 4151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_vlan : NULL, "vlan", &err); 4154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_vlan) { 4155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int32(m, obj ? &(*obj)->vlan : NULL, "vlan", &err); 4156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_id : NULL, "id", &err); 4159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_id) { 4160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 4161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_name : NULL, "name", &err); 4164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_name) { 4165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 4166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetClientOptions(m, obj ? &(*obj)->opts : NULL, "opts", &err); 4169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetLegacy(Visitor *m, NetLegacy ** obj, const char *name, Error **errp) 4174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "NetLegacy", name, sizeof(NetLegacy), &err); 4178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetLegacy_fields(m, obj, &err); 4181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetLegacyList(Visitor *m, NetLegacyList ** obj, const char *name, Error **errp) 4192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetLegacyList *native_i = (NetLegacyList *)i; 4201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetLegacy(m, &native_i->value, NULL, &err); 4202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_Netdev_fields(Visitor *m, Netdev ** obj, Error **errp) 4214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 4217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_NetClientOptions(m, obj ? &(*obj)->opts : NULL, "opts", &err); 4218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_Netdev(Visitor *m, Netdev ** obj, const char *name, Error **errp) 4223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "Netdev", name, sizeof(Netdev), &err); 4227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_Netdev_fields(m, obj, &err); 4230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_NetdevList(Visitor *m, NetdevList ** obj, const char *name, Error **errp) 4241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner NetdevList *native_i = (NetdevList *)i; 4250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_Netdev(m, &native_i->value, NULL, &err); 4251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_InetSocketAddress_fields(Visitor *m, InetSocketAddress ** obj, Error **errp) 4263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->host : NULL, "host", &err); 4266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->port : NULL, "port", &err); 4267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_to : NULL, "to", &err); 4268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_to) { 4269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint16(m, obj ? &(*obj)->to : NULL, "to", &err); 4270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_ipv4 : NULL, "ipv4", &err); 4273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_ipv4) { 4274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->ipv4 : NULL, "ipv4", &err); 4275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_ipv6 : NULL, "ipv6", &err); 4278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_ipv6) { 4279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->ipv6 : NULL, "ipv6", &err); 4280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_InetSocketAddress(Visitor *m, InetSocketAddress ** obj, const char *name, Error **errp) 4287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "InetSocketAddress", name, sizeof(InetSocketAddress), &err); 4291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_InetSocketAddress_fields(m, obj, &err); 4294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_InetSocketAddressList(Visitor *m, InetSocketAddressList ** obj, const char *name, Error **errp) 4305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner InetSocketAddressList *native_i = (InetSocketAddressList *)i; 4314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_InetSocketAddress(m, &native_i->value, NULL, &err); 4315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_UnixSocketAddress_fields(Visitor *m, UnixSocketAddress ** obj, Error **errp) 4327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->path : NULL, "path", &err); 4330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_UnixSocketAddress(Visitor *m, UnixSocketAddress ** obj, const char *name, Error **errp) 4335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "UnixSocketAddress", name, sizeof(UnixSocketAddress), &err); 4339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_UnixSocketAddress_fields(m, obj, &err); 4342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_UnixSocketAddressList(Visitor *m, UnixSocketAddressList ** obj, const char *name, Error **errp) 4353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner UnixSocketAddressList *native_i = (UnixSocketAddressList *)i; 4362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_UnixSocketAddress(m, &native_i->value, NULL, &err); 4363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SocketAddressKind(Visitor *m, SocketAddressKind * obj, const char *name, Error **errp) 4375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, SocketAddressKind_lookup, "SocketAddressKind", name, errp); 4377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SocketAddress(Visitor *m, SocketAddress ** obj, const char *name, Error **errp) 4380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "SocketAddress", name, sizeof(SocketAddress), &err); 4385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && *obj) { 4387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SocketAddressKind(m, &(*obj)->kind, "type", &err); 4388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 4390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case SOCKET_ADDRESS_KIND_INET: 4391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_InetSocketAddress(m, &(*obj)->inet, "data", &err); 4392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case SOCKET_ADDRESS_KIND_UNIX: 4394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_UnixSocketAddress(m, &(*obj)->q_unix, "data", &err); 4395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case SOCKET_ADDRESS_KIND_FD: 4397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_String(m, &(*obj)->fd, "data", &err); 4398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 4400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 4401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_SocketAddressList(Visitor *m, SocketAddressList ** obj, const char *name, Error **errp) 4414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner SocketAddressList *native_i = (SocketAddressList *)i; 4423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SocketAddress(m, &native_i->value, NULL, &err); 4424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_MachineInfo_fields(Visitor *m, MachineInfo ** obj, Error **errp) 4436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 4439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_alias : NULL, "alias", &err); 4440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_alias) { 4441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->alias : NULL, "alias", &err); 4442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_is_default : NULL, "is-default", &err); 4445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_is_default) { 4446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->is_default : NULL, "is-default", &err); 4447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->cpu_max : NULL, "cpu-max", &err); 4450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MachineInfo(Visitor *m, MachineInfo ** obj, const char *name, Error **errp) 4455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "MachineInfo", name, sizeof(MachineInfo), &err); 4459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MachineInfo_fields(m, obj, &err); 4462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_MachineInfoList(Visitor *m, MachineInfoList ** obj, const char *name, Error **errp) 4473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner MachineInfoList *native_i = (MachineInfoList *)i; 4482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_MachineInfo(m, &native_i->value, NULL, &err); 4483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_CpuDefinitionInfo_fields(Visitor *m, CpuDefinitionInfo ** obj, Error **errp) 4495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 4498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CpuDefinitionInfo(Visitor *m, CpuDefinitionInfo ** obj, const char *name, Error **errp) 4503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "CpuDefinitionInfo", name, sizeof(CpuDefinitionInfo), &err); 4507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CpuDefinitionInfo_fields(m, obj, &err); 4510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CpuDefinitionInfoList(Visitor *m, CpuDefinitionInfoList ** obj, const char *name, Error **errp) 4521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner CpuDefinitionInfoList *native_i = (CpuDefinitionInfoList *)i; 4530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CpuDefinitionInfo(m, &native_i->value, NULL, &err); 4531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_AddfdInfo_fields(Visitor *m, AddfdInfo ** obj, Error **errp) 4543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->fdset_id : NULL, "fdset-id", &err); 4546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->fd : NULL, "fd", &err); 4547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_AddfdInfo(Visitor *m, AddfdInfo ** obj, const char *name, Error **errp) 4552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "AddfdInfo", name, sizeof(AddfdInfo), &err); 4556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_AddfdInfo_fields(m, obj, &err); 4559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_AddfdInfoList(Visitor *m, AddfdInfoList ** obj, const char *name, Error **errp) 4570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner AddfdInfoList *native_i = (AddfdInfoList *)i; 4579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_AddfdInfo(m, &native_i->value, NULL, &err); 4580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_FdsetFdInfo_fields(Visitor *m, FdsetFdInfo ** obj, Error **errp) 4592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->fd : NULL, "fd", &err); 4595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_opaque : NULL, "opaque", &err); 4596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_opaque) { 4597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->opaque : NULL, "opaque", &err); 4598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_FdsetFdInfo(Visitor *m, FdsetFdInfo ** obj, const char *name, Error **errp) 4605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "FdsetFdInfo", name, sizeof(FdsetFdInfo), &err); 4609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_FdsetFdInfo_fields(m, obj, &err); 4612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_FdsetFdInfoList(Visitor *m, FdsetFdInfoList ** obj, const char *name, Error **errp) 4623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner FdsetFdInfoList *native_i = (FdsetFdInfoList *)i; 4632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_FdsetFdInfo(m, &native_i->value, NULL, &err); 4633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_FdsetInfo_fields(Visitor *m, FdsetInfo ** obj, Error **errp) 4645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->fdset_id : NULL, "fdset-id", &err); 4648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_FdsetFdInfoList(m, obj ? &(*obj)->fds : NULL, "fds", &err); 4649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_FdsetInfo(Visitor *m, FdsetInfo ** obj, const char *name, Error **errp) 4654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "FdsetInfo", name, sizeof(FdsetInfo), &err); 4658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_FdsetInfo_fields(m, obj, &err); 4661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_FdsetInfoList(Visitor *m, FdsetInfoList ** obj, const char *name, Error **errp) 4672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner FdsetInfoList *native_i = (FdsetInfoList *)i; 4681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_FdsetInfo(m, &native_i->value, NULL, &err); 4682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_TargetInfo_fields(Visitor *m, TargetInfo ** obj, Error **errp) 4694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->arch : NULL, "arch", &err); 4697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TargetInfo(Visitor *m, TargetInfo ** obj, const char *name, Error **errp) 4702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "TargetInfo", name, sizeof(TargetInfo), &err); 4706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TargetInfo_fields(m, obj, &err); 4709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TargetInfoList(Visitor *m, TargetInfoList ** obj, const char *name, Error **errp) 4720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner TargetInfoList *native_i = (TargetInfoList *)i; 4729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TargetInfo(m, &native_i->value, NULL, &err); 4730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_QKeyCodeList(Visitor *m, QKeyCodeList ** obj, const char *name, Error **errp) 4742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner QKeyCodeList *native_i = (QKeyCodeList *)i; 4751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_QKeyCode(m, &native_i->value, NULL, &err); 4752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_QKeyCode(Visitor *m, QKeyCode * obj, const char *name, Error **errp) 4764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, QKeyCode_lookup, "QKeyCode", name, errp); 4766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_KeyValueKind(Visitor *m, KeyValueKind * obj, const char *name, Error **errp) 4769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, KeyValueKind_lookup, "KeyValueKind", name, errp); 4771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_KeyValue(Visitor *m, KeyValue ** obj, const char *name, Error **errp) 4774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "KeyValue", name, sizeof(KeyValue), &err); 4779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && *obj) { 4781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_KeyValueKind(m, &(*obj)->kind, "type", &err); 4782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 4784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case KEY_VALUE_KIND_NUMBER: 4785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, &(*obj)->number, "data", &err); 4786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case KEY_VALUE_KIND_QCODE: 4788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_QKeyCode(m, &(*obj)->qcode, "data", &err); 4789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 4790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 4791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 4792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_KeyValueList(Visitor *m, KeyValueList ** obj, const char *name, Error **errp) 4805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner KeyValueList *native_i = (KeyValueList *)i; 4814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_KeyValue(m, &native_i->value, NULL, &err); 4815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevFile_fields(Visitor *m, ChardevFile ** obj, Error **errp) 4827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_in : NULL, "in", &err); 4830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_in) { 4831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->in : NULL, "in", &err); 4832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->out : NULL, "out", &err); 4835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevFile(Visitor *m, ChardevFile ** obj, const char *name, Error **errp) 4840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevFile", name, sizeof(ChardevFile), &err); 4844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevFile_fields(m, obj, &err); 4847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevFileList(Visitor *m, ChardevFileList ** obj, const char *name, Error **errp) 4858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevFileList *native_i = (ChardevFileList *)i; 4867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevFile(m, &native_i->value, NULL, &err); 4868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevHostdev_fields(Visitor *m, ChardevHostdev ** obj, Error **errp) 4880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->device : NULL, "device", &err); 4883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevHostdev(Visitor *m, ChardevHostdev ** obj, const char *name, Error **errp) 4888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevHostdev", name, sizeof(ChardevHostdev), &err); 4892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevHostdev_fields(m, obj, &err); 4895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevHostdevList(Visitor *m, ChardevHostdevList ** obj, const char *name, Error **errp) 4906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevHostdevList *native_i = (ChardevHostdevList *)i; 4915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevHostdev(m, &native_i->value, NULL, &err); 4916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevSocket_fields(Visitor *m, ChardevSocket ** obj, Error **errp) 4928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SocketAddress(m, obj ? &(*obj)->addr : NULL, "addr", &err); 4931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_server : NULL, "server", &err); 4932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_server) { 4933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->server : NULL, "server", &err); 4934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_wait : NULL, "wait", &err); 4937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_wait) { 4938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->wait : NULL, "wait", &err); 4939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_nodelay : NULL, "nodelay", &err); 4942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_nodelay) { 4943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->nodelay : NULL, "nodelay", &err); 4944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_telnet : NULL, "telnet", &err); 4947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_telnet) { 4948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->telnet : NULL, "telnet", &err); 4949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 4951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevSocket(Visitor *m, ChardevSocket ** obj, const char *name, Error **errp) 4956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevSocket", name, sizeof(ChardevSocket), &err); 4960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 4962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSocket_fields(m, obj, &err); 4963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 4967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 4968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevSocketList(Visitor *m, ChardevSocketList ** obj, const char *name, Error **errp) 4974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 4976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 4979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 4980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 4981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 4982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevSocketList *native_i = (ChardevSocketList *)i; 4983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSocket(m, &native_i->value, NULL, &err); 4984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 4987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 4989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 4990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 4992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 4993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 4994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 4995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevUdp_fields(Visitor *m, ChardevUdp ** obj, Error **errp) 4996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 4997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 4998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SocketAddress(m, obj ? &(*obj)->remote : NULL, "remote", &err); 4999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_local : NULL, "local", &err); 5000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_local) { 5001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_SocketAddress(m, obj ? &(*obj)->local : NULL, "local", &err); 5002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevUdp(Visitor *m, ChardevUdp ** obj, const char *name, Error **errp) 5009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevUdp", name, sizeof(ChardevUdp), &err); 5013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevUdp_fields(m, obj, &err); 5016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevUdpList(Visitor *m, ChardevUdpList ** obj, const char *name, Error **errp) 5027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevUdpList *native_i = (ChardevUdpList *)i; 5036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevUdp(m, &native_i->value, NULL, &err); 5037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevMux_fields(Visitor *m, ChardevMux ** obj, Error **errp) 5049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->chardev : NULL, "chardev", &err); 5052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevMux(Visitor *m, ChardevMux ** obj, const char *name, Error **errp) 5057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevMux", name, sizeof(ChardevMux), &err); 5061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevMux_fields(m, obj, &err); 5064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevMuxList(Visitor *m, ChardevMuxList ** obj, const char *name, Error **errp) 5075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevMuxList *native_i = (ChardevMuxList *)i; 5084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevMux(m, &native_i->value, NULL, &err); 5085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevStdio_fields(Visitor *m, ChardevStdio ** obj, Error **errp) 5097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_signal : NULL, "signal", &err); 5100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_signal) { 5101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->signal : NULL, "signal", &err); 5102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevStdio(Visitor *m, ChardevStdio ** obj, const char *name, Error **errp) 5109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevStdio", name, sizeof(ChardevStdio), &err); 5113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevStdio_fields(m, obj, &err); 5116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevStdioList(Visitor *m, ChardevStdioList ** obj, const char *name, Error **errp) 5127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevStdioList *native_i = (ChardevStdioList *)i; 5136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevStdio(m, &native_i->value, NULL, &err); 5137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevSpiceChannel_fields(Visitor *m, ChardevSpiceChannel ** obj, Error **errp) 5149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->type : NULL, "type", &err); 5152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevSpiceChannel(Visitor *m, ChardevSpiceChannel ** obj, const char *name, Error **errp) 5157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevSpiceChannel", name, sizeof(ChardevSpiceChannel), &err); 5161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSpiceChannel_fields(m, obj, &err); 5164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevSpiceChannelList(Visitor *m, ChardevSpiceChannelList ** obj, const char *name, Error **errp) 5175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevSpiceChannelList *native_i = (ChardevSpiceChannelList *)i; 5184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSpiceChannel(m, &native_i->value, NULL, &err); 5185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevSpicePort_fields(Visitor *m, ChardevSpicePort ** obj, Error **errp) 5197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->fqdn : NULL, "fqdn", &err); 5200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevSpicePort(Visitor *m, ChardevSpicePort ** obj, const char *name, Error **errp) 5205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevSpicePort", name, sizeof(ChardevSpicePort), &err); 5209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSpicePort_fields(m, obj, &err); 5212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevSpicePortList(Visitor *m, ChardevSpicePortList ** obj, const char *name, Error **errp) 5223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevSpicePortList *native_i = (ChardevSpicePortList *)i; 5232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSpicePort(m, &native_i->value, NULL, &err); 5233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevVC_fields(Visitor *m, ChardevVC ** obj, Error **errp) 5245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_width : NULL, "width", &err); 5248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_width) { 5249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->width : NULL, "width", &err); 5250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_height : NULL, "height", &err); 5253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_height) { 5254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->height : NULL, "height", &err); 5255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_cols : NULL, "cols", &err); 5258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_cols) { 5259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->cols : NULL, "cols", &err); 5260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_rows : NULL, "rows", &err); 5263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_rows) { 5264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->rows : NULL, "rows", &err); 5265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevVC(Visitor *m, ChardevVC ** obj, const char *name, Error **errp) 5272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevVC", name, sizeof(ChardevVC), &err); 5276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevVC_fields(m, obj, &err); 5279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevVCList(Visitor *m, ChardevVCList ** obj, const char *name, Error **errp) 5290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevVCList *native_i = (ChardevVCList *)i; 5299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevVC(m, &native_i->value, NULL, &err); 5300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevRingbuf_fields(Visitor *m, ChardevRingbuf ** obj, Error **errp) 5312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_size : NULL, "size", &err); 5315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_size) { 5316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->size : NULL, "size", &err); 5317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevRingbuf(Visitor *m, ChardevRingbuf ** obj, const char *name, Error **errp) 5324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevRingbuf", name, sizeof(ChardevRingbuf), &err); 5328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevRingbuf_fields(m, obj, &err); 5331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevRingbufList(Visitor *m, ChardevRingbufList ** obj, const char *name, Error **errp) 5342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevRingbufList *native_i = (ChardevRingbufList *)i; 5351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevRingbuf(m, &native_i->value, NULL, &err); 5352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevDummy_fields(Visitor *m, ChardevDummy ** obj, Error **errp) 5364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevDummy(Visitor *m, ChardevDummy ** obj, const char *name, Error **errp) 5371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevDummy", name, sizeof(ChardevDummy), &err); 5375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevDummy_fields(m, obj, &err); 5378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevDummyList(Visitor *m, ChardevDummyList ** obj, const char *name, Error **errp) 5389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevDummyList *native_i = (ChardevDummyList *)i; 5398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevDummy(m, &native_i->value, NULL, &err); 5399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevBackendKind(Visitor *m, ChardevBackendKind * obj, const char *name, Error **errp) 5411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, ChardevBackendKind_lookup, "ChardevBackendKind", name, errp); 5413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevBackend(Visitor *m, ChardevBackend ** obj, const char *name, Error **errp) 5416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevBackend", name, sizeof(ChardevBackend), &err); 5421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && *obj) { 5423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevBackendKind(m, &(*obj)->kind, "type", &err); 5424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 5426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_FILE: 5427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevFile(m, &(*obj)->file, "data", &err); 5428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_SERIAL: 5430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevHostdev(m, &(*obj)->serial, "data", &err); 5431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_PARALLEL: 5433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevHostdev(m, &(*obj)->parallel, "data", &err); 5434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_PIPE: 5436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevHostdev(m, &(*obj)->pipe, "data", &err); 5437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_SOCKET: 5439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSocket(m, &(*obj)->socket, "data", &err); 5440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_UDP: 5442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevUdp(m, &(*obj)->udp, "data", &err); 5443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_PTY: 5445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevDummy(m, &(*obj)->pty, "data", &err); 5446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_NULL: 5448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevDummy(m, &(*obj)->null, "data", &err); 5449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_MUX: 5451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevMux(m, &(*obj)->mux, "data", &err); 5452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_MSMOUSE: 5454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevDummy(m, &(*obj)->msmouse, "data", &err); 5455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_BRAILLE: 5457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevDummy(m, &(*obj)->braille, "data", &err); 5458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_STDIO: 5460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevStdio(m, &(*obj)->stdio, "data", &err); 5461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_CONSOLE: 5463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevDummy(m, &(*obj)->console, "data", &err); 5464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_SPICEVMC: 5466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSpiceChannel(m, &(*obj)->spicevmc, "data", &err); 5467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_SPICEPORT: 5469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevSpicePort(m, &(*obj)->spiceport, "data", &err); 5470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_VC: 5472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevVC(m, &(*obj)->vc, "data", &err); 5473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_RINGBUF: 5475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevRingbuf(m, &(*obj)->ringbuf, "data", &err); 5476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case CHARDEV_BACKEND_KIND_MEMORY: 5478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevRingbuf(m, &(*obj)->memory, "data", &err); 5479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 5481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 5482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevBackendList(Visitor *m, ChardevBackendList ** obj, const char *name, Error **errp) 5495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevBackendList *native_i = (ChardevBackendList *)i; 5504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevBackend(m, &native_i->value, NULL, &err); 5505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_ChardevReturn_fields(Visitor *m, ChardevReturn ** obj, Error **errp) 5517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_pty : NULL, "pty", &err); 5520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_pty) { 5521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->pty : NULL, "pty", &err); 5522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevReturn(Visitor *m, ChardevReturn ** obj, const char *name, Error **errp) 5529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "ChardevReturn", name, sizeof(ChardevReturn), &err); 5533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevReturn_fields(m, obj, &err); 5536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_ChardevReturnList(Visitor *m, ChardevReturnList ** obj, const char *name, Error **errp) 5547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner ChardevReturnList *native_i = (ChardevReturnList *)i; 5556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_ChardevReturn(m, &native_i->value, NULL, &err); 5557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TpmModelList(Visitor *m, TpmModelList ** obj, const char *name, Error **errp) 5569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner TpmModelList *native_i = (TpmModelList *)i; 5578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TpmModel(m, &native_i->value, NULL, &err); 5579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TpmModel(Visitor *m, TpmModel * obj, const char *name, Error **errp) 5591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, TpmModel_lookup, "TpmModel", name, errp); 5593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TpmTypeList(Visitor *m, TpmTypeList ** obj, const char *name, Error **errp) 5596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner TpmTypeList *native_i = (TpmTypeList *)i; 5605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TpmType(m, &native_i->value, NULL, &err); 5606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TpmType(Visitor *m, TpmType * obj, const char *name, Error **errp) 5618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, TpmType_lookup, "TpmType", name, errp); 5620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_TPMPassthroughOptions_fields(Visitor *m, TPMPassthroughOptions ** obj, Error **errp) 5623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_path : NULL, "path", &err); 5626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_path) { 5627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->path : NULL, "path", &err); 5628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_cancel_path : NULL, "cancel-path", &err); 5631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_cancel_path) { 5632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->cancel_path : NULL, "cancel-path", &err); 5633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TPMPassthroughOptions(Visitor *m, TPMPassthroughOptions ** obj, const char *name, Error **errp) 5640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "TPMPassthroughOptions", name, sizeof(TPMPassthroughOptions), &err); 5644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TPMPassthroughOptions_fields(m, obj, &err); 5647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TPMPassthroughOptionsList(Visitor *m, TPMPassthroughOptionsList ** obj, const char *name, Error **errp) 5658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner TPMPassthroughOptionsList *native_i = (TPMPassthroughOptionsList *)i; 5667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TPMPassthroughOptions(m, &native_i->value, NULL, &err); 5668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TpmTypeOptionsKind(Visitor *m, TpmTypeOptionsKind * obj, const char *name, Error **errp) 5680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, TpmTypeOptionsKind_lookup, "TpmTypeOptionsKind", name, errp); 5682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TpmTypeOptions(Visitor *m, TpmTypeOptions ** obj, const char *name, Error **errp) 5685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "TpmTypeOptions", name, sizeof(TpmTypeOptions), &err); 5690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && *obj) { 5692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TpmTypeOptionsKind(m, &(*obj)->kind, "type", &err); 5693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 5695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case TPM_TYPE_OPTIONS_KIND_PASSTHROUGH: 5696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TPMPassthroughOptions(m, &(*obj)->passthrough, "data", &err); 5697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 5698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 5699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 5700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TpmTypeOptionsList(Visitor *m, TpmTypeOptionsList ** obj, const char *name, Error **errp) 5713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner TpmTypeOptionsList *native_i = (TpmTypeOptionsList *)i; 5722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TpmTypeOptions(m, &native_i->value, NULL, &err); 5723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_TPMInfo_fields(Visitor *m, TPMInfo ** obj, Error **errp) 5735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 5738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TpmModel(m, obj ? &(*obj)->model : NULL, "model", &err); 5739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TpmTypeOptions(m, obj ? &(*obj)->options : NULL, "options", &err); 5740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TPMInfo(Visitor *m, TPMInfo ** obj, const char *name, Error **errp) 5745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "TPMInfo", name, sizeof(TPMInfo), &err); 5749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TPMInfo_fields(m, obj, &err); 5752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_TPMInfoList(Visitor *m, TPMInfoList ** obj, const char *name, Error **errp) 5763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner TPMInfoList *native_i = (TPMInfoList *)i; 5772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_TPMInfo(m, &native_i->value, NULL, &err); 5773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_AcpiTableOptions_fields(Visitor *m, AcpiTableOptions ** obj, Error **errp) 5785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_sig : NULL, "sig", &err); 5788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_sig) { 5789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->sig : NULL, "sig", &err); 5790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_rev : NULL, "rev", &err); 5793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_rev) { 5794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint8(m, obj ? &(*obj)->rev : NULL, "rev", &err); 5795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_oem_id : NULL, "oem_id", &err); 5798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_oem_id) { 5799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->oem_id : NULL, "oem_id", &err); 5800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_oem_table_id : NULL, "oem_table_id", &err); 5803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_oem_table_id) { 5804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->oem_table_id : NULL, "oem_table_id", &err); 5805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_oem_rev : NULL, "oem_rev", &err); 5808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_oem_rev) { 5809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint32(m, obj ? &(*obj)->oem_rev : NULL, "oem_rev", &err); 5810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_asl_compiler_id : NULL, "asl_compiler_id", &err); 5813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_asl_compiler_id) { 5814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->asl_compiler_id : NULL, "asl_compiler_id", &err); 5815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_asl_compiler_rev : NULL, "asl_compiler_rev", &err); 5818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_asl_compiler_rev) { 5819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_uint32(m, obj ? &(*obj)->asl_compiler_rev : NULL, "asl_compiler_rev", &err); 5820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_file : NULL, "file", &err); 5823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_file) { 5824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->file : NULL, "file", &err); 5825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_data : NULL, "data", &err); 5828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_data) { 5829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->data : NULL, "data", &err); 5830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_AcpiTableOptions(Visitor *m, AcpiTableOptions ** obj, const char *name, Error **errp) 5837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "AcpiTableOptions", name, sizeof(AcpiTableOptions), &err); 5841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_AcpiTableOptions_fields(m, obj, &err); 5844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_AcpiTableOptionsList(Visitor *m, AcpiTableOptionsList ** obj, const char *name, Error **errp) 5855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner AcpiTableOptionsList *native_i = (AcpiTableOptionsList *)i; 5864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_AcpiTableOptions(m, &native_i->value, NULL, &err); 5865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CommandLineParameterTypeList(Visitor *m, CommandLineParameterTypeList ** obj, const char *name, Error **errp) 5877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner CommandLineParameterTypeList *native_i = (CommandLineParameterTypeList *)i; 5886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandLineParameterType(m, &native_i->value, NULL, &err); 5887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CommandLineParameterType(Visitor *m, CommandLineParameterType * obj, const char *name, Error **errp) 5899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, CommandLineParameterType_lookup, "CommandLineParameterType", name, errp); 5901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_CommandLineParameterInfo_fields(Visitor *m, CommandLineParameterInfo ** obj, Error **errp) 5904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 5907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandLineParameterType(m, obj ? &(*obj)->type : NULL, "type", &err); 5908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_help : NULL, "help", &err); 5909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_help) { 5910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->help : NULL, "help", &err); 5911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 5913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CommandLineParameterInfo(Visitor *m, CommandLineParameterInfo ** obj, const char *name, Error **errp) 5918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "CommandLineParameterInfo", name, sizeof(CommandLineParameterInfo), &err); 5922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandLineParameterInfo_fields(m, obj, &err); 5925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CommandLineParameterInfoList(Visitor *m, CommandLineParameterInfoList ** obj, const char *name, Error **errp) 5936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner CommandLineParameterInfoList *native_i = (CommandLineParameterInfoList *)i; 5945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandLineParameterInfo(m, &native_i->value, NULL, &err); 5946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 5951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 5952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_CommandLineOptionInfo_fields(Visitor *m, CommandLineOptionInfo ** obj, Error **errp) 5958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->option : NULL, "option", &err); 5961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandLineParameterInfoList(m, obj ? &(*obj)->parameters : NULL, "parameters", &err); 5962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CommandLineOptionInfo(Visitor *m, CommandLineOptionInfo ** obj, const char *name, Error **errp) 5967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "CommandLineOptionInfo", name, sizeof(CommandLineOptionInfo), &err); 5971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 5973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandLineOptionInfo_fields(m, obj, &err); 5974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 5978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 5979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 5983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_CommandLineOptionInfoList(Visitor *m, CommandLineOptionInfoList ** obj, const char *name, Error **errp) 5985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 5986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 5987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 5988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 5990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 5991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 5992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 5993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner CommandLineOptionInfoList *native_i = (CommandLineOptionInfoList *)i; 5994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_CommandLineOptionInfo(m, &native_i->value, NULL, &err); 5995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 5996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 5997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 5998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 5999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_X86CPURegister32List(Visitor *m, X86CPURegister32List ** obj, const char *name, Error **errp) 6007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner X86CPURegister32List *native_i = (X86CPURegister32List *)i; 6016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_X86CPURegister32(m, &native_i->value, NULL, &err); 6017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_X86CPURegister32(Visitor *m, X86CPURegister32 * obj, const char *name, Error **errp) 6029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, X86CPURegister32_lookup, "X86CPURegister32", name, errp); 6031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_X86CPUFeatureWordInfo_fields(Visitor *m, X86CPUFeatureWordInfo ** obj, Error **errp) 6034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->cpuid_input_eax : NULL, "cpuid-input-eax", &err); 6037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_cpuid_input_ecx : NULL, "cpuid-input-ecx", &err); 6038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_cpuid_input_ecx) { 6039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->cpuid_input_ecx : NULL, "cpuid-input-ecx", &err); 6040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_X86CPURegister32(m, obj ? &(*obj)->cpuid_register : NULL, "cpuid-register", &err); 6043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->features : NULL, "features", &err); 6044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_X86CPUFeatureWordInfo(Visitor *m, X86CPUFeatureWordInfo ** obj, const char *name, Error **errp) 6049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "X86CPUFeatureWordInfo", name, sizeof(X86CPUFeatureWordInfo), &err); 6053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_X86CPUFeatureWordInfo_fields(m, obj, &err); 6056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_X86CPUFeatureWordInfoList(Visitor *m, X86CPUFeatureWordInfoList ** obj, const char *name, Error **errp) 6067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner X86CPUFeatureWordInfoList *native_i = (X86CPUFeatureWordInfoList *)i; 6076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_X86CPUFeatureWordInfo(m, &native_i->value, NULL, &err); 6077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_RxStateList(Visitor *m, RxStateList ** obj, const char *name, Error **errp) 6089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner RxStateList *native_i = (RxStateList *)i; 6098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_RxState(m, &native_i->value, NULL, &err); 6099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_RxState(Visitor *m, RxState * obj, const char *name, Error **errp) 6111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, RxState_lookup, "RxState", name, errp); 6113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_RxFilterInfo_fields(Visitor *m, RxFilterInfo ** obj, Error **errp) 6116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->name : NULL, "name", &err); 6119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->promiscuous : NULL, "promiscuous", &err); 6120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_RxState(m, obj ? &(*obj)->multicast : NULL, "multicast", &err); 6121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_RxState(m, obj ? &(*obj)->unicast : NULL, "unicast", &err); 6122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->broadcast_allowed : NULL, "broadcast-allowed", &err); 6123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->multicast_overflow : NULL, "multicast-overflow", &err); 6124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->unicast_overflow : NULL, "unicast-overflow", &err); 6125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->main_mac : NULL, "main-mac", &err); 6126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_intList(m, obj ? &(*obj)->vlan_table : NULL, "vlan-table", &err); 6127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_strList(m, obj ? &(*obj)->unicast_table : NULL, "unicast-table", &err); 6128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_strList(m, obj ? &(*obj)->multicast_table : NULL, "multicast-table", &err); 6129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_RxFilterInfo(Visitor *m, RxFilterInfo ** obj, const char *name, Error **errp) 6134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "RxFilterInfo", name, sizeof(RxFilterInfo), &err); 6138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_RxFilterInfo_fields(m, obj, &err); 6141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_RxFilterInfoList(Visitor *m, RxFilterInfoList ** obj, const char *name, Error **errp) 6152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner RxFilterInfoList *native_i = (RxFilterInfoList *)i; 6161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_RxFilterInfo(m, &native_i->value, NULL, &err); 6162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevDiscardOptionsList(Visitor *m, BlockdevDiscardOptionsList ** obj, const char *name, Error **errp) 6174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevDiscardOptionsList *native_i = (BlockdevDiscardOptionsList *)i; 6183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevDiscardOptions(m, &native_i->value, NULL, &err); 6184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevDiscardOptions(Visitor *m, BlockdevDiscardOptions * obj, const char *name, Error **errp) 6196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, BlockdevDiscardOptions_lookup, "BlockdevDiscardOptions", name, errp); 6198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevAioOptionsList(Visitor *m, BlockdevAioOptionsList ** obj, const char *name, Error **errp) 6201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevAioOptionsList *native_i = (BlockdevAioOptionsList *)i; 6210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevAioOptions(m, &native_i->value, NULL, &err); 6211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevAioOptions(Visitor *m, BlockdevAioOptions * obj, const char *name, Error **errp) 6223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, BlockdevAioOptions_lookup, "BlockdevAioOptions", name, errp); 6225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevCacheOptions_fields(Visitor *m, BlockdevCacheOptions ** obj, Error **errp) 6228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_writeback : NULL, "writeback", &err); 6231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_writeback) { 6232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->writeback : NULL, "writeback", &err); 6233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_direct : NULL, "direct", &err); 6236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_direct) { 6237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->direct : NULL, "direct", &err); 6238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_no_flush : NULL, "no-flush", &err); 6241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_no_flush) { 6242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->no_flush : NULL, "no-flush", &err); 6243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevCacheOptions(Visitor *m, BlockdevCacheOptions ** obj, const char *name, Error **errp) 6250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevCacheOptions", name, sizeof(BlockdevCacheOptions), &err); 6254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevCacheOptions_fields(m, obj, &err); 6257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevCacheOptionsList(Visitor *m, BlockdevCacheOptionsList ** obj, const char *name, Error **errp) 6268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevCacheOptionsList *native_i = (BlockdevCacheOptionsList *)i; 6277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevCacheOptions(m, &native_i->value, NULL, &err); 6278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevOptionsBase_fields(Visitor *m, BlockdevOptionsBase ** obj, Error **errp) 6290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->driver : NULL, "driver", &err); 6293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_id : NULL, "id", &err); 6294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_id) { 6295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 6296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_discard : NULL, "discard", &err); 6299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_discard) { 6300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevDiscardOptions(m, obj ? &(*obj)->discard : NULL, "discard", &err); 6301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_cache : NULL, "cache", &err); 6304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_cache) { 6305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevCacheOptions(m, obj ? &(*obj)->cache : NULL, "cache", &err); 6306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_aio : NULL, "aio", &err); 6309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_aio) { 6310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevAioOptions(m, obj ? &(*obj)->aio : NULL, "aio", &err); 6311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_rerror : NULL, "rerror", &err); 6314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_rerror) { 6315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOnError(m, obj ? &(*obj)->rerror : NULL, "rerror", &err); 6316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_werror : NULL, "werror", &err); 6319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_werror) { 6320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOnError(m, obj ? &(*obj)->werror : NULL, "werror", &err); 6321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_read_only : NULL, "read-only", &err); 6324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_read_only) { 6325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->read_only : NULL, "read-only", &err); 6326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsBase(Visitor *m, BlockdevOptionsBase ** obj, const char *name, Error **errp) 6333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevOptionsBase", name, sizeof(BlockdevOptionsBase), &err); 6337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsBase_fields(m, obj, &err); 6340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsBaseList(Visitor *m, BlockdevOptionsBaseList ** obj, const char *name, Error **errp) 6351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevOptionsBaseList *native_i = (BlockdevOptionsBaseList *)i; 6360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsBase(m, &native_i->value, NULL, &err); 6361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevOptionsFile_fields(Visitor *m, BlockdevOptionsFile ** obj, Error **errp) 6373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->filename : NULL, "filename", &err); 6376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsFile(Visitor *m, BlockdevOptionsFile ** obj, const char *name, Error **errp) 6381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevOptionsFile", name, sizeof(BlockdevOptionsFile), &err); 6385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsFile_fields(m, obj, &err); 6388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsFileList(Visitor *m, BlockdevOptionsFileList ** obj, const char *name, Error **errp) 6399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevOptionsFileList *native_i = (BlockdevOptionsFileList *)i; 6408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsFile(m, &native_i->value, NULL, &err); 6409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevOptionsVVFAT_fields(Visitor *m, BlockdevOptionsVVFAT ** obj, Error **errp) 6421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->dir : NULL, "dir", &err); 6424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_fat_type : NULL, "fat-type", &err); 6425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_fat_type) { 6426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_int(m, obj ? &(*obj)->fat_type : NULL, "fat-type", &err); 6427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_floppy : NULL, "floppy", &err); 6430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_floppy) { 6431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->floppy : NULL, "floppy", &err); 6432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_rw : NULL, "rw", &err); 6435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_rw) { 6436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->rw : NULL, "rw", &err); 6437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsVVFAT(Visitor *m, BlockdevOptionsVVFAT ** obj, const char *name, Error **errp) 6444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevOptionsVVFAT", name, sizeof(BlockdevOptionsVVFAT), &err); 6448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsVVFAT_fields(m, obj, &err); 6451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsVVFATList(Visitor *m, BlockdevOptionsVVFATList ** obj, const char *name, Error **errp) 6462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevOptionsVVFATList *native_i = (BlockdevOptionsVVFATList *)i; 6471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsVVFAT(m, &native_i->value, NULL, &err); 6472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevOptionsGenericFormat_fields(Visitor *m, BlockdevOptionsGenericFormat ** obj, Error **errp) 6484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevRef(m, obj ? &(*obj)->file : NULL, "file", &err); 6487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsGenericFormat(Visitor *m, BlockdevOptionsGenericFormat ** obj, const char *name, Error **errp) 6492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevOptionsGenericFormat", name, sizeof(BlockdevOptionsGenericFormat), &err); 6496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, obj, &err); 6499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsGenericFormatList(Visitor *m, BlockdevOptionsGenericFormatList ** obj, const char *name, Error **errp) 6510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevOptionsGenericFormatList *native_i = (BlockdevOptionsGenericFormatList *)i; 6519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat(m, &native_i->value, NULL, &err); 6520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevOptionsGenericCOWFormat_fields(Visitor *m, BlockdevOptionsGenericCOWFormat ** obj, Error **errp) 6532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, obj ? (void**) &(*obj)->base : NULL, sizeof(BlockdevOptionsGenericFormat), &err); 6535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, obj ? &(*obj)->base : NULL, &err); 6537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_backing : NULL, "backing", &err); 6542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_backing) { 6543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevRef(m, obj ? &(*obj)->backing : NULL, "backing", &err); 6544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsGenericCOWFormat(Visitor *m, BlockdevOptionsGenericCOWFormat ** obj, const char *name, Error **errp) 6551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevOptionsGenericCOWFormat", name, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericCOWFormat_fields(m, obj, &err); 6558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsGenericCOWFormatList(Visitor *m, BlockdevOptionsGenericCOWFormatList ** obj, const char *name, Error **errp) 6569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevOptionsGenericCOWFormatList *native_i = (BlockdevOptionsGenericCOWFormatList *)i; 6578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericCOWFormat(m, &native_i->value, NULL, &err); 6579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevOptionsQcow2_fields(Visitor *m, BlockdevOptionsQcow2 ** obj, Error **errp) 6591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, obj ? (void**) &(*obj)->base : NULL, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericCOWFormat_fields(m, obj ? &(*obj)->base : NULL, &err); 6596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_lazy_refcounts : NULL, "lazy-refcounts", &err); 6601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_lazy_refcounts) { 6602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->lazy_refcounts : NULL, "lazy-refcounts", &err); 6603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_pass_discard_request : NULL, "pass-discard-request", &err); 6606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_pass_discard_request) { 6607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->pass_discard_request : NULL, "pass-discard-request", &err); 6608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_pass_discard_snapshot : NULL, "pass-discard-snapshot", &err); 6611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_pass_discard_snapshot) { 6612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->pass_discard_snapshot : NULL, "pass-discard-snapshot", &err); 6613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_pass_discard_other : NULL, "pass-discard-other", &err); 6616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_pass_discard_other) { 6617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->pass_discard_other : NULL, "pass-discard-other", &err); 6618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsQcow2(Visitor *m, BlockdevOptionsQcow2 ** obj, const char *name, Error **errp) 6625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevOptionsQcow2", name, sizeof(BlockdevOptionsQcow2), &err); 6629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!obj || *obj) { 6631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsQcow2_fields(m, obj, &err); 6632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsQcow2List(Visitor *m, BlockdevOptionsQcow2List ** obj, const char *name, Error **errp) 6643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevOptionsQcow2List *native_i = (BlockdevOptionsQcow2List *)i; 6652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsQcow2(m, &native_i->value, NULL, &err); 6653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsKind(Visitor *m, BlockdevOptionsKind * obj, const char *name, Error **errp) 6665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_enum(m, (int *)obj, BlockdevOptionsKind_lookup, "BlockdevOptionsKind", name, errp); 6667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void visit_type_BlockdevOptions_fields(Visitor *m, BlockdevOptions ** obj, Error **errp) 6670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_id : NULL, "id", &err); 6673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_id) { 6674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, obj ? &(*obj)->id : NULL, "id", &err); 6675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_discard : NULL, "discard", &err); 6678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_discard) { 6679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevDiscardOptions(m, obj ? &(*obj)->discard : NULL, "discard", &err); 6680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_cache : NULL, "cache", &err); 6683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_cache) { 6684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevCacheOptions(m, obj ? &(*obj)->cache : NULL, "cache", &err); 6685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_aio : NULL, "aio", &err); 6688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_aio) { 6689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevAioOptions(m, obj ? &(*obj)->aio : NULL, "aio", &err); 6690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_rerror : NULL, "rerror", &err); 6693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_rerror) { 6694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOnError(m, obj ? &(*obj)->rerror : NULL, "rerror", &err); 6695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_werror : NULL, "werror", &err); 6698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_werror) { 6699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOnError(m, obj ? &(*obj)->werror : NULL, "werror", &err); 6700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_optional(m, obj ? &(*obj)->has_read_only : NULL, "read-only", &err); 6703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && (*obj)->has_read_only) { 6704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_bool(m, obj ? &(*obj)->read_only : NULL, "read-only", &err); 6705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_optional(m, &err); 6707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptions(Visitor *m, BlockdevOptions ** obj, const char *name, Error **errp) 6712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_struct(m, (void **)obj, "BlockdevOptions", name, sizeof(BlockdevOptions), &err); 6717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (obj && *obj) { 6719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptions_fields(m, obj, &err); 6720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsKind(m, &(*obj)->kind, "driver", &err); 6721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 6723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_FILE: 6724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->file, sizeof(BlockdevOptionsFile), &err); 6725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsFile_fields(m, &(*obj)->file, &err); 6727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_HTTP: 6733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->http, sizeof(BlockdevOptionsFile), &err); 6734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsFile_fields(m, &(*obj)->http, &err); 6736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_HTTPS: 6742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->https, sizeof(BlockdevOptionsFile), &err); 6743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsFile_fields(m, &(*obj)->https, &err); 6745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_FTP: 6751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->ftp, sizeof(BlockdevOptionsFile), &err); 6752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsFile_fields(m, &(*obj)->ftp, &err); 6754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_FTPS: 6760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->ftps, sizeof(BlockdevOptionsFile), &err); 6761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsFile_fields(m, &(*obj)->ftps, &err); 6763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_TFTP: 6769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->tftp, sizeof(BlockdevOptionsFile), &err); 6770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsFile_fields(m, &(*obj)->tftp, &err); 6772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_VVFAT: 6778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->vvfat, sizeof(BlockdevOptionsVVFAT), &err); 6779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsVVFAT_fields(m, &(*obj)->vvfat, &err); 6781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_BOCHS: 6787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->bochs, sizeof(BlockdevOptionsGenericFormat), &err); 6788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->bochs, &err); 6790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_CLOOP: 6796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->cloop, sizeof(BlockdevOptionsGenericFormat), &err); 6797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->cloop, &err); 6799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_COW: 6805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->cow, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericCOWFormat_fields(m, &(*obj)->cow, &err); 6808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_DMG: 6814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->dmg, sizeof(BlockdevOptionsGenericFormat), &err); 6815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->dmg, &err); 6817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_PARALLELS: 6823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->parallels, sizeof(BlockdevOptionsGenericFormat), &err); 6824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->parallels, &err); 6826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_QCOW: 6832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->qcow, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericCOWFormat_fields(m, &(*obj)->qcow, &err); 6835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_QCOW2: 6841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->qcow2, sizeof(BlockdevOptionsQcow2), &err); 6842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsQcow2_fields(m, &(*obj)->qcow2, &err); 6844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_QED: 6850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->qed, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericCOWFormat_fields(m, &(*obj)->qed, &err); 6853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_RAW: 6859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->raw, sizeof(BlockdevOptionsGenericFormat), &err); 6860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->raw, &err); 6862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_VDI: 6868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->vdi, sizeof(BlockdevOptionsGenericFormat), &err); 6869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->vdi, &err); 6871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_VHDX: 6877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->vhdx, sizeof(BlockdevOptionsGenericFormat), &err); 6878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->vhdx, &err); 6880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_VMDK: 6886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->vmdk, sizeof(BlockdevOptionsGenericCOWFormat), &err); 6887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericCOWFormat_fields(m, &(*obj)->vmdk, &err); 6889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_OPTIONS_KIND_VPC: 6895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) &(*obj)->vpc, sizeof(BlockdevOptionsGenericFormat), &err); 6896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptionsGenericFormat_fields(m, &(*obj)->vpc, &err); 6898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 6904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 6905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_struct if start_struct succeeded. */ 6911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_struct(m, &err); 6912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevOptionsList(Visitor *m, BlockdevOptionsList ** obj, const char *name, Error **errp) 6918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevOptionsList *native_i = (BlockdevOptionsList *)i; 6927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptions(m, &native_i->value, NULL, &err); 6928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevRef(Visitor *m, BlockdevRef ** obj, const char *name, Error **errp) 6940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_implicit_struct(m, (void**) obj, sizeof(BlockdevRef), &err); 6945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_get_next_type(m, (int*) &(*obj)->kind, BlockdevRef_qtypes, name, &err); 6946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner switch ((*obj)->kind) { 6947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_REF_KIND_DEFINITION: 6948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevOptions(m, &(*obj)->definition, name, &err); 6949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner case BLOCKDEV_REF_KIND_REFERENCE: 6951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_str(m, &(*obj)->reference, name, &err); 6952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner break; 6953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner default: 6954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner abort(); 6955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_implicit_struct(m, &err); 6959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnervoid visit_type_BlockdevRefList(Visitor *m, BlockdevRefList ** obj, const char *name, Error **errp) 6963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 6964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner GenericList *i, **prev = (GenericList **)obj; 6965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner Error *err = NULL; 6966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!error_is_set(errp)) { 6968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_start_list(m, name, &err); 6969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner if (!err) { 6970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner for (; (i = visit_next_list(m, prev, &err)) != NULL; prev = &i) { 6971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner BlockdevRefList *native_i = (BlockdevRefList *)i; 6972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_type_BlockdevRef(m, &native_i->value, NULL, &err); 6973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner err = NULL; 6976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 6977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner /* Always call end_list if start_list succeeded. */ 6978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner visit_end_list(m, &err); 6979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner error_propagate(errp, err); 6981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner } 6982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner} 6983