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-common.h"
17
18void visit_type_IoOperationType(Visitor *v, const char *name, IoOperationType *obj, Error **errp)
19{
20 int value = *obj;
21 visit_type_enum(v, name, &value, &IoOperationType_lookup, errp);
22 *obj = value;
23}
24
25void visit_type_OnOffAuto(Visitor *v, const char *name, OnOffAuto *obj, Error **errp)
26{
27 int value = *obj;
28 visit_type_enum(v, name, &value, &OnOffAuto_lookup, errp);
29 *obj = value;
30}
31
32void visit_type_OnOffSplit(Visitor *v, const char *name, OnOffSplit *obj, Error **errp)
33{
34 int value = *obj;
35 visit_type_enum(v, name, &value, &OnOffSplit_lookup, errp);
36 *obj = value;
37}
38
39void visit_type_String_members(Visitor *v, String *obj, Error **errp)
40{
41 Error *err = NULL;
42
43 visit_type_str(v, "str", &obj->str, &err);
44 if (err) {
45 goto out;
46 }
47
48out:
49 error_propagate(errp, err);
50}
51
52void visit_type_String(Visitor *v, const char *name, String **obj, Error **errp)
53{
54 Error *err = NULL;
55
56 visit_start_struct(v, name, (void **)obj, sizeof(String), &err);
57 if (err) {
58 goto out;
59 }
60 if (!*obj) {
61 goto out_obj;
62 }
63 visit_type_String_members(v, *obj, &err);
64 if (err) {
65 goto out_obj;
66 }
67 visit_check_struct(v, &err);
68out_obj:
69 visit_end_struct(v, (void **)obj);
70 if (err && visit_is_input(v)) {
71 qapi_free_String(*obj);
72 *obj = NULL;
73 }
74out:
75 error_propagate(errp, err);
76}
77
78void visit_type_StrOrNull(Visitor *v, const char *name, StrOrNull **obj, Error **errp)
79{
80 Error *err = NULL;
81
82 visit_start_alternate(v, name, (GenericAlternate **)obj, sizeof(**obj),
83 &err);
84 if (err) {
85 goto out;
86 }
87 if (!*obj) {
88 goto out_obj;
89 }
90 switch ((*obj)->type) {
91 case QTYPE_QSTRING:
92 visit_type_str(v, name, &(*obj)->u.s, &err);
93 break;
94 case QTYPE_QNULL:
95 visit_type_null(v, name, &(*obj)->u.n, &err);
96 break;
97 case QTYPE_NONE:
98 abort();
99 default:
100 error_setg(&err, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
101 "StrOrNull");
102 }
103out_obj:
104 visit_end_alternate(v, (void **)obj);
105 if (err && visit_is_input(v)) {
106 qapi_free_StrOrNull(*obj);
107 *obj = NULL;
108 }
109out:
110 error_propagate(errp, err);
111}
112
113void visit_type_OffAutoPCIBAR(Visitor *v, const char *name, OffAutoPCIBAR *obj, Error **errp)
114{
115 int value = *obj;
116 visit_type_enum(v, name, &value, &OffAutoPCIBAR_lookup, errp);
117 *obj = value;
118}
119
120void visit_type_PCIELinkSpeed(Visitor *v, const char *name, PCIELinkSpeed *obj, Error **errp)
121{
122 int value = *obj;
123 visit_type_enum(v, name, &value, &PCIELinkSpeed_lookup, errp);
124 *obj = value;
125}
126
127void visit_type_PCIELinkWidth(Visitor *v, const char *name, PCIELinkWidth *obj, Error **errp)
128{
129 int value = *obj;
130 visit_type_enum(v, name, &value, &PCIELinkWidth_lookup, errp);
131 *obj = value;
132}
133
134void visit_type_StringList(Visitor *v, const char *name, StringList **obj, Error **errp)
135{
136 Error *err = NULL;
137 StringList *tail;
138 size_t size = sizeof(**obj);
139
140 visit_start_list(v, name, (GenericList **)obj, size, &err);
141 if (err) {
142 goto out;
143 }
144
145 for (tail = *obj; tail;
146 tail = (StringList *)visit_next_list(v, (GenericList *)tail, size)) {
147 visit_type_String(v, NULL, &tail->value, &err);
148 if (err) {
149 break;
150 }
151 }
152
153 if (!err) {
154 visit_check_list(v, &err);
155 }
156 visit_end_list(v, (void **)obj);
157 if (err && visit_is_input(v)) {
158 qapi_free_StringList(*obj);
159 *obj = NULL;
160 }
161out:
162 error_propagate(errp, err);
163}
164
165/* Dummy declaration to prevent empty .o file */
166char qapi_dummy_qapi_visit_common_c;
167