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-misc.h" |
21 | #include "qapi-commands-misc.h" |
22 | |
23 | |
24 | void qmp_marshal_qmp_capabilities(QDict *args, QObject **ret, Error **errp) |
25 | { |
26 | Error *err = NULL; |
27 | Visitor *v; |
28 | q_obj_qmp_capabilities_arg arg = {0}; |
29 | |
30 | v = qobject_input_visitor_new(QOBJECT(args)); |
31 | visit_start_struct(v, NULL, NULL, 0, &err); |
32 | if (err) { |
33 | goto out; |
34 | } |
35 | visit_type_q_obj_qmp_capabilities_arg_members(v, &arg, &err); |
36 | if (!err) { |
37 | visit_check_struct(v, &err); |
38 | } |
39 | visit_end_struct(v, NULL); |
40 | if (err) { |
41 | goto out; |
42 | } |
43 | |
44 | qmp_qmp_capabilities(arg.has_enable, arg.enable, &err); |
45 | |
46 | out: |
47 | error_propagate(errp, err); |
48 | visit_free(v); |
49 | v = qapi_dealloc_visitor_new(); |
50 | visit_start_struct(v, NULL, NULL, 0, NULL); |
51 | visit_type_q_obj_qmp_capabilities_arg_members(v, &arg, NULL); |
52 | visit_end_struct(v, NULL); |
53 | visit_free(v); |
54 | } |
55 | |
56 | static void qmp_marshal_output_VersionInfo(VersionInfo *ret_in, QObject **ret_out, Error **errp) |
57 | { |
58 | Error *err = NULL; |
59 | Visitor *v; |
60 | |
61 | v = qobject_output_visitor_new(ret_out); |
62 | visit_type_VersionInfo(v, "unused" , &ret_in, &err); |
63 | if (!err) { |
64 | visit_complete(v, ret_out); |
65 | } |
66 | error_propagate(errp, err); |
67 | visit_free(v); |
68 | v = qapi_dealloc_visitor_new(); |
69 | visit_type_VersionInfo(v, "unused" , &ret_in, NULL); |
70 | visit_free(v); |
71 | } |
72 | |
73 | void qmp_marshal_query_version(QDict *args, QObject **ret, Error **errp) |
74 | { |
75 | Error *err = NULL; |
76 | VersionInfo *retval; |
77 | Visitor *v = NULL; |
78 | |
79 | if (args) { |
80 | v = qobject_input_visitor_new(QOBJECT(args)); |
81 | visit_start_struct(v, NULL, NULL, 0, &err); |
82 | if (err) { |
83 | goto out; |
84 | } |
85 | |
86 | if (!err) { |
87 | visit_check_struct(v, &err); |
88 | } |
89 | visit_end_struct(v, NULL); |
90 | if (err) { |
91 | goto out; |
92 | } |
93 | } |
94 | |
95 | retval = qmp_query_version(&err); |
96 | if (err) { |
97 | goto out; |
98 | } |
99 | |
100 | qmp_marshal_output_VersionInfo(retval, ret, &err); |
101 | |
102 | out: |
103 | error_propagate(errp, err); |
104 | visit_free(v); |
105 | if (args) { |
106 | v = qapi_dealloc_visitor_new(); |
107 | visit_start_struct(v, NULL, NULL, 0, NULL); |
108 | |
109 | visit_end_struct(v, NULL); |
110 | visit_free(v); |
111 | } |
112 | } |
113 | |
114 | static void qmp_marshal_output_CommandInfoList(CommandInfoList *ret_in, QObject **ret_out, Error **errp) |
115 | { |
116 | Error *err = NULL; |
117 | Visitor *v; |
118 | |
119 | v = qobject_output_visitor_new(ret_out); |
120 | visit_type_CommandInfoList(v, "unused" , &ret_in, &err); |
121 | if (!err) { |
122 | visit_complete(v, ret_out); |
123 | } |
124 | error_propagate(errp, err); |
125 | visit_free(v); |
126 | v = qapi_dealloc_visitor_new(); |
127 | visit_type_CommandInfoList(v, "unused" , &ret_in, NULL); |
128 | visit_free(v); |
129 | } |
130 | |
131 | void qmp_marshal_query_commands(QDict *args, QObject **ret, Error **errp) |
132 | { |
133 | Error *err = NULL; |
134 | CommandInfoList *retval; |
135 | Visitor *v = NULL; |
136 | |
137 | if (args) { |
138 | v = qobject_input_visitor_new(QOBJECT(args)); |
139 | visit_start_struct(v, NULL, NULL, 0, &err); |
140 | if (err) { |
141 | goto out; |
142 | } |
143 | |
144 | if (!err) { |
145 | visit_check_struct(v, &err); |
146 | } |
147 | visit_end_struct(v, NULL); |
148 | if (err) { |
149 | goto out; |
150 | } |
151 | } |
152 | |
153 | retval = qmp_query_commands(&err); |
154 | if (err) { |
155 | goto out; |
156 | } |
157 | |
158 | qmp_marshal_output_CommandInfoList(retval, ret, &err); |
159 | |
160 | out: |
161 | error_propagate(errp, err); |
162 | visit_free(v); |
163 | if (args) { |
164 | v = qapi_dealloc_visitor_new(); |
165 | visit_start_struct(v, NULL, NULL, 0, NULL); |
166 | |
167 | visit_end_struct(v, NULL); |
168 | visit_free(v); |
169 | } |
170 | } |
171 | |
172 | void qmp_marshal_add_client(QDict *args, QObject **ret, Error **errp) |
173 | { |
174 | Error *err = NULL; |
175 | Visitor *v; |
176 | q_obj_add_client_arg arg = {0}; |
177 | |
178 | v = qobject_input_visitor_new(QOBJECT(args)); |
179 | visit_start_struct(v, NULL, NULL, 0, &err); |
180 | if (err) { |
181 | goto out; |
182 | } |
183 | visit_type_q_obj_add_client_arg_members(v, &arg, &err); |
184 | if (!err) { |
185 | visit_check_struct(v, &err); |
186 | } |
187 | visit_end_struct(v, NULL); |
188 | if (err) { |
189 | goto out; |
190 | } |
191 | |
192 | qmp_add_client(arg.protocol, arg.fdname, arg.has_skipauth, arg.skipauth, arg.has_tls, arg.tls, &err); |
193 | |
194 | out: |
195 | error_propagate(errp, err); |
196 | visit_free(v); |
197 | v = qapi_dealloc_visitor_new(); |
198 | visit_start_struct(v, NULL, NULL, 0, NULL); |
199 | visit_type_q_obj_add_client_arg_members(v, &arg, NULL); |
200 | visit_end_struct(v, NULL); |
201 | visit_free(v); |
202 | } |
203 | |
204 | static void qmp_marshal_output_NameInfo(NameInfo *ret_in, QObject **ret_out, Error **errp) |
205 | { |
206 | Error *err = NULL; |
207 | Visitor *v; |
208 | |
209 | v = qobject_output_visitor_new(ret_out); |
210 | visit_type_NameInfo(v, "unused" , &ret_in, &err); |
211 | if (!err) { |
212 | visit_complete(v, ret_out); |
213 | } |
214 | error_propagate(errp, err); |
215 | visit_free(v); |
216 | v = qapi_dealloc_visitor_new(); |
217 | visit_type_NameInfo(v, "unused" , &ret_in, NULL); |
218 | visit_free(v); |
219 | } |
220 | |
221 | void qmp_marshal_query_name(QDict *args, QObject **ret, Error **errp) |
222 | { |
223 | Error *err = NULL; |
224 | NameInfo *retval; |
225 | Visitor *v = NULL; |
226 | |
227 | if (args) { |
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 | |
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 | |
243 | retval = qmp_query_name(&err); |
244 | if (err) { |
245 | goto out; |
246 | } |
247 | |
248 | qmp_marshal_output_NameInfo(retval, ret, &err); |
249 | |
250 | out: |
251 | error_propagate(errp, err); |
252 | visit_free(v); |
253 | if (args) { |
254 | v = qapi_dealloc_visitor_new(); |
255 | visit_start_struct(v, NULL, NULL, 0, NULL); |
256 | |
257 | visit_end_struct(v, NULL); |
258 | visit_free(v); |
259 | } |
260 | } |
261 | |
262 | static void qmp_marshal_output_KvmInfo(KvmInfo *ret_in, QObject **ret_out, Error **errp) |
263 | { |
264 | Error *err = NULL; |
265 | Visitor *v; |
266 | |
267 | v = qobject_output_visitor_new(ret_out); |
268 | visit_type_KvmInfo(v, "unused" , &ret_in, &err); |
269 | if (!err) { |
270 | visit_complete(v, ret_out); |
271 | } |
272 | error_propagate(errp, err); |
273 | visit_free(v); |
274 | v = qapi_dealloc_visitor_new(); |
275 | visit_type_KvmInfo(v, "unused" , &ret_in, NULL); |
276 | visit_free(v); |
277 | } |
278 | |
279 | void qmp_marshal_query_kvm(QDict *args, QObject **ret, Error **errp) |
280 | { |
281 | Error *err = NULL; |
282 | KvmInfo *retval; |
283 | Visitor *v = NULL; |
284 | |
285 | if (args) { |
286 | v = qobject_input_visitor_new(QOBJECT(args)); |
287 | visit_start_struct(v, NULL, NULL, 0, &err); |
288 | if (err) { |
289 | goto out; |
290 | } |
291 | |
292 | if (!err) { |
293 | visit_check_struct(v, &err); |
294 | } |
295 | visit_end_struct(v, NULL); |
296 | if (err) { |
297 | goto out; |
298 | } |
299 | } |
300 | |
301 | retval = qmp_query_kvm(&err); |
302 | if (err) { |
303 | goto out; |
304 | } |
305 | |
306 | qmp_marshal_output_KvmInfo(retval, ret, &err); |
307 | |
308 | out: |
309 | error_propagate(errp, err); |
310 | visit_free(v); |
311 | if (args) { |
312 | v = qapi_dealloc_visitor_new(); |
313 | visit_start_struct(v, NULL, NULL, 0, NULL); |
314 | |
315 | visit_end_struct(v, NULL); |
316 | visit_free(v); |
317 | } |
318 | } |
319 | |
320 | static void qmp_marshal_output_UuidInfo(UuidInfo *ret_in, QObject **ret_out, Error **errp) |
321 | { |
322 | Error *err = NULL; |
323 | Visitor *v; |
324 | |
325 | v = qobject_output_visitor_new(ret_out); |
326 | visit_type_UuidInfo(v, "unused" , &ret_in, &err); |
327 | if (!err) { |
328 | visit_complete(v, ret_out); |
329 | } |
330 | error_propagate(errp, err); |
331 | visit_free(v); |
332 | v = qapi_dealloc_visitor_new(); |
333 | visit_type_UuidInfo(v, "unused" , &ret_in, NULL); |
334 | visit_free(v); |
335 | } |
336 | |
337 | void qmp_marshal_query_uuid(QDict *args, QObject **ret, Error **errp) |
338 | { |
339 | Error *err = NULL; |
340 | UuidInfo *retval; |
341 | Visitor *v = NULL; |
342 | |
343 | if (args) { |
344 | v = qobject_input_visitor_new(QOBJECT(args)); |
345 | visit_start_struct(v, NULL, NULL, 0, &err); |
346 | if (err) { |
347 | goto out; |
348 | } |
349 | |
350 | if (!err) { |
351 | visit_check_struct(v, &err); |
352 | } |
353 | visit_end_struct(v, NULL); |
354 | if (err) { |
355 | goto out; |
356 | } |
357 | } |
358 | |
359 | retval = qmp_query_uuid(&err); |
360 | if (err) { |
361 | goto out; |
362 | } |
363 | |
364 | qmp_marshal_output_UuidInfo(retval, ret, &err); |
365 | |
366 | out: |
367 | error_propagate(errp, err); |
368 | visit_free(v); |
369 | if (args) { |
370 | v = qapi_dealloc_visitor_new(); |
371 | visit_start_struct(v, NULL, NULL, 0, NULL); |
372 | |
373 | visit_end_struct(v, NULL); |
374 | visit_free(v); |
375 | } |
376 | } |
377 | |
378 | static void qmp_marshal_output_EventInfoList(EventInfoList *ret_in, QObject **ret_out, Error **errp) |
379 | { |
380 | Error *err = NULL; |
381 | Visitor *v; |
382 | |
383 | v = qobject_output_visitor_new(ret_out); |
384 | visit_type_EventInfoList(v, "unused" , &ret_in, &err); |
385 | if (!err) { |
386 | visit_complete(v, ret_out); |
387 | } |
388 | error_propagate(errp, err); |
389 | visit_free(v); |
390 | v = qapi_dealloc_visitor_new(); |
391 | visit_type_EventInfoList(v, "unused" , &ret_in, NULL); |
392 | visit_free(v); |
393 | } |
394 | |
395 | void qmp_marshal_query_events(QDict *args, QObject **ret, Error **errp) |
396 | { |
397 | Error *err = NULL; |
398 | EventInfoList *retval; |
399 | Visitor *v = NULL; |
400 | |
401 | if (args) { |
402 | v = qobject_input_visitor_new(QOBJECT(args)); |
403 | visit_start_struct(v, NULL, NULL, 0, &err); |
404 | if (err) { |
405 | goto out; |
406 | } |
407 | |
408 | if (!err) { |
409 | visit_check_struct(v, &err); |
410 | } |
411 | visit_end_struct(v, NULL); |
412 | if (err) { |
413 | goto out; |
414 | } |
415 | } |
416 | |
417 | retval = qmp_query_events(&err); |
418 | if (err) { |
419 | goto out; |
420 | } |
421 | |
422 | qmp_marshal_output_EventInfoList(retval, ret, &err); |
423 | |
424 | out: |
425 | error_propagate(errp, err); |
426 | visit_free(v); |
427 | if (args) { |
428 | v = qapi_dealloc_visitor_new(); |
429 | visit_start_struct(v, NULL, NULL, 0, NULL); |
430 | |
431 | visit_end_struct(v, NULL); |
432 | visit_free(v); |
433 | } |
434 | } |
435 | |
436 | static void qmp_marshal_output_IOThreadInfoList(IOThreadInfoList *ret_in, QObject **ret_out, Error **errp) |
437 | { |
438 | Error *err = NULL; |
439 | Visitor *v; |
440 | |
441 | v = qobject_output_visitor_new(ret_out); |
442 | visit_type_IOThreadInfoList(v, "unused" , &ret_in, &err); |
443 | if (!err) { |
444 | visit_complete(v, ret_out); |
445 | } |
446 | error_propagate(errp, err); |
447 | visit_free(v); |
448 | v = qapi_dealloc_visitor_new(); |
449 | visit_type_IOThreadInfoList(v, "unused" , &ret_in, NULL); |
450 | visit_free(v); |
451 | } |
452 | |
453 | void qmp_marshal_query_iothreads(QDict *args, QObject **ret, Error **errp) |
454 | { |
455 | Error *err = NULL; |
456 | IOThreadInfoList *retval; |
457 | Visitor *v = NULL; |
458 | |
459 | if (args) { |
460 | v = qobject_input_visitor_new(QOBJECT(args)); |
461 | visit_start_struct(v, NULL, NULL, 0, &err); |
462 | if (err) { |
463 | goto out; |
464 | } |
465 | |
466 | if (!err) { |
467 | visit_check_struct(v, &err); |
468 | } |
469 | visit_end_struct(v, NULL); |
470 | if (err) { |
471 | goto out; |
472 | } |
473 | } |
474 | |
475 | retval = qmp_query_iothreads(&err); |
476 | if (err) { |
477 | goto out; |
478 | } |
479 | |
480 | qmp_marshal_output_IOThreadInfoList(retval, ret, &err); |
481 | |
482 | out: |
483 | error_propagate(errp, err); |
484 | visit_free(v); |
485 | if (args) { |
486 | v = qapi_dealloc_visitor_new(); |
487 | visit_start_struct(v, NULL, NULL, 0, NULL); |
488 | |
489 | visit_end_struct(v, NULL); |
490 | visit_free(v); |
491 | } |
492 | } |
493 | |
494 | static void qmp_marshal_output_BalloonInfo(BalloonInfo *ret_in, QObject **ret_out, Error **errp) |
495 | { |
496 | Error *err = NULL; |
497 | Visitor *v; |
498 | |
499 | v = qobject_output_visitor_new(ret_out); |
500 | visit_type_BalloonInfo(v, "unused" , &ret_in, &err); |
501 | if (!err) { |
502 | visit_complete(v, ret_out); |
503 | } |
504 | error_propagate(errp, err); |
505 | visit_free(v); |
506 | v = qapi_dealloc_visitor_new(); |
507 | visit_type_BalloonInfo(v, "unused" , &ret_in, NULL); |
508 | visit_free(v); |
509 | } |
510 | |
511 | void qmp_marshal_query_balloon(QDict *args, QObject **ret, Error **errp) |
512 | { |
513 | Error *err = NULL; |
514 | BalloonInfo *retval; |
515 | Visitor *v = NULL; |
516 | |
517 | if (args) { |
518 | v = qobject_input_visitor_new(QOBJECT(args)); |
519 | visit_start_struct(v, NULL, NULL, 0, &err); |
520 | if (err) { |
521 | goto out; |
522 | } |
523 | |
524 | if (!err) { |
525 | visit_check_struct(v, &err); |
526 | } |
527 | visit_end_struct(v, NULL); |
528 | if (err) { |
529 | goto out; |
530 | } |
531 | } |
532 | |
533 | retval = qmp_query_balloon(&err); |
534 | if (err) { |
535 | goto out; |
536 | } |
537 | |
538 | qmp_marshal_output_BalloonInfo(retval, ret, &err); |
539 | |
540 | out: |
541 | error_propagate(errp, err); |
542 | visit_free(v); |
543 | if (args) { |
544 | v = qapi_dealloc_visitor_new(); |
545 | visit_start_struct(v, NULL, NULL, 0, NULL); |
546 | |
547 | visit_end_struct(v, NULL); |
548 | visit_free(v); |
549 | } |
550 | } |
551 | |
552 | static void qmp_marshal_output_PciInfoList(PciInfoList *ret_in, QObject **ret_out, Error **errp) |
553 | { |
554 | Error *err = NULL; |
555 | Visitor *v; |
556 | |
557 | v = qobject_output_visitor_new(ret_out); |
558 | visit_type_PciInfoList(v, "unused" , &ret_in, &err); |
559 | if (!err) { |
560 | visit_complete(v, ret_out); |
561 | } |
562 | error_propagate(errp, err); |
563 | visit_free(v); |
564 | v = qapi_dealloc_visitor_new(); |
565 | visit_type_PciInfoList(v, "unused" , &ret_in, NULL); |
566 | visit_free(v); |
567 | } |
568 | |
569 | void qmp_marshal_query_pci(QDict *args, QObject **ret, Error **errp) |
570 | { |
571 | Error *err = NULL; |
572 | PciInfoList *retval; |
573 | Visitor *v = NULL; |
574 | |
575 | if (args) { |
576 | v = qobject_input_visitor_new(QOBJECT(args)); |
577 | visit_start_struct(v, NULL, NULL, 0, &err); |
578 | if (err) { |
579 | goto out; |
580 | } |
581 | |
582 | if (!err) { |
583 | visit_check_struct(v, &err); |
584 | } |
585 | visit_end_struct(v, NULL); |
586 | if (err) { |
587 | goto out; |
588 | } |
589 | } |
590 | |
591 | retval = qmp_query_pci(&err); |
592 | if (err) { |
593 | goto out; |
594 | } |
595 | |
596 | qmp_marshal_output_PciInfoList(retval, ret, &err); |
597 | |
598 | out: |
599 | error_propagate(errp, err); |
600 | visit_free(v); |
601 | if (args) { |
602 | v = qapi_dealloc_visitor_new(); |
603 | visit_start_struct(v, NULL, NULL, 0, NULL); |
604 | |
605 | visit_end_struct(v, NULL); |
606 | visit_free(v); |
607 | } |
608 | } |
609 | |
610 | void qmp_marshal_quit(QDict *args, QObject **ret, Error **errp) |
611 | { |
612 | Error *err = NULL; |
613 | Visitor *v = NULL; |
614 | |
615 | if (args) { |
616 | v = qobject_input_visitor_new(QOBJECT(args)); |
617 | visit_start_struct(v, NULL, NULL, 0, &err); |
618 | if (err) { |
619 | goto out; |
620 | } |
621 | |
622 | if (!err) { |
623 | visit_check_struct(v, &err); |
624 | } |
625 | visit_end_struct(v, NULL); |
626 | if (err) { |
627 | goto out; |
628 | } |
629 | } |
630 | |
631 | qmp_quit(&err); |
632 | |
633 | out: |
634 | error_propagate(errp, err); |
635 | visit_free(v); |
636 | if (args) { |
637 | v = qapi_dealloc_visitor_new(); |
638 | visit_start_struct(v, NULL, NULL, 0, NULL); |
639 | |
640 | visit_end_struct(v, NULL); |
641 | visit_free(v); |
642 | } |
643 | } |
644 | |
645 | void qmp_marshal_stop(QDict *args, QObject **ret, Error **errp) |
646 | { |
647 | Error *err = NULL; |
648 | Visitor *v = NULL; |
649 | |
650 | if (args) { |
651 | v = qobject_input_visitor_new(QOBJECT(args)); |
652 | visit_start_struct(v, NULL, NULL, 0, &err); |
653 | if (err) { |
654 | goto out; |
655 | } |
656 | |
657 | if (!err) { |
658 | visit_check_struct(v, &err); |
659 | } |
660 | visit_end_struct(v, NULL); |
661 | if (err) { |
662 | goto out; |
663 | } |
664 | } |
665 | |
666 | qmp_stop(&err); |
667 | |
668 | out: |
669 | error_propagate(errp, err); |
670 | visit_free(v); |
671 | if (args) { |
672 | v = qapi_dealloc_visitor_new(); |
673 | visit_start_struct(v, NULL, NULL, 0, NULL); |
674 | |
675 | visit_end_struct(v, NULL); |
676 | visit_free(v); |
677 | } |
678 | } |
679 | |
680 | void qmp_marshal_system_reset(QDict *args, QObject **ret, Error **errp) |
681 | { |
682 | Error *err = NULL; |
683 | Visitor *v = NULL; |
684 | |
685 | if (args) { |
686 | v = qobject_input_visitor_new(QOBJECT(args)); |
687 | visit_start_struct(v, NULL, NULL, 0, &err); |
688 | if (err) { |
689 | goto out; |
690 | } |
691 | |
692 | if (!err) { |
693 | visit_check_struct(v, &err); |
694 | } |
695 | visit_end_struct(v, NULL); |
696 | if (err) { |
697 | goto out; |
698 | } |
699 | } |
700 | |
701 | qmp_system_reset(&err); |
702 | |
703 | out: |
704 | error_propagate(errp, err); |
705 | visit_free(v); |
706 | if (args) { |
707 | v = qapi_dealloc_visitor_new(); |
708 | visit_start_struct(v, NULL, NULL, 0, NULL); |
709 | |
710 | visit_end_struct(v, NULL); |
711 | visit_free(v); |
712 | } |
713 | } |
714 | |
715 | void qmp_marshal_system_powerdown(QDict *args, QObject **ret, Error **errp) |
716 | { |
717 | Error *err = NULL; |
718 | Visitor *v = NULL; |
719 | |
720 | if (args) { |
721 | v = qobject_input_visitor_new(QOBJECT(args)); |
722 | visit_start_struct(v, NULL, NULL, 0, &err); |
723 | if (err) { |
724 | goto out; |
725 | } |
726 | |
727 | if (!err) { |
728 | visit_check_struct(v, &err); |
729 | } |
730 | visit_end_struct(v, NULL); |
731 | if (err) { |
732 | goto out; |
733 | } |
734 | } |
735 | |
736 | qmp_system_powerdown(&err); |
737 | |
738 | out: |
739 | error_propagate(errp, err); |
740 | visit_free(v); |
741 | if (args) { |
742 | v = qapi_dealloc_visitor_new(); |
743 | visit_start_struct(v, NULL, NULL, 0, NULL); |
744 | |
745 | visit_end_struct(v, NULL); |
746 | visit_free(v); |
747 | } |
748 | } |
749 | |
750 | void qmp_marshal_memsave(QDict *args, QObject **ret, Error **errp) |
751 | { |
752 | Error *err = NULL; |
753 | Visitor *v; |
754 | q_obj_memsave_arg arg = {0}; |
755 | |
756 | v = qobject_input_visitor_new(QOBJECT(args)); |
757 | visit_start_struct(v, NULL, NULL, 0, &err); |
758 | if (err) { |
759 | goto out; |
760 | } |
761 | visit_type_q_obj_memsave_arg_members(v, &arg, &err); |
762 | if (!err) { |
763 | visit_check_struct(v, &err); |
764 | } |
765 | visit_end_struct(v, NULL); |
766 | if (err) { |
767 | goto out; |
768 | } |
769 | |
770 | qmp_memsave(arg.val, arg.size, arg.filename, arg.has_cpu_index, arg.cpu_index, &err); |
771 | |
772 | out: |
773 | error_propagate(errp, err); |
774 | visit_free(v); |
775 | v = qapi_dealloc_visitor_new(); |
776 | visit_start_struct(v, NULL, NULL, 0, NULL); |
777 | visit_type_q_obj_memsave_arg_members(v, &arg, NULL); |
778 | visit_end_struct(v, NULL); |
779 | visit_free(v); |
780 | } |
781 | |
782 | void qmp_marshal_pmemsave(QDict *args, QObject **ret, Error **errp) |
783 | { |
784 | Error *err = NULL; |
785 | Visitor *v; |
786 | q_obj_pmemsave_arg arg = {0}; |
787 | |
788 | v = qobject_input_visitor_new(QOBJECT(args)); |
789 | visit_start_struct(v, NULL, NULL, 0, &err); |
790 | if (err) { |
791 | goto out; |
792 | } |
793 | visit_type_q_obj_pmemsave_arg_members(v, &arg, &err); |
794 | if (!err) { |
795 | visit_check_struct(v, &err); |
796 | } |
797 | visit_end_struct(v, NULL); |
798 | if (err) { |
799 | goto out; |
800 | } |
801 | |
802 | qmp_pmemsave(arg.val, arg.size, arg.filename, &err); |
803 | |
804 | out: |
805 | error_propagate(errp, err); |
806 | visit_free(v); |
807 | v = qapi_dealloc_visitor_new(); |
808 | visit_start_struct(v, NULL, NULL, 0, NULL); |
809 | visit_type_q_obj_pmemsave_arg_members(v, &arg, NULL); |
810 | visit_end_struct(v, NULL); |
811 | visit_free(v); |
812 | } |
813 | |
814 | void qmp_marshal_cont(QDict *args, QObject **ret, Error **errp) |
815 | { |
816 | Error *err = NULL; |
817 | Visitor *v = NULL; |
818 | |
819 | if (args) { |
820 | v = qobject_input_visitor_new(QOBJECT(args)); |
821 | visit_start_struct(v, NULL, NULL, 0, &err); |
822 | if (err) { |
823 | goto out; |
824 | } |
825 | |
826 | if (!err) { |
827 | visit_check_struct(v, &err); |
828 | } |
829 | visit_end_struct(v, NULL); |
830 | if (err) { |
831 | goto out; |
832 | } |
833 | } |
834 | |
835 | qmp_cont(&err); |
836 | |
837 | out: |
838 | error_propagate(errp, err); |
839 | visit_free(v); |
840 | if (args) { |
841 | v = qapi_dealloc_visitor_new(); |
842 | visit_start_struct(v, NULL, NULL, 0, NULL); |
843 | |
844 | visit_end_struct(v, NULL); |
845 | visit_free(v); |
846 | } |
847 | } |
848 | |
849 | void qmp_marshal_x_exit_preconfig(QDict *args, QObject **ret, Error **errp) |
850 | { |
851 | Error *err = NULL; |
852 | Visitor *v = NULL; |
853 | |
854 | if (args) { |
855 | v = qobject_input_visitor_new(QOBJECT(args)); |
856 | visit_start_struct(v, NULL, NULL, 0, &err); |
857 | if (err) { |
858 | goto out; |
859 | } |
860 | |
861 | if (!err) { |
862 | visit_check_struct(v, &err); |
863 | } |
864 | visit_end_struct(v, NULL); |
865 | if (err) { |
866 | goto out; |
867 | } |
868 | } |
869 | |
870 | qmp_x_exit_preconfig(&err); |
871 | |
872 | out: |
873 | error_propagate(errp, err); |
874 | visit_free(v); |
875 | if (args) { |
876 | v = qapi_dealloc_visitor_new(); |
877 | visit_start_struct(v, NULL, NULL, 0, NULL); |
878 | |
879 | visit_end_struct(v, NULL); |
880 | visit_free(v); |
881 | } |
882 | } |
883 | |
884 | void qmp_marshal_system_wakeup(QDict *args, QObject **ret, Error **errp) |
885 | { |
886 | Error *err = NULL; |
887 | Visitor *v = NULL; |
888 | |
889 | if (args) { |
890 | v = qobject_input_visitor_new(QOBJECT(args)); |
891 | visit_start_struct(v, NULL, NULL, 0, &err); |
892 | if (err) { |
893 | goto out; |
894 | } |
895 | |
896 | if (!err) { |
897 | visit_check_struct(v, &err); |
898 | } |
899 | visit_end_struct(v, NULL); |
900 | if (err) { |
901 | goto out; |
902 | } |
903 | } |
904 | |
905 | qmp_system_wakeup(&err); |
906 | |
907 | out: |
908 | error_propagate(errp, err); |
909 | visit_free(v); |
910 | if (args) { |
911 | v = qapi_dealloc_visitor_new(); |
912 | visit_start_struct(v, NULL, NULL, 0, NULL); |
913 | |
914 | visit_end_struct(v, NULL); |
915 | visit_free(v); |
916 | } |
917 | } |
918 | |
919 | void qmp_marshal_inject_nmi(QDict *args, QObject **ret, Error **errp) |
920 | { |
921 | Error *err = NULL; |
922 | Visitor *v = NULL; |
923 | |
924 | if (args) { |
925 | v = qobject_input_visitor_new(QOBJECT(args)); |
926 | visit_start_struct(v, NULL, NULL, 0, &err); |
927 | if (err) { |
928 | goto out; |
929 | } |
930 | |
931 | if (!err) { |
932 | visit_check_struct(v, &err); |
933 | } |
934 | visit_end_struct(v, NULL); |
935 | if (err) { |
936 | goto out; |
937 | } |
938 | } |
939 | |
940 | qmp_inject_nmi(&err); |
941 | |
942 | out: |
943 | error_propagate(errp, err); |
944 | visit_free(v); |
945 | if (args) { |
946 | v = qapi_dealloc_visitor_new(); |
947 | visit_start_struct(v, NULL, NULL, 0, NULL); |
948 | |
949 | visit_end_struct(v, NULL); |
950 | visit_free(v); |
951 | } |
952 | } |
953 | |
954 | void qmp_marshal_balloon(QDict *args, QObject **ret, Error **errp) |
955 | { |
956 | Error *err = NULL; |
957 | Visitor *v; |
958 | q_obj_balloon_arg arg = {0}; |
959 | |
960 | v = qobject_input_visitor_new(QOBJECT(args)); |
961 | visit_start_struct(v, NULL, NULL, 0, &err); |
962 | if (err) { |
963 | goto out; |
964 | } |
965 | visit_type_q_obj_balloon_arg_members(v, &arg, &err); |
966 | if (!err) { |
967 | visit_check_struct(v, &err); |
968 | } |
969 | visit_end_struct(v, NULL); |
970 | if (err) { |
971 | goto out; |
972 | } |
973 | |
974 | qmp_balloon(arg.value, &err); |
975 | |
976 | out: |
977 | error_propagate(errp, err); |
978 | visit_free(v); |
979 | v = qapi_dealloc_visitor_new(); |
980 | visit_start_struct(v, NULL, NULL, 0, NULL); |
981 | visit_type_q_obj_balloon_arg_members(v, &arg, NULL); |
982 | visit_end_struct(v, NULL); |
983 | visit_free(v); |
984 | } |
985 | |
986 | static void qmp_marshal_output_str(char *ret_in, QObject **ret_out, Error **errp) |
987 | { |
988 | Error *err = NULL; |
989 | Visitor *v; |
990 | |
991 | v = qobject_output_visitor_new(ret_out); |
992 | visit_type_str(v, "unused" , &ret_in, &err); |
993 | if (!err) { |
994 | visit_complete(v, ret_out); |
995 | } |
996 | error_propagate(errp, err); |
997 | visit_free(v); |
998 | v = qapi_dealloc_visitor_new(); |
999 | visit_type_str(v, "unused" , &ret_in, NULL); |
1000 | visit_free(v); |
1001 | } |
1002 | |
1003 | void qmp_marshal_human_monitor_command(QDict *args, QObject **ret, Error **errp) |
1004 | { |
1005 | Error *err = NULL; |
1006 | char *retval; |
1007 | Visitor *v; |
1008 | q_obj_human_monitor_command_arg arg = {0}; |
1009 | |
1010 | v = qobject_input_visitor_new(QOBJECT(args)); |
1011 | visit_start_struct(v, NULL, NULL, 0, &err); |
1012 | if (err) { |
1013 | goto out; |
1014 | } |
1015 | visit_type_q_obj_human_monitor_command_arg_members(v, &arg, &err); |
1016 | if (!err) { |
1017 | visit_check_struct(v, &err); |
1018 | } |
1019 | visit_end_struct(v, NULL); |
1020 | if (err) { |
1021 | goto out; |
1022 | } |
1023 | |
1024 | retval = qmp_human_monitor_command(arg.command_line, arg.has_cpu_index, arg.cpu_index, &err); |
1025 | if (err) { |
1026 | goto out; |
1027 | } |
1028 | |
1029 | qmp_marshal_output_str(retval, ret, &err); |
1030 | |
1031 | out: |
1032 | error_propagate(errp, err); |
1033 | visit_free(v); |
1034 | v = qapi_dealloc_visitor_new(); |
1035 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1036 | visit_type_q_obj_human_monitor_command_arg_members(v, &arg, NULL); |
1037 | visit_end_struct(v, NULL); |
1038 | visit_free(v); |
1039 | } |
1040 | |
1041 | void qmp_marshal_change(QDict *args, QObject **ret, Error **errp) |
1042 | { |
1043 | Error *err = NULL; |
1044 | Visitor *v; |
1045 | q_obj_change_arg arg = {0}; |
1046 | |
1047 | v = qobject_input_visitor_new(QOBJECT(args)); |
1048 | visit_start_struct(v, NULL, NULL, 0, &err); |
1049 | if (err) { |
1050 | goto out; |
1051 | } |
1052 | visit_type_q_obj_change_arg_members(v, &arg, &err); |
1053 | if (!err) { |
1054 | visit_check_struct(v, &err); |
1055 | } |
1056 | visit_end_struct(v, NULL); |
1057 | if (err) { |
1058 | goto out; |
1059 | } |
1060 | |
1061 | qmp_change(arg.device, arg.target, arg.has_arg, arg.arg, &err); |
1062 | |
1063 | out: |
1064 | error_propagate(errp, err); |
1065 | visit_free(v); |
1066 | v = qapi_dealloc_visitor_new(); |
1067 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1068 | visit_type_q_obj_change_arg_members(v, &arg, NULL); |
1069 | visit_end_struct(v, NULL); |
1070 | visit_free(v); |
1071 | } |
1072 | |
1073 | void qmp_marshal_xen_set_global_dirty_log(QDict *args, QObject **ret, Error **errp) |
1074 | { |
1075 | Error *err = NULL; |
1076 | Visitor *v; |
1077 | q_obj_xen_set_global_dirty_log_arg arg = {0}; |
1078 | |
1079 | v = qobject_input_visitor_new(QOBJECT(args)); |
1080 | visit_start_struct(v, NULL, NULL, 0, &err); |
1081 | if (err) { |
1082 | goto out; |
1083 | } |
1084 | visit_type_q_obj_xen_set_global_dirty_log_arg_members(v, &arg, &err); |
1085 | if (!err) { |
1086 | visit_check_struct(v, &err); |
1087 | } |
1088 | visit_end_struct(v, NULL); |
1089 | if (err) { |
1090 | goto out; |
1091 | } |
1092 | |
1093 | qmp_xen_set_global_dirty_log(arg.enable, &err); |
1094 | |
1095 | out: |
1096 | error_propagate(errp, err); |
1097 | visit_free(v); |
1098 | v = qapi_dealloc_visitor_new(); |
1099 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1100 | visit_type_q_obj_xen_set_global_dirty_log_arg_members(v, &arg, NULL); |
1101 | visit_end_struct(v, NULL); |
1102 | visit_free(v); |
1103 | } |
1104 | |
1105 | void qmp_marshal_getfd(QDict *args, QObject **ret, Error **errp) |
1106 | { |
1107 | Error *err = NULL; |
1108 | Visitor *v; |
1109 | q_obj_getfd_arg arg = {0}; |
1110 | |
1111 | v = qobject_input_visitor_new(QOBJECT(args)); |
1112 | visit_start_struct(v, NULL, NULL, 0, &err); |
1113 | if (err) { |
1114 | goto out; |
1115 | } |
1116 | visit_type_q_obj_getfd_arg_members(v, &arg, &err); |
1117 | if (!err) { |
1118 | visit_check_struct(v, &err); |
1119 | } |
1120 | visit_end_struct(v, NULL); |
1121 | if (err) { |
1122 | goto out; |
1123 | } |
1124 | |
1125 | qmp_getfd(arg.fdname, &err); |
1126 | |
1127 | out: |
1128 | error_propagate(errp, err); |
1129 | visit_free(v); |
1130 | v = qapi_dealloc_visitor_new(); |
1131 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1132 | visit_type_q_obj_getfd_arg_members(v, &arg, NULL); |
1133 | visit_end_struct(v, NULL); |
1134 | visit_free(v); |
1135 | } |
1136 | |
1137 | void qmp_marshal_closefd(QDict *args, QObject **ret, Error **errp) |
1138 | { |
1139 | Error *err = NULL; |
1140 | Visitor *v; |
1141 | q_obj_closefd_arg arg = {0}; |
1142 | |
1143 | v = qobject_input_visitor_new(QOBJECT(args)); |
1144 | visit_start_struct(v, NULL, NULL, 0, &err); |
1145 | if (err) { |
1146 | goto out; |
1147 | } |
1148 | visit_type_q_obj_closefd_arg_members(v, &arg, &err); |
1149 | if (!err) { |
1150 | visit_check_struct(v, &err); |
1151 | } |
1152 | visit_end_struct(v, NULL); |
1153 | if (err) { |
1154 | goto out; |
1155 | } |
1156 | |
1157 | qmp_closefd(arg.fdname, &err); |
1158 | |
1159 | out: |
1160 | error_propagate(errp, err); |
1161 | visit_free(v); |
1162 | v = qapi_dealloc_visitor_new(); |
1163 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1164 | visit_type_q_obj_closefd_arg_members(v, &arg, NULL); |
1165 | visit_end_struct(v, NULL); |
1166 | visit_free(v); |
1167 | } |
1168 | |
1169 | static void qmp_marshal_output_MemoryInfo(MemoryInfo *ret_in, QObject **ret_out, Error **errp) |
1170 | { |
1171 | Error *err = NULL; |
1172 | Visitor *v; |
1173 | |
1174 | v = qobject_output_visitor_new(ret_out); |
1175 | visit_type_MemoryInfo(v, "unused" , &ret_in, &err); |
1176 | if (!err) { |
1177 | visit_complete(v, ret_out); |
1178 | } |
1179 | error_propagate(errp, err); |
1180 | visit_free(v); |
1181 | v = qapi_dealloc_visitor_new(); |
1182 | visit_type_MemoryInfo(v, "unused" , &ret_in, NULL); |
1183 | visit_free(v); |
1184 | } |
1185 | |
1186 | void qmp_marshal_query_memory_size_summary(QDict *args, QObject **ret, Error **errp) |
1187 | { |
1188 | Error *err = NULL; |
1189 | MemoryInfo *retval; |
1190 | Visitor *v = NULL; |
1191 | |
1192 | if (args) { |
1193 | v = qobject_input_visitor_new(QOBJECT(args)); |
1194 | visit_start_struct(v, NULL, NULL, 0, &err); |
1195 | if (err) { |
1196 | goto out; |
1197 | } |
1198 | |
1199 | if (!err) { |
1200 | visit_check_struct(v, &err); |
1201 | } |
1202 | visit_end_struct(v, NULL); |
1203 | if (err) { |
1204 | goto out; |
1205 | } |
1206 | } |
1207 | |
1208 | retval = qmp_query_memory_size_summary(&err); |
1209 | if (err) { |
1210 | goto out; |
1211 | } |
1212 | |
1213 | qmp_marshal_output_MemoryInfo(retval, ret, &err); |
1214 | |
1215 | out: |
1216 | error_propagate(errp, err); |
1217 | visit_free(v); |
1218 | if (args) { |
1219 | v = qapi_dealloc_visitor_new(); |
1220 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1221 | |
1222 | visit_end_struct(v, NULL); |
1223 | visit_free(v); |
1224 | } |
1225 | } |
1226 | |
1227 | static void qmp_marshal_output_AddfdInfo(AddfdInfo *ret_in, QObject **ret_out, Error **errp) |
1228 | { |
1229 | Error *err = NULL; |
1230 | Visitor *v; |
1231 | |
1232 | v = qobject_output_visitor_new(ret_out); |
1233 | visit_type_AddfdInfo(v, "unused" , &ret_in, &err); |
1234 | if (!err) { |
1235 | visit_complete(v, ret_out); |
1236 | } |
1237 | error_propagate(errp, err); |
1238 | visit_free(v); |
1239 | v = qapi_dealloc_visitor_new(); |
1240 | visit_type_AddfdInfo(v, "unused" , &ret_in, NULL); |
1241 | visit_free(v); |
1242 | } |
1243 | |
1244 | void qmp_marshal_add_fd(QDict *args, QObject **ret, Error **errp) |
1245 | { |
1246 | Error *err = NULL; |
1247 | AddfdInfo *retval; |
1248 | Visitor *v; |
1249 | q_obj_add_fd_arg arg = {0}; |
1250 | |
1251 | v = qobject_input_visitor_new(QOBJECT(args)); |
1252 | visit_start_struct(v, NULL, NULL, 0, &err); |
1253 | if (err) { |
1254 | goto out; |
1255 | } |
1256 | visit_type_q_obj_add_fd_arg_members(v, &arg, &err); |
1257 | if (!err) { |
1258 | visit_check_struct(v, &err); |
1259 | } |
1260 | visit_end_struct(v, NULL); |
1261 | if (err) { |
1262 | goto out; |
1263 | } |
1264 | |
1265 | retval = qmp_add_fd(arg.has_fdset_id, arg.fdset_id, arg.has_opaque, arg.opaque, &err); |
1266 | if (err) { |
1267 | goto out; |
1268 | } |
1269 | |
1270 | qmp_marshal_output_AddfdInfo(retval, ret, &err); |
1271 | |
1272 | out: |
1273 | error_propagate(errp, err); |
1274 | visit_free(v); |
1275 | v = qapi_dealloc_visitor_new(); |
1276 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1277 | visit_type_q_obj_add_fd_arg_members(v, &arg, NULL); |
1278 | visit_end_struct(v, NULL); |
1279 | visit_free(v); |
1280 | } |
1281 | |
1282 | void qmp_marshal_remove_fd(QDict *args, QObject **ret, Error **errp) |
1283 | { |
1284 | Error *err = NULL; |
1285 | Visitor *v; |
1286 | q_obj_remove_fd_arg arg = {0}; |
1287 | |
1288 | v = qobject_input_visitor_new(QOBJECT(args)); |
1289 | visit_start_struct(v, NULL, NULL, 0, &err); |
1290 | if (err) { |
1291 | goto out; |
1292 | } |
1293 | visit_type_q_obj_remove_fd_arg_members(v, &arg, &err); |
1294 | if (!err) { |
1295 | visit_check_struct(v, &err); |
1296 | } |
1297 | visit_end_struct(v, NULL); |
1298 | if (err) { |
1299 | goto out; |
1300 | } |
1301 | |
1302 | qmp_remove_fd(arg.fdset_id, arg.has_fd, arg.fd, &err); |
1303 | |
1304 | out: |
1305 | error_propagate(errp, err); |
1306 | visit_free(v); |
1307 | v = qapi_dealloc_visitor_new(); |
1308 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1309 | visit_type_q_obj_remove_fd_arg_members(v, &arg, NULL); |
1310 | visit_end_struct(v, NULL); |
1311 | visit_free(v); |
1312 | } |
1313 | |
1314 | static void qmp_marshal_output_FdsetInfoList(FdsetInfoList *ret_in, QObject **ret_out, Error **errp) |
1315 | { |
1316 | Error *err = NULL; |
1317 | Visitor *v; |
1318 | |
1319 | v = qobject_output_visitor_new(ret_out); |
1320 | visit_type_FdsetInfoList(v, "unused" , &ret_in, &err); |
1321 | if (!err) { |
1322 | visit_complete(v, ret_out); |
1323 | } |
1324 | error_propagate(errp, err); |
1325 | visit_free(v); |
1326 | v = qapi_dealloc_visitor_new(); |
1327 | visit_type_FdsetInfoList(v, "unused" , &ret_in, NULL); |
1328 | visit_free(v); |
1329 | } |
1330 | |
1331 | void qmp_marshal_query_fdsets(QDict *args, QObject **ret, Error **errp) |
1332 | { |
1333 | Error *err = NULL; |
1334 | FdsetInfoList *retval; |
1335 | Visitor *v = NULL; |
1336 | |
1337 | if (args) { |
1338 | v = qobject_input_visitor_new(QOBJECT(args)); |
1339 | visit_start_struct(v, NULL, NULL, 0, &err); |
1340 | if (err) { |
1341 | goto out; |
1342 | } |
1343 | |
1344 | if (!err) { |
1345 | visit_check_struct(v, &err); |
1346 | } |
1347 | visit_end_struct(v, NULL); |
1348 | if (err) { |
1349 | goto out; |
1350 | } |
1351 | } |
1352 | |
1353 | retval = qmp_query_fdsets(&err); |
1354 | if (err) { |
1355 | goto out; |
1356 | } |
1357 | |
1358 | qmp_marshal_output_FdsetInfoList(retval, ret, &err); |
1359 | |
1360 | out: |
1361 | error_propagate(errp, err); |
1362 | visit_free(v); |
1363 | if (args) { |
1364 | v = qapi_dealloc_visitor_new(); |
1365 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1366 | |
1367 | visit_end_struct(v, NULL); |
1368 | visit_free(v); |
1369 | } |
1370 | } |
1371 | |
1372 | static void qmp_marshal_output_CommandLineOptionInfoList(CommandLineOptionInfoList *ret_in, QObject **ret_out, Error **errp) |
1373 | { |
1374 | Error *err = NULL; |
1375 | Visitor *v; |
1376 | |
1377 | v = qobject_output_visitor_new(ret_out); |
1378 | visit_type_CommandLineOptionInfoList(v, "unused" , &ret_in, &err); |
1379 | if (!err) { |
1380 | visit_complete(v, ret_out); |
1381 | } |
1382 | error_propagate(errp, err); |
1383 | visit_free(v); |
1384 | v = qapi_dealloc_visitor_new(); |
1385 | visit_type_CommandLineOptionInfoList(v, "unused" , &ret_in, NULL); |
1386 | visit_free(v); |
1387 | } |
1388 | |
1389 | void qmp_marshal_query_command_line_options(QDict *args, QObject **ret, Error **errp) |
1390 | { |
1391 | Error *err = NULL; |
1392 | CommandLineOptionInfoList *retval; |
1393 | Visitor *v; |
1394 | q_obj_query_command_line_options_arg arg = {0}; |
1395 | |
1396 | v = qobject_input_visitor_new(QOBJECT(args)); |
1397 | visit_start_struct(v, NULL, NULL, 0, &err); |
1398 | if (err) { |
1399 | goto out; |
1400 | } |
1401 | visit_type_q_obj_query_command_line_options_arg_members(v, &arg, &err); |
1402 | if (!err) { |
1403 | visit_check_struct(v, &err); |
1404 | } |
1405 | visit_end_struct(v, NULL); |
1406 | if (err) { |
1407 | goto out; |
1408 | } |
1409 | |
1410 | retval = qmp_query_command_line_options(arg.has_option, arg.option, &err); |
1411 | if (err) { |
1412 | goto out; |
1413 | } |
1414 | |
1415 | qmp_marshal_output_CommandLineOptionInfoList(retval, ret, &err); |
1416 | |
1417 | out: |
1418 | error_propagate(errp, err); |
1419 | visit_free(v); |
1420 | v = qapi_dealloc_visitor_new(); |
1421 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1422 | visit_type_q_obj_query_command_line_options_arg_members(v, &arg, NULL); |
1423 | visit_end_struct(v, NULL); |
1424 | visit_free(v); |
1425 | } |
1426 | |
1427 | static void qmp_marshal_output_MemoryDeviceInfoList(MemoryDeviceInfoList *ret_in, QObject **ret_out, Error **errp) |
1428 | { |
1429 | Error *err = NULL; |
1430 | Visitor *v; |
1431 | |
1432 | v = qobject_output_visitor_new(ret_out); |
1433 | visit_type_MemoryDeviceInfoList(v, "unused" , &ret_in, &err); |
1434 | if (!err) { |
1435 | visit_complete(v, ret_out); |
1436 | } |
1437 | error_propagate(errp, err); |
1438 | visit_free(v); |
1439 | v = qapi_dealloc_visitor_new(); |
1440 | visit_type_MemoryDeviceInfoList(v, "unused" , &ret_in, NULL); |
1441 | visit_free(v); |
1442 | } |
1443 | |
1444 | void qmp_marshal_query_memory_devices(QDict *args, QObject **ret, Error **errp) |
1445 | { |
1446 | Error *err = NULL; |
1447 | MemoryDeviceInfoList *retval; |
1448 | Visitor *v = NULL; |
1449 | |
1450 | if (args) { |
1451 | v = qobject_input_visitor_new(QOBJECT(args)); |
1452 | visit_start_struct(v, NULL, NULL, 0, &err); |
1453 | if (err) { |
1454 | goto out; |
1455 | } |
1456 | |
1457 | if (!err) { |
1458 | visit_check_struct(v, &err); |
1459 | } |
1460 | visit_end_struct(v, NULL); |
1461 | if (err) { |
1462 | goto out; |
1463 | } |
1464 | } |
1465 | |
1466 | retval = qmp_query_memory_devices(&err); |
1467 | if (err) { |
1468 | goto out; |
1469 | } |
1470 | |
1471 | qmp_marshal_output_MemoryDeviceInfoList(retval, ret, &err); |
1472 | |
1473 | out: |
1474 | error_propagate(errp, err); |
1475 | visit_free(v); |
1476 | if (args) { |
1477 | v = qapi_dealloc_visitor_new(); |
1478 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1479 | |
1480 | visit_end_struct(v, NULL); |
1481 | visit_free(v); |
1482 | } |
1483 | } |
1484 | |
1485 | static void qmp_marshal_output_ACPIOSTInfoList(ACPIOSTInfoList *ret_in, QObject **ret_out, Error **errp) |
1486 | { |
1487 | Error *err = NULL; |
1488 | Visitor *v; |
1489 | |
1490 | v = qobject_output_visitor_new(ret_out); |
1491 | visit_type_ACPIOSTInfoList(v, "unused" , &ret_in, &err); |
1492 | if (!err) { |
1493 | visit_complete(v, ret_out); |
1494 | } |
1495 | error_propagate(errp, err); |
1496 | visit_free(v); |
1497 | v = qapi_dealloc_visitor_new(); |
1498 | visit_type_ACPIOSTInfoList(v, "unused" , &ret_in, NULL); |
1499 | visit_free(v); |
1500 | } |
1501 | |
1502 | void qmp_marshal_query_acpi_ospm_status(QDict *args, QObject **ret, Error **errp) |
1503 | { |
1504 | Error *err = NULL; |
1505 | ACPIOSTInfoList *retval; |
1506 | Visitor *v = NULL; |
1507 | |
1508 | if (args) { |
1509 | v = qobject_input_visitor_new(QOBJECT(args)); |
1510 | visit_start_struct(v, NULL, NULL, 0, &err); |
1511 | if (err) { |
1512 | goto out; |
1513 | } |
1514 | |
1515 | if (!err) { |
1516 | visit_check_struct(v, &err); |
1517 | } |
1518 | visit_end_struct(v, NULL); |
1519 | if (err) { |
1520 | goto out; |
1521 | } |
1522 | } |
1523 | |
1524 | retval = qmp_query_acpi_ospm_status(&err); |
1525 | if (err) { |
1526 | goto out; |
1527 | } |
1528 | |
1529 | qmp_marshal_output_ACPIOSTInfoList(retval, ret, &err); |
1530 | |
1531 | out: |
1532 | error_propagate(errp, err); |
1533 | visit_free(v); |
1534 | if (args) { |
1535 | v = qapi_dealloc_visitor_new(); |
1536 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1537 | |
1538 | visit_end_struct(v, NULL); |
1539 | visit_free(v); |
1540 | } |
1541 | } |
1542 | |
1543 | void qmp_marshal_xen_load_devices_state(QDict *args, QObject **ret, Error **errp) |
1544 | { |
1545 | Error *err = NULL; |
1546 | Visitor *v; |
1547 | q_obj_xen_load_devices_state_arg arg = {0}; |
1548 | |
1549 | v = qobject_input_visitor_new(QOBJECT(args)); |
1550 | visit_start_struct(v, NULL, NULL, 0, &err); |
1551 | if (err) { |
1552 | goto out; |
1553 | } |
1554 | visit_type_q_obj_xen_load_devices_state_arg_members(v, &arg, &err); |
1555 | if (!err) { |
1556 | visit_check_struct(v, &err); |
1557 | } |
1558 | visit_end_struct(v, NULL); |
1559 | if (err) { |
1560 | goto out; |
1561 | } |
1562 | |
1563 | qmp_xen_load_devices_state(arg.filename, &err); |
1564 | |
1565 | out: |
1566 | error_propagate(errp, err); |
1567 | visit_free(v); |
1568 | v = qapi_dealloc_visitor_new(); |
1569 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1570 | visit_type_q_obj_xen_load_devices_state_arg_members(v, &arg, NULL); |
1571 | visit_end_struct(v, NULL); |
1572 | visit_free(v); |
1573 | } |
1574 | |
1575 | static void qmp_marshal_output_GuidInfo(GuidInfo *ret_in, QObject **ret_out, Error **errp) |
1576 | { |
1577 | Error *err = NULL; |
1578 | Visitor *v; |
1579 | |
1580 | v = qobject_output_visitor_new(ret_out); |
1581 | visit_type_GuidInfo(v, "unused" , &ret_in, &err); |
1582 | if (!err) { |
1583 | visit_complete(v, ret_out); |
1584 | } |
1585 | error_propagate(errp, err); |
1586 | visit_free(v); |
1587 | v = qapi_dealloc_visitor_new(); |
1588 | visit_type_GuidInfo(v, "unused" , &ret_in, NULL); |
1589 | visit_free(v); |
1590 | } |
1591 | |
1592 | void qmp_marshal_query_vm_generation_id(QDict *args, QObject **ret, Error **errp) |
1593 | { |
1594 | Error *err = NULL; |
1595 | GuidInfo *retval; |
1596 | Visitor *v = NULL; |
1597 | |
1598 | if (args) { |
1599 | v = qobject_input_visitor_new(QOBJECT(args)); |
1600 | visit_start_struct(v, NULL, NULL, 0, &err); |
1601 | if (err) { |
1602 | goto out; |
1603 | } |
1604 | |
1605 | if (!err) { |
1606 | visit_check_struct(v, &err); |
1607 | } |
1608 | visit_end_struct(v, NULL); |
1609 | if (err) { |
1610 | goto out; |
1611 | } |
1612 | } |
1613 | |
1614 | retval = qmp_query_vm_generation_id(&err); |
1615 | if (err) { |
1616 | goto out; |
1617 | } |
1618 | |
1619 | qmp_marshal_output_GuidInfo(retval, ret, &err); |
1620 | |
1621 | out: |
1622 | error_propagate(errp, err); |
1623 | visit_free(v); |
1624 | if (args) { |
1625 | v = qapi_dealloc_visitor_new(); |
1626 | visit_start_struct(v, NULL, NULL, 0, NULL); |
1627 | |
1628 | visit_end_struct(v, NULL); |
1629 | visit_free(v); |
1630 | } |
1631 | } |
1632 | |
1633 | /* Dummy declaration to prevent empty .o file */ |
1634 | char qapi_dummy_qapi_commands_misc_c; |
1635 | |