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-char.h"
21#include "qapi-commands-char.h"
22
23
24static void qmp_marshal_output_ChardevInfoList(ChardevInfoList *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_ChardevInfoList(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_ChardevInfoList(v, "unused", &ret_in, NULL);
38 visit_free(v);
39}
40
41void qmp_marshal_query_chardev(QDict *args, QObject **ret, Error **errp)
42{
43 Error *err = NULL;
44 ChardevInfoList *retval;
45 Visitor *v = NULL;
46
47 if (args) {
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
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
63 retval = qmp_query_chardev(&err);
64 if (err) {
65 goto out;
66 }
67
68 qmp_marshal_output_ChardevInfoList(retval, ret, &err);
69
70out:
71 error_propagate(errp, err);
72 visit_free(v);
73 if (args) {
74 v = qapi_dealloc_visitor_new();
75 visit_start_struct(v, NULL, NULL, 0, NULL);
76
77 visit_end_struct(v, NULL);
78 visit_free(v);
79 }
80}
81
82static void qmp_marshal_output_ChardevBackendInfoList(ChardevBackendInfoList *ret_in, QObject **ret_out, Error **errp)
83{
84 Error *err = NULL;
85 Visitor *v;
86
87 v = qobject_output_visitor_new(ret_out);
88 visit_type_ChardevBackendInfoList(v, "unused", &ret_in, &err);
89 if (!err) {
90 visit_complete(v, ret_out);
91 }
92 error_propagate(errp, err);
93 visit_free(v);
94 v = qapi_dealloc_visitor_new();
95 visit_type_ChardevBackendInfoList(v, "unused", &ret_in, NULL);
96 visit_free(v);
97}
98
99void qmp_marshal_query_chardev_backends(QDict *args, QObject **ret, Error **errp)
100{
101 Error *err = NULL;
102 ChardevBackendInfoList *retval;
103 Visitor *v = NULL;
104
105 if (args) {
106 v = qobject_input_visitor_new(QOBJECT(args));
107 visit_start_struct(v, NULL, NULL, 0, &err);
108 if (err) {
109 goto out;
110 }
111
112 if (!err) {
113 visit_check_struct(v, &err);
114 }
115 visit_end_struct(v, NULL);
116 if (err) {
117 goto out;
118 }
119 }
120
121 retval = qmp_query_chardev_backends(&err);
122 if (err) {
123 goto out;
124 }
125
126 qmp_marshal_output_ChardevBackendInfoList(retval, ret, &err);
127
128out:
129 error_propagate(errp, err);
130 visit_free(v);
131 if (args) {
132 v = qapi_dealloc_visitor_new();
133 visit_start_struct(v, NULL, NULL, 0, NULL);
134
135 visit_end_struct(v, NULL);
136 visit_free(v);
137 }
138}
139
140void qmp_marshal_ringbuf_write(QDict *args, QObject **ret, Error **errp)
141{
142 Error *err = NULL;
143 Visitor *v;
144 q_obj_ringbuf_write_arg arg = {0};
145
146 v = qobject_input_visitor_new(QOBJECT(args));
147 visit_start_struct(v, NULL, NULL, 0, &err);
148 if (err) {
149 goto out;
150 }
151 visit_type_q_obj_ringbuf_write_arg_members(v, &arg, &err);
152 if (!err) {
153 visit_check_struct(v, &err);
154 }
155 visit_end_struct(v, NULL);
156 if (err) {
157 goto out;
158 }
159
160 qmp_ringbuf_write(arg.device, arg.data, arg.has_format, arg.format, &err);
161
162out:
163 error_propagate(errp, err);
164 visit_free(v);
165 v = qapi_dealloc_visitor_new();
166 visit_start_struct(v, NULL, NULL, 0, NULL);
167 visit_type_q_obj_ringbuf_write_arg_members(v, &arg, NULL);
168 visit_end_struct(v, NULL);
169 visit_free(v);
170}
171
172static void qmp_marshal_output_str(char *ret_in, QObject **ret_out, Error **errp)
173{
174 Error *err = NULL;
175 Visitor *v;
176
177 v = qobject_output_visitor_new(ret_out);
178 visit_type_str(v, "unused", &ret_in, &err);
179 if (!err) {
180 visit_complete(v, ret_out);
181 }
182 error_propagate(errp, err);
183 visit_free(v);
184 v = qapi_dealloc_visitor_new();
185 visit_type_str(v, "unused", &ret_in, NULL);
186 visit_free(v);
187}
188
189void qmp_marshal_ringbuf_read(QDict *args, QObject **ret, Error **errp)
190{
191 Error *err = NULL;
192 char *retval;
193 Visitor *v;
194 q_obj_ringbuf_read_arg arg = {0};
195
196 v = qobject_input_visitor_new(QOBJECT(args));
197 visit_start_struct(v, NULL, NULL, 0, &err);
198 if (err) {
199 goto out;
200 }
201 visit_type_q_obj_ringbuf_read_arg_members(v, &arg, &err);
202 if (!err) {
203 visit_check_struct(v, &err);
204 }
205 visit_end_struct(v, NULL);
206 if (err) {
207 goto out;
208 }
209
210 retval = qmp_ringbuf_read(arg.device, arg.size, arg.has_format, arg.format, &err);
211 if (err) {
212 goto out;
213 }
214
215 qmp_marshal_output_str(retval, ret, &err);
216
217out:
218 error_propagate(errp, err);
219 visit_free(v);
220 v = qapi_dealloc_visitor_new();
221 visit_start_struct(v, NULL, NULL, 0, NULL);
222 visit_type_q_obj_ringbuf_read_arg_members(v, &arg, NULL);
223 visit_end_struct(v, NULL);
224 visit_free(v);
225}
226
227static void qmp_marshal_output_ChardevReturn(ChardevReturn *ret_in, QObject **ret_out, Error **errp)
228{
229 Error *err = NULL;
230 Visitor *v;
231
232 v = qobject_output_visitor_new(ret_out);
233 visit_type_ChardevReturn(v, "unused", &ret_in, &err);
234 if (!err) {
235 visit_complete(v, ret_out);
236 }
237 error_propagate(errp, err);
238 visit_free(v);
239 v = qapi_dealloc_visitor_new();
240 visit_type_ChardevReturn(v, "unused", &ret_in, NULL);
241 visit_free(v);
242}
243
244void qmp_marshal_chardev_add(QDict *args, QObject **ret, Error **errp)
245{
246 Error *err = NULL;
247 ChardevReturn *retval;
248 Visitor *v;
249 q_obj_chardev_add_arg arg = {0};
250
251 v = qobject_input_visitor_new(QOBJECT(args));
252 visit_start_struct(v, NULL, NULL, 0, &err);
253 if (err) {
254 goto out;
255 }
256 visit_type_q_obj_chardev_add_arg_members(v, &arg, &err);
257 if (!err) {
258 visit_check_struct(v, &err);
259 }
260 visit_end_struct(v, NULL);
261 if (err) {
262 goto out;
263 }
264
265 retval = qmp_chardev_add(arg.id, arg.backend, &err);
266 if (err) {
267 goto out;
268 }
269
270 qmp_marshal_output_ChardevReturn(retval, ret, &err);
271
272out:
273 error_propagate(errp, err);
274 visit_free(v);
275 v = qapi_dealloc_visitor_new();
276 visit_start_struct(v, NULL, NULL, 0, NULL);
277 visit_type_q_obj_chardev_add_arg_members(v, &arg, NULL);
278 visit_end_struct(v, NULL);
279 visit_free(v);
280}
281
282void qmp_marshal_chardev_change(QDict *args, QObject **ret, Error **errp)
283{
284 Error *err = NULL;
285 ChardevReturn *retval;
286 Visitor *v;
287 q_obj_chardev_change_arg arg = {0};
288
289 v = qobject_input_visitor_new(QOBJECT(args));
290 visit_start_struct(v, NULL, NULL, 0, &err);
291 if (err) {
292 goto out;
293 }
294 visit_type_q_obj_chardev_change_arg_members(v, &arg, &err);
295 if (!err) {
296 visit_check_struct(v, &err);
297 }
298 visit_end_struct(v, NULL);
299 if (err) {
300 goto out;
301 }
302
303 retval = qmp_chardev_change(arg.id, arg.backend, &err);
304 if (err) {
305 goto out;
306 }
307
308 qmp_marshal_output_ChardevReturn(retval, ret, &err);
309
310out:
311 error_propagate(errp, err);
312 visit_free(v);
313 v = qapi_dealloc_visitor_new();
314 visit_start_struct(v, NULL, NULL, 0, NULL);
315 visit_type_q_obj_chardev_change_arg_members(v, &arg, NULL);
316 visit_end_struct(v, NULL);
317 visit_free(v);
318}
319
320void qmp_marshal_chardev_remove(QDict *args, QObject **ret, Error **errp)
321{
322 Error *err = NULL;
323 Visitor *v;
324 q_obj_chardev_remove_arg arg = {0};
325
326 v = qobject_input_visitor_new(QOBJECT(args));
327 visit_start_struct(v, NULL, NULL, 0, &err);
328 if (err) {
329 goto out;
330 }
331 visit_type_q_obj_chardev_remove_arg_members(v, &arg, &err);
332 if (!err) {
333 visit_check_struct(v, &err);
334 }
335 visit_end_struct(v, NULL);
336 if (err) {
337 goto out;
338 }
339
340 qmp_chardev_remove(arg.id, &err);
341
342out:
343 error_propagate(errp, err);
344 visit_free(v);
345 v = qapi_dealloc_visitor_new();
346 visit_start_struct(v, NULL, NULL, 0, NULL);
347 visit_type_q_obj_chardev_remove_arg_members(v, &arg, NULL);
348 visit_end_struct(v, NULL);
349 visit_free(v);
350}
351
352void qmp_marshal_chardev_send_break(QDict *args, QObject **ret, Error **errp)
353{
354 Error *err = NULL;
355 Visitor *v;
356 q_obj_chardev_send_break_arg arg = {0};
357
358 v = qobject_input_visitor_new(QOBJECT(args));
359 visit_start_struct(v, NULL, NULL, 0, &err);
360 if (err) {
361 goto out;
362 }
363 visit_type_q_obj_chardev_send_break_arg_members(v, &arg, &err);
364 if (!err) {
365 visit_check_struct(v, &err);
366 }
367 visit_end_struct(v, NULL);
368 if (err) {
369 goto out;
370 }
371
372 qmp_chardev_send_break(arg.id, &err);
373
374out:
375 error_propagate(errp, err);
376 visit_free(v);
377 v = qapi_dealloc_visitor_new();
378 visit_start_struct(v, NULL, NULL, 0, NULL);
379 visit_type_q_obj_chardev_send_break_arg_members(v, &arg, NULL);
380 visit_end_struct(v, NULL);
381 visit_free(v);
382}
383
384/* Dummy declaration to prevent empty .o file */
385char qapi_dummy_qapi_commands_char_c;
386