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-machine-target.h"
17
18void visit_type_CpuModelInfo_members(Visitor *v, CpuModelInfo *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 if (visit_optional(v, "props", &obj->has_props)) {
27 visit_type_any(v, "props", &obj->props, &err);
28 if (err) {
29 goto out;
30 }
31 }
32
33out:
34 error_propagate(errp, err);
35}
36
37void visit_type_CpuModelInfo(Visitor *v, const char *name, CpuModelInfo **obj, Error **errp)
38{
39 Error *err = NULL;
40
41 visit_start_struct(v, name, (void **)obj, sizeof(CpuModelInfo), &err);
42 if (err) {
43 goto out;
44 }
45 if (!*obj) {
46 goto out_obj;
47 }
48 visit_type_CpuModelInfo_members(v, *obj, &err);
49 if (err) {
50 goto out_obj;
51 }
52 visit_check_struct(v, &err);
53out_obj:
54 visit_end_struct(v, (void **)obj);
55 if (err && visit_is_input(v)) {
56 qapi_free_CpuModelInfo(*obj);
57 *obj = NULL;
58 }
59out:
60 error_propagate(errp, err);
61}
62
63void visit_type_CpuModelExpansionType(Visitor *v, const char *name, CpuModelExpansionType *obj, Error **errp)
64{
65 int value = *obj;
66 visit_type_enum(v, name, &value, &CpuModelExpansionType_lookup, errp);
67 *obj = value;
68}
69
70void visit_type_CpuModelCompareResult(Visitor *v, const char *name, CpuModelCompareResult *obj, Error **errp)
71{
72 int value = *obj;
73 visit_type_enum(v, name, &value, &CpuModelCompareResult_lookup, errp);
74 *obj = value;
75}
76
77#if defined(TARGET_S390X)
78void visit_type_CpuModelBaselineInfo_members(Visitor *v, CpuModelBaselineInfo *obj, Error **errp)
79{
80 Error *err = NULL;
81
82 visit_type_CpuModelInfo(v, "model", &obj->model, &err);
83 if (err) {
84 goto out;
85 }
86
87out:
88 error_propagate(errp, err);
89}
90
91void visit_type_CpuModelBaselineInfo(Visitor *v, const char *name, CpuModelBaselineInfo **obj, Error **errp)
92{
93 Error *err = NULL;
94
95 visit_start_struct(v, name, (void **)obj, sizeof(CpuModelBaselineInfo), &err);
96 if (err) {
97 goto out;
98 }
99 if (!*obj) {
100 goto out_obj;
101 }
102 visit_type_CpuModelBaselineInfo_members(v, *obj, &err);
103 if (err) {
104 goto out_obj;
105 }
106 visit_check_struct(v, &err);
107out_obj:
108 visit_end_struct(v, (void **)obj);
109 if (err && visit_is_input(v)) {
110 qapi_free_CpuModelBaselineInfo(*obj);
111 *obj = NULL;
112 }
113out:
114 error_propagate(errp, err);
115}
116#endif /* defined(TARGET_S390X) */
117
118#if defined(TARGET_S390X)
119void visit_type_CpuModelCompareInfo_members(Visitor *v, CpuModelCompareInfo *obj, Error **errp)
120{
121 Error *err = NULL;
122
123 visit_type_CpuModelCompareResult(v, "result", &obj->result, &err);
124 if (err) {
125 goto out;
126 }
127 visit_type_strList(v, "responsible-properties", &obj->responsible_properties, &err);
128 if (err) {
129 goto out;
130 }
131
132out:
133 error_propagate(errp, err);
134}
135
136void visit_type_CpuModelCompareInfo(Visitor *v, const char *name, CpuModelCompareInfo **obj, Error **errp)
137{
138 Error *err = NULL;
139
140 visit_start_struct(v, name, (void **)obj, sizeof(CpuModelCompareInfo), &err);
141 if (err) {
142 goto out;
143 }
144 if (!*obj) {
145 goto out_obj;
146 }
147 visit_type_CpuModelCompareInfo_members(v, *obj, &err);
148 if (err) {
149 goto out_obj;
150 }
151 visit_check_struct(v, &err);
152out_obj:
153 visit_end_struct(v, (void **)obj);
154 if (err && visit_is_input(v)) {
155 qapi_free_CpuModelCompareInfo(*obj);
156 *obj = NULL;
157 }
158out:
159 error_propagate(errp, err);
160}
161#endif /* defined(TARGET_S390X) */
162
163#if defined(TARGET_S390X)
164void visit_type_q_obj_query_cpu_model_comparison_arg_members(Visitor *v, q_obj_query_cpu_model_comparison_arg *obj, Error **errp)
165{
166 Error *err = NULL;
167
168 visit_type_CpuModelInfo(v, "modela", &obj->modela, &err);
169 if (err) {
170 goto out;
171 }
172 visit_type_CpuModelInfo(v, "modelb", &obj->modelb, &err);
173 if (err) {
174 goto out;
175 }
176
177out:
178 error_propagate(errp, err);
179}
180#endif /* defined(TARGET_S390X) */
181
182#if defined(TARGET_S390X)
183void visit_type_q_obj_query_cpu_model_baseline_arg_members(Visitor *v, q_obj_query_cpu_model_baseline_arg *obj, Error **errp)
184{
185 Error *err = NULL;
186
187 visit_type_CpuModelInfo(v, "modela", &obj->modela, &err);
188 if (err) {
189 goto out;
190 }
191 visit_type_CpuModelInfo(v, "modelb", &obj->modelb, &err);
192 if (err) {
193 goto out;
194 }
195
196out:
197 error_propagate(errp, err);
198}
199#endif /* defined(TARGET_S390X) */
200
201#if defined(TARGET_S390X) || defined(TARGET_I386)
202void visit_type_CpuModelExpansionInfo_members(Visitor *v, CpuModelExpansionInfo *obj, Error **errp)
203{
204 Error *err = NULL;
205
206 visit_type_CpuModelInfo(v, "model", &obj->model, &err);
207 if (err) {
208 goto out;
209 }
210
211out:
212 error_propagate(errp, err);
213}
214
215void visit_type_CpuModelExpansionInfo(Visitor *v, const char *name, CpuModelExpansionInfo **obj, Error **errp)
216{
217 Error *err = NULL;
218
219 visit_start_struct(v, name, (void **)obj, sizeof(CpuModelExpansionInfo), &err);
220 if (err) {
221 goto out;
222 }
223 if (!*obj) {
224 goto out_obj;
225 }
226 visit_type_CpuModelExpansionInfo_members(v, *obj, &err);
227 if (err) {
228 goto out_obj;
229 }
230 visit_check_struct(v, &err);
231out_obj:
232 visit_end_struct(v, (void **)obj);
233 if (err && visit_is_input(v)) {
234 qapi_free_CpuModelExpansionInfo(*obj);
235 *obj = NULL;
236 }
237out:
238 error_propagate(errp, err);
239}
240#endif /* defined(TARGET_S390X) || defined(TARGET_I386) */
241
242#if defined(TARGET_S390X) || defined(TARGET_I386)
243void visit_type_q_obj_query_cpu_model_expansion_arg_members(Visitor *v, q_obj_query_cpu_model_expansion_arg *obj, Error **errp)
244{
245 Error *err = NULL;
246
247 visit_type_CpuModelExpansionType(v, "type", &obj->type, &err);
248 if (err) {
249 goto out;
250 }
251 visit_type_CpuModelInfo(v, "model", &obj->model, &err);
252 if (err) {
253 goto out;
254 }
255
256out:
257 error_propagate(errp, err);
258}
259#endif /* defined(TARGET_S390X) || defined(TARGET_I386) */
260
261#if defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS)
262void visit_type_CpuDefinitionInfo_members(Visitor *v, CpuDefinitionInfo *obj, Error **errp)
263{
264 Error *err = NULL;
265
266 visit_type_str(v, "name", &obj->name, &err);
267 if (err) {
268 goto out;
269 }
270 if (visit_optional(v, "migration-safe", &obj->has_migration_safe)) {
271 visit_type_bool(v, "migration-safe", &obj->migration_safe, &err);
272 if (err) {
273 goto out;
274 }
275 }
276 visit_type_bool(v, "static", &obj->q_static, &err);
277 if (err) {
278 goto out;
279 }
280 if (visit_optional(v, "unavailable-features", &obj->has_unavailable_features)) {
281 visit_type_strList(v, "unavailable-features", &obj->unavailable_features, &err);
282 if (err) {
283 goto out;
284 }
285 }
286 visit_type_str(v, "typename", &obj->q_typename, &err);
287 if (err) {
288 goto out;
289 }
290 if (visit_optional(v, "alias-of", &obj->has_alias_of)) {
291 visit_type_str(v, "alias-of", &obj->alias_of, &err);
292 if (err) {
293 goto out;
294 }
295 }
296
297out:
298 error_propagate(errp, err);
299}
300
301void visit_type_CpuDefinitionInfo(Visitor *v, const char *name, CpuDefinitionInfo **obj, Error **errp)
302{
303 Error *err = NULL;
304
305 visit_start_struct(v, name, (void **)obj, sizeof(CpuDefinitionInfo), &err);
306 if (err) {
307 goto out;
308 }
309 if (!*obj) {
310 goto out_obj;
311 }
312 visit_type_CpuDefinitionInfo_members(v, *obj, &err);
313 if (err) {
314 goto out_obj;
315 }
316 visit_check_struct(v, &err);
317out_obj:
318 visit_end_struct(v, (void **)obj);
319 if (err && visit_is_input(v)) {
320 qapi_free_CpuDefinitionInfo(*obj);
321 *obj = NULL;
322 }
323out:
324 error_propagate(errp, err);
325}
326#endif /* defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) */
327
328#if defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS)
329void visit_type_CpuDefinitionInfoList(Visitor *v, const char *name, CpuDefinitionInfoList **obj, Error **errp)
330{
331 Error *err = NULL;
332 CpuDefinitionInfoList *tail;
333 size_t size = sizeof(**obj);
334
335 visit_start_list(v, name, (GenericList **)obj, size, &err);
336 if (err) {
337 goto out;
338 }
339
340 for (tail = *obj; tail;
341 tail = (CpuDefinitionInfoList *)visit_next_list(v, (GenericList *)tail, size)) {
342 visit_type_CpuDefinitionInfo(v, NULL, &tail->value, &err);
343 if (err) {
344 break;
345 }
346 }
347
348 if (!err) {
349 visit_check_list(v, &err);
350 }
351 visit_end_list(v, (void **)obj);
352 if (err && visit_is_input(v)) {
353 qapi_free_CpuDefinitionInfoList(*obj);
354 *obj = NULL;
355 }
356out:
357 error_propagate(errp, err);
358}
359#endif /* defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) */
360
361/* Dummy declaration to prevent empty .o file */
362char qapi_dummy_qapi_visit_machine_target_c;
363