1/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
2
3/*
4 * Schema-defined QAPI visitors
5 *
6 * Copyright IBM, Corp. 2011
7 * Copyright (C) 2014-2018 Red Hat, Inc.
8 *
9 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
10 * See the COPYING.LIB file in the top-level directory.
11 */
12
13#include "qemu/osdep.h"
14#include "qapi/error.h"
15#include "qapi/qmp/qerror.h"
16#include "qapi-visit-qom.h"
17
18void visit_type_ObjectPropertyInfo_members(Visitor *v, ObjectPropertyInfo *obj, Error **errp)
19{
20 Error *err = NULL;
21
22 visit_type_str(v, "name", &obj->name, &err);
23 if (err) {
24 goto out;
25 }
26 visit_type_str(v, "type", &obj->type, &err);
27 if (err) {
28 goto out;
29 }
30 if (visit_optional(v, "description", &obj->has_description)) {
31 visit_type_str(v, "description", &obj->description, &err);
32 if (err) {
33 goto out;
34 }
35 }
36
37out:
38 error_propagate(errp, err);
39}
40
41void visit_type_ObjectPropertyInfo(Visitor *v, const char *name, ObjectPropertyInfo **obj, Error **errp)
42{
43 Error *err = NULL;
44
45 visit_start_struct(v, name, (void **)obj, sizeof(ObjectPropertyInfo), &err);
46 if (err) {
47 goto out;
48 }
49 if (!*obj) {
50 goto out_obj;
51 }
52 visit_type_ObjectPropertyInfo_members(v, *obj, &err);
53 if (err) {
54 goto out_obj;
55 }
56 visit_check_struct(v, &err);
57out_obj:
58 visit_end_struct(v, (void **)obj);
59 if (err && visit_is_input(v)) {
60 qapi_free_ObjectPropertyInfo(*obj);
61 *obj = NULL;
62 }
63out:
64 error_propagate(errp, err);
65}
66
67void visit_type_q_obj_qom_list_arg_members(Visitor *v, q_obj_qom_list_arg *obj, Error **errp)
68{
69 Error *err = NULL;
70
71 visit_type_str(v, "path", &obj->path, &err);
72 if (err) {
73 goto out;
74 }
75
76out:
77 error_propagate(errp, err);
78}
79
80void visit_type_ObjectPropertyInfoList(Visitor *v, const char *name, ObjectPropertyInfoList **obj, Error **errp)
81{
82 Error *err = NULL;
83 ObjectPropertyInfoList *tail;
84 size_t size = sizeof(**obj);
85
86 visit_start_list(v, name, (GenericList **)obj, size, &err);
87 if (err) {
88 goto out;
89 }
90
91 for (tail = *obj; tail;
92 tail = (ObjectPropertyInfoList *)visit_next_list(v, (GenericList *)tail, size)) {
93 visit_type_ObjectPropertyInfo(v, NULL, &tail->value, &err);
94 if (err) {
95 break;
96 }
97 }
98
99 if (!err) {
100 visit_check_list(v, &err);
101 }
102 visit_end_list(v, (void **)obj);
103 if (err && visit_is_input(v)) {
104 qapi_free_ObjectPropertyInfoList(*obj);
105 *obj = NULL;
106 }
107out:
108 error_propagate(errp, err);
109}
110
111void visit_type_q_obj_qom_get_arg_members(Visitor *v, q_obj_qom_get_arg *obj, Error **errp)
112{
113 Error *err = NULL;
114
115 visit_type_str(v, "path", &obj->path, &err);
116 if (err) {
117 goto out;
118 }
119 visit_type_str(v, "property", &obj->property, &err);
120 if (err) {
121 goto out;
122 }
123
124out:
125 error_propagate(errp, err);
126}
127
128void visit_type_q_obj_qom_set_arg_members(Visitor *v, q_obj_qom_set_arg *obj, Error **errp)
129{
130 Error *err = NULL;
131
132 visit_type_str(v, "path", &obj->path, &err);
133 if (err) {
134 goto out;
135 }
136 visit_type_str(v, "property", &obj->property, &err);
137 if (err) {
138 goto out;
139 }
140 visit_type_any(v, "value", &obj->value, &err);
141 if (err) {
142 goto out;
143 }
144
145out:
146 error_propagate(errp, err);
147}
148
149void visit_type_ObjectTypeInfo_members(Visitor *v, ObjectTypeInfo *obj, Error **errp)
150{
151 Error *err = NULL;
152
153 visit_type_str(v, "name", &obj->name, &err);
154 if (err) {
155 goto out;
156 }
157 if (visit_optional(v, "abstract", &obj->has_abstract)) {
158 visit_type_bool(v, "abstract", &obj->abstract, &err);
159 if (err) {
160 goto out;
161 }
162 }
163 if (visit_optional(v, "parent", &obj->has_parent)) {
164 visit_type_str(v, "parent", &obj->parent, &err);
165 if (err) {
166 goto out;
167 }
168 }
169
170out:
171 error_propagate(errp, err);
172}
173
174void visit_type_ObjectTypeInfo(Visitor *v, const char *name, ObjectTypeInfo **obj, Error **errp)
175{
176 Error *err = NULL;
177
178 visit_start_struct(v, name, (void **)obj, sizeof(ObjectTypeInfo), &err);
179 if (err) {
180 goto out;
181 }
182 if (!*obj) {
183 goto out_obj;
184 }
185 visit_type_ObjectTypeInfo_members(v, *obj, &err);
186 if (err) {
187 goto out_obj;
188 }
189 visit_check_struct(v, &err);
190out_obj:
191 visit_end_struct(v, (void **)obj);
192 if (err && visit_is_input(v)) {
193 qapi_free_ObjectTypeInfo(*obj);
194 *obj = NULL;
195 }
196out:
197 error_propagate(errp, err);
198}
199
200void visit_type_q_obj_qom_list_types_arg_members(Visitor *v, q_obj_qom_list_types_arg *obj, Error **errp)
201{
202 Error *err = NULL;
203
204 if (visit_optional(v, "implements", &obj->has_implements)) {
205 visit_type_str(v, "implements", &obj->implements, &err);
206 if (err) {
207 goto out;
208 }
209 }
210 if (visit_optional(v, "abstract", &obj->has_abstract)) {
211 visit_type_bool(v, "abstract", &obj->abstract, &err);
212 if (err) {
213 goto out;
214 }
215 }
216
217out:
218 error_propagate(errp, err);
219}
220
221void visit_type_ObjectTypeInfoList(Visitor *v, const char *name, ObjectTypeInfoList **obj, Error **errp)
222{
223 Error *err = NULL;
224 ObjectTypeInfoList *tail;
225 size_t size = sizeof(**obj);
226
227 visit_start_list(v, name, (GenericList **)obj, size, &err);
228 if (err) {
229 goto out;
230 }
231
232 for (tail = *obj; tail;
233 tail = (ObjectTypeInfoList *)visit_next_list(v, (GenericList *)tail, size)) {
234 visit_type_ObjectTypeInfo(v, NULL, &tail->value, &err);
235 if (err) {
236 break;
237 }
238 }
239
240 if (!err) {
241 visit_check_list(v, &err);
242 }
243 visit_end_list(v, (void **)obj);
244 if (err && visit_is_input(v)) {
245 qapi_free_ObjectTypeInfoList(*obj);
246 *obj = NULL;
247 }
248out:
249 error_propagate(errp, err);
250}
251
252void visit_type_q_obj_qom_list_properties_arg_members(Visitor *v, q_obj_qom_list_properties_arg *obj, Error **errp)
253{
254 Error *err = NULL;
255
256 visit_type_str(v, "typename", &obj->q_typename, &err);
257 if (err) {
258 goto out;
259 }
260
261out:
262 error_propagate(errp, err);
263}
264
265void visit_type_q_obj_object_add_arg_members(Visitor *v, q_obj_object_add_arg *obj, Error **errp)
266{
267 Error *err = NULL;
268
269 visit_type_str(v, "qom-type", &obj->qom_type, &err);
270 if (err) {
271 goto out;
272 }
273 visit_type_str(v, "id", &obj->id, &err);
274 if (err) {
275 goto out;
276 }
277 if (visit_optional(v, "props", &obj->has_props)) {
278 visit_type_any(v, "props", &obj->props, &err);
279 if (err) {
280 goto out;
281 }
282 }
283
284out:
285 error_propagate(errp, err);
286}
287
288void visit_type_q_obj_object_del_arg_members(Visitor *v, q_obj_object_del_arg *obj, Error **errp)
289{
290 Error *err = NULL;
291
292 visit_type_str(v, "id", &obj->id, &err);
293 if (err) {
294 goto out;
295 }
296
297out:
298 error_propagate(errp, err);
299}
300
301/* Dummy declaration to prevent empty .o file */
302char qapi_dummy_qapi_visit_qom_c;
303