1/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
2
3/*
4 * Schema-defined QAPI/QMP commands
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/visitor.h"
15#include "qapi/qmp/qdict.h"
16#include "qapi/qobject-output-visitor.h"
17#include "qapi/qobject-input-visitor.h"
18#include "qapi/dealloc-visitor.h"
19#include "qapi/error.h"
20#include "qapi-visit-qom.h"
21#include "qapi-commands-qom.h"
22
23
24static void qmp_marshal_output_ObjectPropertyInfoList(ObjectPropertyInfoList *ret_in, QObject **ret_out, Error **errp)
25{
26 Error *err = NULL;
27 Visitor *v;
28
29 v = qobject_output_visitor_new(ret_out);
30 visit_type_ObjectPropertyInfoList(v, "unused", &ret_in, &err);
31 if (!err) {
32 visit_complete(v, ret_out);
33 }
34 error_propagate(errp, err);
35 visit_free(v);
36 v = qapi_dealloc_visitor_new();
37 visit_type_ObjectPropertyInfoList(v, "unused", &ret_in, NULL);
38 visit_free(v);
39}
40
41void qmp_marshal_qom_list(QDict *args, QObject **ret, Error **errp)
42{
43 Error *err = NULL;
44 ObjectPropertyInfoList *retval;
45 Visitor *v;
46 q_obj_qom_list_arg arg = {0};
47
48 v = qobject_input_visitor_new(QOBJECT(args));
49 visit_start_struct(v, NULL, NULL, 0, &err);
50 if (err) {
51 goto out;
52 }
53 visit_type_q_obj_qom_list_arg_members(v, &arg, &err);
54 if (!err) {
55 visit_check_struct(v, &err);
56 }
57 visit_end_struct(v, NULL);
58 if (err) {
59 goto out;
60 }
61
62 retval = qmp_qom_list(arg.path, &err);
63 if (err) {
64 goto out;
65 }
66
67 qmp_marshal_output_ObjectPropertyInfoList(retval, ret, &err);
68
69out:
70 error_propagate(errp, err);
71 visit_free(v);
72 v = qapi_dealloc_visitor_new();
73 visit_start_struct(v, NULL, NULL, 0, NULL);
74 visit_type_q_obj_qom_list_arg_members(v, &arg, NULL);
75 visit_end_struct(v, NULL);
76 visit_free(v);
77}
78
79static void qmp_marshal_output_any(QObject *ret_in, QObject **ret_out, Error **errp)
80{
81 Error *err = NULL;
82 Visitor *v;
83
84 v = qobject_output_visitor_new(ret_out);
85 visit_type_any(v, "unused", &ret_in, &err);
86 if (!err) {
87 visit_complete(v, ret_out);
88 }
89 error_propagate(errp, err);
90 visit_free(v);
91 v = qapi_dealloc_visitor_new();
92 visit_type_any(v, "unused", &ret_in, NULL);
93 visit_free(v);
94}
95
96void qmp_marshal_qom_get(QDict *args, QObject **ret, Error **errp)
97{
98 Error *err = NULL;
99 QObject *retval;
100 Visitor *v;
101 q_obj_qom_get_arg arg = {0};
102
103 v = qobject_input_visitor_new(QOBJECT(args));
104 visit_start_struct(v, NULL, NULL, 0, &err);
105 if (err) {
106 goto out;
107 }
108 visit_type_q_obj_qom_get_arg_members(v, &arg, &err);
109 if (!err) {
110 visit_check_struct(v, &err);
111 }
112 visit_end_struct(v, NULL);
113 if (err) {
114 goto out;
115 }
116
117 retval = qmp_qom_get(arg.path, arg.property, &err);
118 if (err) {
119 goto out;
120 }
121
122 qmp_marshal_output_any(retval, ret, &err);
123
124out:
125 error_propagate(errp, err);
126 visit_free(v);
127 v = qapi_dealloc_visitor_new();
128 visit_start_struct(v, NULL, NULL, 0, NULL);
129 visit_type_q_obj_qom_get_arg_members(v, &arg, NULL);
130 visit_end_struct(v, NULL);
131 visit_free(v);
132}
133
134void qmp_marshal_qom_set(QDict *args, QObject **ret, Error **errp)
135{
136 Error *err = NULL;
137 Visitor *v;
138 q_obj_qom_set_arg arg = {0};
139
140 v = qobject_input_visitor_new(QOBJECT(args));
141 visit_start_struct(v, NULL, NULL, 0, &err);
142 if (err) {
143 goto out;
144 }
145 visit_type_q_obj_qom_set_arg_members(v, &arg, &err);
146 if (!err) {
147 visit_check_struct(v, &err);
148 }
149 visit_end_struct(v, NULL);
150 if (err) {
151 goto out;
152 }
153
154 qmp_qom_set(arg.path, arg.property, arg.value, &err);
155
156out:
157 error_propagate(errp, err);
158 visit_free(v);
159 v = qapi_dealloc_visitor_new();
160 visit_start_struct(v, NULL, NULL, 0, NULL);
161 visit_type_q_obj_qom_set_arg_members(v, &arg, NULL);
162 visit_end_struct(v, NULL);
163 visit_free(v);
164}
165
166static void qmp_marshal_output_ObjectTypeInfoList(ObjectTypeInfoList *ret_in, QObject **ret_out, Error **errp)
167{
168 Error *err = NULL;
169 Visitor *v;
170
171 v = qobject_output_visitor_new(ret_out);
172 visit_type_ObjectTypeInfoList(v, "unused", &ret_in, &err);
173 if (!err) {
174 visit_complete(v, ret_out);
175 }
176 error_propagate(errp, err);
177 visit_free(v);
178 v = qapi_dealloc_visitor_new();
179 visit_type_ObjectTypeInfoList(v, "unused", &ret_in, NULL);
180 visit_free(v);
181}
182
183void qmp_marshal_qom_list_types(QDict *args, QObject **ret, Error **errp)
184{
185 Error *err = NULL;
186 ObjectTypeInfoList *retval;
187 Visitor *v;
188 q_obj_qom_list_types_arg arg = {0};
189
190 v = qobject_input_visitor_new(QOBJECT(args));
191 visit_start_struct(v, NULL, NULL, 0, &err);
192 if (err) {
193 goto out;
194 }
195 visit_type_q_obj_qom_list_types_arg_members(v, &arg, &err);
196 if (!err) {
197 visit_check_struct(v, &err);
198 }
199 visit_end_struct(v, NULL);
200 if (err) {
201 goto out;
202 }
203
204 retval = qmp_qom_list_types(arg.has_implements, arg.implements, arg.has_abstract, arg.abstract, &err);
205 if (err) {
206 goto out;
207 }
208
209 qmp_marshal_output_ObjectTypeInfoList(retval, ret, &err);
210
211out:
212 error_propagate(errp, err);
213 visit_free(v);
214 v = qapi_dealloc_visitor_new();
215 visit_start_struct(v, NULL, NULL, 0, NULL);
216 visit_type_q_obj_qom_list_types_arg_members(v, &arg, NULL);
217 visit_end_struct(v, NULL);
218 visit_free(v);
219}
220
221void qmp_marshal_qom_list_properties(QDict *args, QObject **ret, Error **errp)
222{
223 Error *err = NULL;
224 ObjectPropertyInfoList *retval;
225 Visitor *v;
226 q_obj_qom_list_properties_arg arg = {0};
227
228 v = qobject_input_visitor_new(QOBJECT(args));
229 visit_start_struct(v, NULL, NULL, 0, &err);
230 if (err) {
231 goto out;
232 }
233 visit_type_q_obj_qom_list_properties_arg_members(v, &arg, &err);
234 if (!err) {
235 visit_check_struct(v, &err);
236 }
237 visit_end_struct(v, NULL);
238 if (err) {
239 goto out;
240 }
241
242 retval = qmp_qom_list_properties(arg.q_typename, &err);
243 if (err) {
244 goto out;
245 }
246
247 qmp_marshal_output_ObjectPropertyInfoList(retval, ret, &err);
248
249out:
250 error_propagate(errp, err);
251 visit_free(v);
252 v = qapi_dealloc_visitor_new();
253 visit_start_struct(v, NULL, NULL, 0, NULL);
254 visit_type_q_obj_qom_list_properties_arg_members(v, &arg, NULL);
255 visit_end_struct(v, NULL);
256 visit_free(v);
257}
258
259void qmp_marshal_object_add(QDict *args, QObject **ret, Error **errp)
260{
261 Error *err = NULL;
262 Visitor *v;
263 q_obj_object_add_arg arg = {0};
264
265 v = qobject_input_visitor_new(QOBJECT(args));
266 visit_start_struct(v, NULL, NULL, 0, &err);
267 if (err) {
268 goto out;
269 }
270 visit_type_q_obj_object_add_arg_members(v, &arg, &err);
271 if (!err) {
272 visit_check_struct(v, &err);
273 }
274 visit_end_struct(v, NULL);
275 if (err) {
276 goto out;
277 }
278
279 qmp_object_add(arg.qom_type, arg.id, arg.has_props, arg.props, &err);
280
281out:
282 error_propagate(errp, err);
283 visit_free(v);
284 v = qapi_dealloc_visitor_new();
285 visit_start_struct(v, NULL, NULL, 0, NULL);
286 visit_type_q_obj_object_add_arg_members(v, &arg, NULL);
287 visit_end_struct(v, NULL);
288 visit_free(v);
289}
290
291void qmp_marshal_object_del(QDict *args, QObject **ret, Error **errp)
292{
293 Error *err = NULL;
294 Visitor *v;
295 q_obj_object_del_arg arg = {0};
296
297 v = qobject_input_visitor_new(QOBJECT(args));
298 visit_start_struct(v, NULL, NULL, 0, &err);
299 if (err) {
300 goto out;
301 }
302 visit_type_q_obj_object_del_arg_members(v, &arg, &err);
303 if (!err) {
304 visit_check_struct(v, &err);
305 }
306 visit_end_struct(v, NULL);
307 if (err) {
308 goto out;
309 }
310
311 qmp_object_del(arg.id, &err);
312
313out:
314 error_propagate(errp, err);
315 visit_free(v);
316 v = qapi_dealloc_visitor_new();
317 visit_start_struct(v, NULL, NULL, 0, NULL);
318 visit_type_q_obj_object_del_arg_members(v, &arg, NULL);
319 visit_end_struct(v, NULL);
320 visit_free(v);
321}
322
323/* Dummy declaration to prevent empty .o file */
324char qapi_dummy_qapi_commands_qom_c;
325