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 | |
18 | void 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 | |
37 | out: |
38 | error_propagate(errp, err); |
39 | } |
40 | |
41 | void 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); |
57 | out_obj: |
58 | visit_end_struct(v, (void **)obj); |
59 | if (err && visit_is_input(v)) { |
60 | qapi_free_ObjectPropertyInfo(*obj); |
61 | *obj = NULL; |
62 | } |
63 | out: |
64 | error_propagate(errp, err); |
65 | } |
66 | |
67 | void 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 | |
76 | out: |
77 | error_propagate(errp, err); |
78 | } |
79 | |
80 | void 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 | } |
107 | out: |
108 | error_propagate(errp, err); |
109 | } |
110 | |
111 | void 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 | |
124 | out: |
125 | error_propagate(errp, err); |
126 | } |
127 | |
128 | void 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 | |
145 | out: |
146 | error_propagate(errp, err); |
147 | } |
148 | |
149 | void 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 | |
170 | out: |
171 | error_propagate(errp, err); |
172 | } |
173 | |
174 | void 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); |
190 | out_obj: |
191 | visit_end_struct(v, (void **)obj); |
192 | if (err && visit_is_input(v)) { |
193 | qapi_free_ObjectTypeInfo(*obj); |
194 | *obj = NULL; |
195 | } |
196 | out: |
197 | error_propagate(errp, err); |
198 | } |
199 | |
200 | void 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 | |
217 | out: |
218 | error_propagate(errp, err); |
219 | } |
220 | |
221 | void 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 | } |
248 | out: |
249 | error_propagate(errp, err); |
250 | } |
251 | |
252 | void 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 | |
261 | out: |
262 | error_propagate(errp, err); |
263 | } |
264 | |
265 | void 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 | |
284 | out: |
285 | error_propagate(errp, err); |
286 | } |
287 | |
288 | void 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 | |
297 | out: |
298 | error_propagate(errp, err); |
299 | } |
300 | |
301 | /* Dummy declaration to prevent empty .o file */ |
302 | char qapi_dummy_qapi_visit_qom_c; |
303 | |