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-block-core.h"
21#include "qapi-commands-block-core.h"
22
23
24void qmp_marshal_block_latency_histogram_set(QDict *args, QObject **ret, Error **errp)
25{
26 Error *err = NULL;
27 Visitor *v;
28 q_obj_block_latency_histogram_set_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_block_latency_histogram_set_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_block_latency_histogram_set(arg.id, arg.has_boundaries, arg.boundaries, arg.has_boundaries_read, arg.boundaries_read, arg.has_boundaries_write, arg.boundaries_write, arg.has_boundaries_flush, arg.boundaries_flush, &err);
45
46out:
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_block_latency_histogram_set_arg_members(v, &arg, NULL);
52 visit_end_struct(v, NULL);
53 visit_free(v);
54}
55
56static void qmp_marshal_output_BlockInfoList(BlockInfoList *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_BlockInfoList(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_BlockInfoList(v, "unused", &ret_in, NULL);
70 visit_free(v);
71}
72
73void qmp_marshal_query_block(QDict *args, QObject **ret, Error **errp)
74{
75 Error *err = NULL;
76 BlockInfoList *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_block(&err);
96 if (err) {
97 goto out;
98 }
99
100 qmp_marshal_output_BlockInfoList(retval, ret, &err);
101
102out:
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
114static void qmp_marshal_output_BlockStatsList(BlockStatsList *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_BlockStatsList(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_BlockStatsList(v, "unused", &ret_in, NULL);
128 visit_free(v);
129}
130
131void qmp_marshal_query_blockstats(QDict *args, QObject **ret, Error **errp)
132{
133 Error *err = NULL;
134 BlockStatsList *retval;
135 Visitor *v;
136 q_obj_query_blockstats_arg arg = {0};
137
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 visit_type_q_obj_query_blockstats_arg_members(v, &arg, &err);
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 retval = qmp_query_blockstats(arg.has_query_nodes, arg.query_nodes, &err);
153 if (err) {
154 goto out;
155 }
156
157 qmp_marshal_output_BlockStatsList(retval, ret, &err);
158
159out:
160 error_propagate(errp, err);
161 visit_free(v);
162 v = qapi_dealloc_visitor_new();
163 visit_start_struct(v, NULL, NULL, 0, NULL);
164 visit_type_q_obj_query_blockstats_arg_members(v, &arg, NULL);
165 visit_end_struct(v, NULL);
166 visit_free(v);
167}
168
169static void qmp_marshal_output_BlockJobInfoList(BlockJobInfoList *ret_in, QObject **ret_out, Error **errp)
170{
171 Error *err = NULL;
172 Visitor *v;
173
174 v = qobject_output_visitor_new(ret_out);
175 visit_type_BlockJobInfoList(v, "unused", &ret_in, &err);
176 if (!err) {
177 visit_complete(v, ret_out);
178 }
179 error_propagate(errp, err);
180 visit_free(v);
181 v = qapi_dealloc_visitor_new();
182 visit_type_BlockJobInfoList(v, "unused", &ret_in, NULL);
183 visit_free(v);
184}
185
186void qmp_marshal_query_block_jobs(QDict *args, QObject **ret, Error **errp)
187{
188 Error *err = NULL;
189 BlockJobInfoList *retval;
190 Visitor *v = NULL;
191
192 if (args) {
193 v = qobject_input_visitor_new(QOBJECT(args));
194 visit_start_struct(v, NULL, NULL, 0, &err);
195 if (err) {
196 goto out;
197 }
198
199 if (!err) {
200 visit_check_struct(v, &err);
201 }
202 visit_end_struct(v, NULL);
203 if (err) {
204 goto out;
205 }
206 }
207
208 retval = qmp_query_block_jobs(&err);
209 if (err) {
210 goto out;
211 }
212
213 qmp_marshal_output_BlockJobInfoList(retval, ret, &err);
214
215out:
216 error_propagate(errp, err);
217 visit_free(v);
218 if (args) {
219 v = qapi_dealloc_visitor_new();
220 visit_start_struct(v, NULL, NULL, 0, NULL);
221
222 visit_end_struct(v, NULL);
223 visit_free(v);
224 }
225}
226
227void qmp_marshal_block_passwd(QDict *args, QObject **ret, Error **errp)
228{
229 Error *err = NULL;
230 Visitor *v;
231 q_obj_block_passwd_arg arg = {0};
232
233 v = qobject_input_visitor_new(QOBJECT(args));
234 visit_start_struct(v, NULL, NULL, 0, &err);
235 if (err) {
236 goto out;
237 }
238 visit_type_q_obj_block_passwd_arg_members(v, &arg, &err);
239 if (!err) {
240 visit_check_struct(v, &err);
241 }
242 visit_end_struct(v, NULL);
243 if (err) {
244 goto out;
245 }
246
247 qmp_block_passwd(arg.has_device, arg.device, arg.has_node_name, arg.node_name, arg.password, &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_block_passwd_arg_members(v, &arg, NULL);
255 visit_end_struct(v, NULL);
256 visit_free(v);
257}
258
259void qmp_marshal_block_resize(QDict *args, QObject **ret, Error **errp)
260{
261 Error *err = NULL;
262 Visitor *v;
263 q_obj_block_resize_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_block_resize_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_block_resize(arg.has_device, arg.device, arg.has_node_name, arg.node_name, arg.size, &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_block_resize_arg_members(v, &arg, NULL);
287 visit_end_struct(v, NULL);
288 visit_free(v);
289}
290
291void qmp_marshal_blockdev_snapshot_sync(QDict *args, QObject **ret, Error **errp)
292{
293 Error *err = NULL;
294 Visitor *v;
295 BlockdevSnapshotSync 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_BlockdevSnapshotSync_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_blockdev_snapshot_sync(arg.has_device, arg.device, arg.has_node_name, arg.node_name, arg.snapshot_file, arg.has_snapshot_node_name, arg.snapshot_node_name, arg.has_format, arg.format, arg.has_mode, arg.mode, &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_BlockdevSnapshotSync_members(v, &arg, NULL);
319 visit_end_struct(v, NULL);
320 visit_free(v);
321}
322
323void qmp_marshal_blockdev_snapshot(QDict *args, QObject **ret, Error **errp)
324{
325 Error *err = NULL;
326 Visitor *v;
327 BlockdevSnapshot arg = {0};
328
329 v = qobject_input_visitor_new(QOBJECT(args));
330 visit_start_struct(v, NULL, NULL, 0, &err);
331 if (err) {
332 goto out;
333 }
334 visit_type_BlockdevSnapshot_members(v, &arg, &err);
335 if (!err) {
336 visit_check_struct(v, &err);
337 }
338 visit_end_struct(v, NULL);
339 if (err) {
340 goto out;
341 }
342
343 qmp_blockdev_snapshot(arg.node, arg.overlay, &err);
344
345out:
346 error_propagate(errp, err);
347 visit_free(v);
348 v = qapi_dealloc_visitor_new();
349 visit_start_struct(v, NULL, NULL, 0, NULL);
350 visit_type_BlockdevSnapshot_members(v, &arg, NULL);
351 visit_end_struct(v, NULL);
352 visit_free(v);
353}
354
355void qmp_marshal_change_backing_file(QDict *args, QObject **ret, Error **errp)
356{
357 Error *err = NULL;
358 Visitor *v;
359 q_obj_change_backing_file_arg arg = {0};
360
361 v = qobject_input_visitor_new(QOBJECT(args));
362 visit_start_struct(v, NULL, NULL, 0, &err);
363 if (err) {
364 goto out;
365 }
366 visit_type_q_obj_change_backing_file_arg_members(v, &arg, &err);
367 if (!err) {
368 visit_check_struct(v, &err);
369 }
370 visit_end_struct(v, NULL);
371 if (err) {
372 goto out;
373 }
374
375 qmp_change_backing_file(arg.device, arg.image_node_name, arg.backing_file, &err);
376
377out:
378 error_propagate(errp, err);
379 visit_free(v);
380 v = qapi_dealloc_visitor_new();
381 visit_start_struct(v, NULL, NULL, 0, NULL);
382 visit_type_q_obj_change_backing_file_arg_members(v, &arg, NULL);
383 visit_end_struct(v, NULL);
384 visit_free(v);
385}
386
387void qmp_marshal_block_commit(QDict *args, QObject **ret, Error **errp)
388{
389 Error *err = NULL;
390 Visitor *v;
391 q_obj_block_commit_arg arg = {0};
392
393 v = qobject_input_visitor_new(QOBJECT(args));
394 visit_start_struct(v, NULL, NULL, 0, &err);
395 if (err) {
396 goto out;
397 }
398 visit_type_q_obj_block_commit_arg_members(v, &arg, &err);
399 if (!err) {
400 visit_check_struct(v, &err);
401 }
402 visit_end_struct(v, NULL);
403 if (err) {
404 goto out;
405 }
406
407 qmp_block_commit(arg.has_job_id, arg.job_id, arg.device, arg.has_base_node, arg.base_node, arg.has_base, arg.base, arg.has_top_node, arg.top_node, arg.has_top, arg.top, arg.has_backing_file, arg.backing_file, arg.has_speed, arg.speed, arg.has_filter_node_name, arg.filter_node_name, arg.has_auto_finalize, arg.auto_finalize, arg.has_auto_dismiss, arg.auto_dismiss, &err);
408
409out:
410 error_propagate(errp, err);
411 visit_free(v);
412 v = qapi_dealloc_visitor_new();
413 visit_start_struct(v, NULL, NULL, 0, NULL);
414 visit_type_q_obj_block_commit_arg_members(v, &arg, NULL);
415 visit_end_struct(v, NULL);
416 visit_free(v);
417}
418
419void qmp_marshal_drive_backup(QDict *args, QObject **ret, Error **errp)
420{
421 Error *err = NULL;
422 Visitor *v;
423 DriveBackup arg = {0};
424
425 v = qobject_input_visitor_new(QOBJECT(args));
426 visit_start_struct(v, NULL, NULL, 0, &err);
427 if (err) {
428 goto out;
429 }
430 visit_type_DriveBackup_members(v, &arg, &err);
431 if (!err) {
432 visit_check_struct(v, &err);
433 }
434 visit_end_struct(v, NULL);
435 if (err) {
436 goto out;
437 }
438
439 qmp_drive_backup(&arg, &err);
440
441out:
442 error_propagate(errp, err);
443 visit_free(v);
444 v = qapi_dealloc_visitor_new();
445 visit_start_struct(v, NULL, NULL, 0, NULL);
446 visit_type_DriveBackup_members(v, &arg, NULL);
447 visit_end_struct(v, NULL);
448 visit_free(v);
449}
450
451void qmp_marshal_blockdev_backup(QDict *args, QObject **ret, Error **errp)
452{
453 Error *err = NULL;
454 Visitor *v;
455 BlockdevBackup arg = {0};
456
457 v = qobject_input_visitor_new(QOBJECT(args));
458 visit_start_struct(v, NULL, NULL, 0, &err);
459 if (err) {
460 goto out;
461 }
462 visit_type_BlockdevBackup_members(v, &arg, &err);
463 if (!err) {
464 visit_check_struct(v, &err);
465 }
466 visit_end_struct(v, NULL);
467 if (err) {
468 goto out;
469 }
470
471 qmp_blockdev_backup(&arg, &err);
472
473out:
474 error_propagate(errp, err);
475 visit_free(v);
476 v = qapi_dealloc_visitor_new();
477 visit_start_struct(v, NULL, NULL, 0, NULL);
478 visit_type_BlockdevBackup_members(v, &arg, NULL);
479 visit_end_struct(v, NULL);
480 visit_free(v);
481}
482
483static void qmp_marshal_output_BlockDeviceInfoList(BlockDeviceInfoList *ret_in, QObject **ret_out, Error **errp)
484{
485 Error *err = NULL;
486 Visitor *v;
487
488 v = qobject_output_visitor_new(ret_out);
489 visit_type_BlockDeviceInfoList(v, "unused", &ret_in, &err);
490 if (!err) {
491 visit_complete(v, ret_out);
492 }
493 error_propagate(errp, err);
494 visit_free(v);
495 v = qapi_dealloc_visitor_new();
496 visit_type_BlockDeviceInfoList(v, "unused", &ret_in, NULL);
497 visit_free(v);
498}
499
500void qmp_marshal_query_named_block_nodes(QDict *args, QObject **ret, Error **errp)
501{
502 Error *err = NULL;
503 BlockDeviceInfoList *retval;
504 Visitor *v = NULL;
505
506 if (args) {
507 v = qobject_input_visitor_new(QOBJECT(args));
508 visit_start_struct(v, NULL, NULL, 0, &err);
509 if (err) {
510 goto out;
511 }
512
513 if (!err) {
514 visit_check_struct(v, &err);
515 }
516 visit_end_struct(v, NULL);
517 if (err) {
518 goto out;
519 }
520 }
521
522 retval = qmp_query_named_block_nodes(&err);
523 if (err) {
524 goto out;
525 }
526
527 qmp_marshal_output_BlockDeviceInfoList(retval, ret, &err);
528
529out:
530 error_propagate(errp, err);
531 visit_free(v);
532 if (args) {
533 v = qapi_dealloc_visitor_new();
534 visit_start_struct(v, NULL, NULL, 0, NULL);
535
536 visit_end_struct(v, NULL);
537 visit_free(v);
538 }
539}
540
541static void qmp_marshal_output_XDbgBlockGraph(XDbgBlockGraph *ret_in, QObject **ret_out, Error **errp)
542{
543 Error *err = NULL;
544 Visitor *v;
545
546 v = qobject_output_visitor_new(ret_out);
547 visit_type_XDbgBlockGraph(v, "unused", &ret_in, &err);
548 if (!err) {
549 visit_complete(v, ret_out);
550 }
551 error_propagate(errp, err);
552 visit_free(v);
553 v = qapi_dealloc_visitor_new();
554 visit_type_XDbgBlockGraph(v, "unused", &ret_in, NULL);
555 visit_free(v);
556}
557
558void qmp_marshal_x_debug_query_block_graph(QDict *args, QObject **ret, Error **errp)
559{
560 Error *err = NULL;
561 XDbgBlockGraph *retval;
562 Visitor *v = NULL;
563
564 if (args) {
565 v = qobject_input_visitor_new(QOBJECT(args));
566 visit_start_struct(v, NULL, NULL, 0, &err);
567 if (err) {
568 goto out;
569 }
570
571 if (!err) {
572 visit_check_struct(v, &err);
573 }
574 visit_end_struct(v, NULL);
575 if (err) {
576 goto out;
577 }
578 }
579
580 retval = qmp_x_debug_query_block_graph(&err);
581 if (err) {
582 goto out;
583 }
584
585 qmp_marshal_output_XDbgBlockGraph(retval, ret, &err);
586
587out:
588 error_propagate(errp, err);
589 visit_free(v);
590 if (args) {
591 v = qapi_dealloc_visitor_new();
592 visit_start_struct(v, NULL, NULL, 0, NULL);
593
594 visit_end_struct(v, NULL);
595 visit_free(v);
596 }
597}
598
599void qmp_marshal_drive_mirror(QDict *args, QObject **ret, Error **errp)
600{
601 Error *err = NULL;
602 Visitor *v;
603 DriveMirror arg = {0};
604
605 v = qobject_input_visitor_new(QOBJECT(args));
606 visit_start_struct(v, NULL, NULL, 0, &err);
607 if (err) {
608 goto out;
609 }
610 visit_type_DriveMirror_members(v, &arg, &err);
611 if (!err) {
612 visit_check_struct(v, &err);
613 }
614 visit_end_struct(v, NULL);
615 if (err) {
616 goto out;
617 }
618
619 qmp_drive_mirror(&arg, &err);
620
621out:
622 error_propagate(errp, err);
623 visit_free(v);
624 v = qapi_dealloc_visitor_new();
625 visit_start_struct(v, NULL, NULL, 0, NULL);
626 visit_type_DriveMirror_members(v, &arg, NULL);
627 visit_end_struct(v, NULL);
628 visit_free(v);
629}
630
631void qmp_marshal_block_dirty_bitmap_add(QDict *args, QObject **ret, Error **errp)
632{
633 Error *err = NULL;
634 Visitor *v;
635 BlockDirtyBitmapAdd arg = {0};
636
637 v = qobject_input_visitor_new(QOBJECT(args));
638 visit_start_struct(v, NULL, NULL, 0, &err);
639 if (err) {
640 goto out;
641 }
642 visit_type_BlockDirtyBitmapAdd_members(v, &arg, &err);
643 if (!err) {
644 visit_check_struct(v, &err);
645 }
646 visit_end_struct(v, NULL);
647 if (err) {
648 goto out;
649 }
650
651 qmp_block_dirty_bitmap_add(arg.node, arg.name, arg.has_granularity, arg.granularity, arg.has_persistent, arg.persistent, arg.has_autoload, arg.autoload, arg.has_disabled, arg.disabled, &err);
652
653out:
654 error_propagate(errp, err);
655 visit_free(v);
656 v = qapi_dealloc_visitor_new();
657 visit_start_struct(v, NULL, NULL, 0, NULL);
658 visit_type_BlockDirtyBitmapAdd_members(v, &arg, NULL);
659 visit_end_struct(v, NULL);
660 visit_free(v);
661}
662
663void qmp_marshal_block_dirty_bitmap_remove(QDict *args, QObject **ret, Error **errp)
664{
665 Error *err = NULL;
666 Visitor *v;
667 BlockDirtyBitmap arg = {0};
668
669 v = qobject_input_visitor_new(QOBJECT(args));
670 visit_start_struct(v, NULL, NULL, 0, &err);
671 if (err) {
672 goto out;
673 }
674 visit_type_BlockDirtyBitmap_members(v, &arg, &err);
675 if (!err) {
676 visit_check_struct(v, &err);
677 }
678 visit_end_struct(v, NULL);
679 if (err) {
680 goto out;
681 }
682
683 qmp_block_dirty_bitmap_remove(arg.node, arg.name, &err);
684
685out:
686 error_propagate(errp, err);
687 visit_free(v);
688 v = qapi_dealloc_visitor_new();
689 visit_start_struct(v, NULL, NULL, 0, NULL);
690 visit_type_BlockDirtyBitmap_members(v, &arg, NULL);
691 visit_end_struct(v, NULL);
692 visit_free(v);
693}
694
695void qmp_marshal_block_dirty_bitmap_clear(QDict *args, QObject **ret, Error **errp)
696{
697 Error *err = NULL;
698 Visitor *v;
699 BlockDirtyBitmap arg = {0};
700
701 v = qobject_input_visitor_new(QOBJECT(args));
702 visit_start_struct(v, NULL, NULL, 0, &err);
703 if (err) {
704 goto out;
705 }
706 visit_type_BlockDirtyBitmap_members(v, &arg, &err);
707 if (!err) {
708 visit_check_struct(v, &err);
709 }
710 visit_end_struct(v, NULL);
711 if (err) {
712 goto out;
713 }
714
715 qmp_block_dirty_bitmap_clear(arg.node, arg.name, &err);
716
717out:
718 error_propagate(errp, err);
719 visit_free(v);
720 v = qapi_dealloc_visitor_new();
721 visit_start_struct(v, NULL, NULL, 0, NULL);
722 visit_type_BlockDirtyBitmap_members(v, &arg, NULL);
723 visit_end_struct(v, NULL);
724 visit_free(v);
725}
726
727void qmp_marshal_block_dirty_bitmap_enable(QDict *args, QObject **ret, Error **errp)
728{
729 Error *err = NULL;
730 Visitor *v;
731 BlockDirtyBitmap arg = {0};
732
733 v = qobject_input_visitor_new(QOBJECT(args));
734 visit_start_struct(v, NULL, NULL, 0, &err);
735 if (err) {
736 goto out;
737 }
738 visit_type_BlockDirtyBitmap_members(v, &arg, &err);
739 if (!err) {
740 visit_check_struct(v, &err);
741 }
742 visit_end_struct(v, NULL);
743 if (err) {
744 goto out;
745 }
746
747 qmp_block_dirty_bitmap_enable(arg.node, arg.name, &err);
748
749out:
750 error_propagate(errp, err);
751 visit_free(v);
752 v = qapi_dealloc_visitor_new();
753 visit_start_struct(v, NULL, NULL, 0, NULL);
754 visit_type_BlockDirtyBitmap_members(v, &arg, NULL);
755 visit_end_struct(v, NULL);
756 visit_free(v);
757}
758
759void qmp_marshal_block_dirty_bitmap_disable(QDict *args, QObject **ret, Error **errp)
760{
761 Error *err = NULL;
762 Visitor *v;
763 BlockDirtyBitmap arg = {0};
764
765 v = qobject_input_visitor_new(QOBJECT(args));
766 visit_start_struct(v, NULL, NULL, 0, &err);
767 if (err) {
768 goto out;
769 }
770 visit_type_BlockDirtyBitmap_members(v, &arg, &err);
771 if (!err) {
772 visit_check_struct(v, &err);
773 }
774 visit_end_struct(v, NULL);
775 if (err) {
776 goto out;
777 }
778
779 qmp_block_dirty_bitmap_disable(arg.node, arg.name, &err);
780
781out:
782 error_propagate(errp, err);
783 visit_free(v);
784 v = qapi_dealloc_visitor_new();
785 visit_start_struct(v, NULL, NULL, 0, NULL);
786 visit_type_BlockDirtyBitmap_members(v, &arg, NULL);
787 visit_end_struct(v, NULL);
788 visit_free(v);
789}
790
791void qmp_marshal_block_dirty_bitmap_merge(QDict *args, QObject **ret, Error **errp)
792{
793 Error *err = NULL;
794 Visitor *v;
795 BlockDirtyBitmapMerge arg = {0};
796
797 v = qobject_input_visitor_new(QOBJECT(args));
798 visit_start_struct(v, NULL, NULL, 0, &err);
799 if (err) {
800 goto out;
801 }
802 visit_type_BlockDirtyBitmapMerge_members(v, &arg, &err);
803 if (!err) {
804 visit_check_struct(v, &err);
805 }
806 visit_end_struct(v, NULL);
807 if (err) {
808 goto out;
809 }
810
811 qmp_block_dirty_bitmap_merge(arg.node, arg.target, arg.bitmaps, &err);
812
813out:
814 error_propagate(errp, err);
815 visit_free(v);
816 v = qapi_dealloc_visitor_new();
817 visit_start_struct(v, NULL, NULL, 0, NULL);
818 visit_type_BlockDirtyBitmapMerge_members(v, &arg, NULL);
819 visit_end_struct(v, NULL);
820 visit_free(v);
821}
822
823static void qmp_marshal_output_BlockDirtyBitmapSha256(BlockDirtyBitmapSha256 *ret_in, QObject **ret_out, Error **errp)
824{
825 Error *err = NULL;
826 Visitor *v;
827
828 v = qobject_output_visitor_new(ret_out);
829 visit_type_BlockDirtyBitmapSha256(v, "unused", &ret_in, &err);
830 if (!err) {
831 visit_complete(v, ret_out);
832 }
833 error_propagate(errp, err);
834 visit_free(v);
835 v = qapi_dealloc_visitor_new();
836 visit_type_BlockDirtyBitmapSha256(v, "unused", &ret_in, NULL);
837 visit_free(v);
838}
839
840void qmp_marshal_x_debug_block_dirty_bitmap_sha256(QDict *args, QObject **ret, Error **errp)
841{
842 Error *err = NULL;
843 BlockDirtyBitmapSha256 *retval;
844 Visitor *v;
845 BlockDirtyBitmap arg = {0};
846
847 v = qobject_input_visitor_new(QOBJECT(args));
848 visit_start_struct(v, NULL, NULL, 0, &err);
849 if (err) {
850 goto out;
851 }
852 visit_type_BlockDirtyBitmap_members(v, &arg, &err);
853 if (!err) {
854 visit_check_struct(v, &err);
855 }
856 visit_end_struct(v, NULL);
857 if (err) {
858 goto out;
859 }
860
861 retval = qmp_x_debug_block_dirty_bitmap_sha256(arg.node, arg.name, &err);
862 if (err) {
863 goto out;
864 }
865
866 qmp_marshal_output_BlockDirtyBitmapSha256(retval, ret, &err);
867
868out:
869 error_propagate(errp, err);
870 visit_free(v);
871 v = qapi_dealloc_visitor_new();
872 visit_start_struct(v, NULL, NULL, 0, NULL);
873 visit_type_BlockDirtyBitmap_members(v, &arg, NULL);
874 visit_end_struct(v, NULL);
875 visit_free(v);
876}
877
878void qmp_marshal_blockdev_mirror(QDict *args, QObject **ret, Error **errp)
879{
880 Error *err = NULL;
881 Visitor *v;
882 q_obj_blockdev_mirror_arg arg = {0};
883
884 v = qobject_input_visitor_new(QOBJECT(args));
885 visit_start_struct(v, NULL, NULL, 0, &err);
886 if (err) {
887 goto out;
888 }
889 visit_type_q_obj_blockdev_mirror_arg_members(v, &arg, &err);
890 if (!err) {
891 visit_check_struct(v, &err);
892 }
893 visit_end_struct(v, NULL);
894 if (err) {
895 goto out;
896 }
897
898 qmp_blockdev_mirror(arg.has_job_id, arg.job_id, arg.device, arg.target, arg.has_replaces, arg.replaces, arg.sync, arg.has_speed, arg.speed, arg.has_granularity, arg.granularity, arg.has_buf_size, arg.buf_size, arg.has_on_source_error, arg.on_source_error, arg.has_on_target_error, arg.on_target_error, arg.has_filter_node_name, arg.filter_node_name, arg.has_copy_mode, arg.copy_mode, arg.has_auto_finalize, arg.auto_finalize, arg.has_auto_dismiss, arg.auto_dismiss, &err);
899
900out:
901 error_propagate(errp, err);
902 visit_free(v);
903 v = qapi_dealloc_visitor_new();
904 visit_start_struct(v, NULL, NULL, 0, NULL);
905 visit_type_q_obj_blockdev_mirror_arg_members(v, &arg, NULL);
906 visit_end_struct(v, NULL);
907 visit_free(v);
908}
909
910void qmp_marshal_block_set_io_throttle(QDict *args, QObject **ret, Error **errp)
911{
912 Error *err = NULL;
913 Visitor *v;
914 BlockIOThrottle arg = {0};
915
916 v = qobject_input_visitor_new(QOBJECT(args));
917 visit_start_struct(v, NULL, NULL, 0, &err);
918 if (err) {
919 goto out;
920 }
921 visit_type_BlockIOThrottle_members(v, &arg, &err);
922 if (!err) {
923 visit_check_struct(v, &err);
924 }
925 visit_end_struct(v, NULL);
926 if (err) {
927 goto out;
928 }
929
930 qmp_block_set_io_throttle(&arg, &err);
931
932out:
933 error_propagate(errp, err);
934 visit_free(v);
935 v = qapi_dealloc_visitor_new();
936 visit_start_struct(v, NULL, NULL, 0, NULL);
937 visit_type_BlockIOThrottle_members(v, &arg, NULL);
938 visit_end_struct(v, NULL);
939 visit_free(v);
940}
941
942void qmp_marshal_block_stream(QDict *args, QObject **ret, Error **errp)
943{
944 Error *err = NULL;
945 Visitor *v;
946 q_obj_block_stream_arg arg = {0};
947
948 v = qobject_input_visitor_new(QOBJECT(args));
949 visit_start_struct(v, NULL, NULL, 0, &err);
950 if (err) {
951 goto out;
952 }
953 visit_type_q_obj_block_stream_arg_members(v, &arg, &err);
954 if (!err) {
955 visit_check_struct(v, &err);
956 }
957 visit_end_struct(v, NULL);
958 if (err) {
959 goto out;
960 }
961
962 qmp_block_stream(arg.has_job_id, arg.job_id, arg.device, arg.has_base, arg.base, arg.has_base_node, arg.base_node, arg.has_backing_file, arg.backing_file, arg.has_speed, arg.speed, arg.has_on_error, arg.on_error, arg.has_auto_finalize, arg.auto_finalize, arg.has_auto_dismiss, arg.auto_dismiss, &err);
963
964out:
965 error_propagate(errp, err);
966 visit_free(v);
967 v = qapi_dealloc_visitor_new();
968 visit_start_struct(v, NULL, NULL, 0, NULL);
969 visit_type_q_obj_block_stream_arg_members(v, &arg, NULL);
970 visit_end_struct(v, NULL);
971 visit_free(v);
972}
973
974void qmp_marshal_block_job_set_speed(QDict *args, QObject **ret, Error **errp)
975{
976 Error *err = NULL;
977 Visitor *v;
978 q_obj_block_job_set_speed_arg arg = {0};
979
980 v = qobject_input_visitor_new(QOBJECT(args));
981 visit_start_struct(v, NULL, NULL, 0, &err);
982 if (err) {
983 goto out;
984 }
985 visit_type_q_obj_block_job_set_speed_arg_members(v, &arg, &err);
986 if (!err) {
987 visit_check_struct(v, &err);
988 }
989 visit_end_struct(v, NULL);
990 if (err) {
991 goto out;
992 }
993
994 qmp_block_job_set_speed(arg.device, arg.speed, &err);
995
996out:
997 error_propagate(errp, err);
998 visit_free(v);
999 v = qapi_dealloc_visitor_new();
1000 visit_start_struct(v, NULL, NULL, 0, NULL);
1001 visit_type_q_obj_block_job_set_speed_arg_members(v, &arg, NULL);
1002 visit_end_struct(v, NULL);
1003 visit_free(v);
1004}
1005
1006void qmp_marshal_block_job_cancel(QDict *args, QObject **ret, Error **errp)
1007{
1008 Error *err = NULL;
1009 Visitor *v;
1010 q_obj_block_job_cancel_arg arg = {0};
1011
1012 v = qobject_input_visitor_new(QOBJECT(args));
1013 visit_start_struct(v, NULL, NULL, 0, &err);
1014 if (err) {
1015 goto out;
1016 }
1017 visit_type_q_obj_block_job_cancel_arg_members(v, &arg, &err);
1018 if (!err) {
1019 visit_check_struct(v, &err);
1020 }
1021 visit_end_struct(v, NULL);
1022 if (err) {
1023 goto out;
1024 }
1025
1026 qmp_block_job_cancel(arg.device, arg.has_force, arg.force, &err);
1027
1028out:
1029 error_propagate(errp, err);
1030 visit_free(v);
1031 v = qapi_dealloc_visitor_new();
1032 visit_start_struct(v, NULL, NULL, 0, NULL);
1033 visit_type_q_obj_block_job_cancel_arg_members(v, &arg, NULL);
1034 visit_end_struct(v, NULL);
1035 visit_free(v);
1036}
1037
1038void qmp_marshal_block_job_pause(QDict *args, QObject **ret, Error **errp)
1039{
1040 Error *err = NULL;
1041 Visitor *v;
1042 q_obj_block_job_pause_arg arg = {0};
1043
1044 v = qobject_input_visitor_new(QOBJECT(args));
1045 visit_start_struct(v, NULL, NULL, 0, &err);
1046 if (err) {
1047 goto out;
1048 }
1049 visit_type_q_obj_block_job_pause_arg_members(v, &arg, &err);
1050 if (!err) {
1051 visit_check_struct(v, &err);
1052 }
1053 visit_end_struct(v, NULL);
1054 if (err) {
1055 goto out;
1056 }
1057
1058 qmp_block_job_pause(arg.device, &err);
1059
1060out:
1061 error_propagate(errp, err);
1062 visit_free(v);
1063 v = qapi_dealloc_visitor_new();
1064 visit_start_struct(v, NULL, NULL, 0, NULL);
1065 visit_type_q_obj_block_job_pause_arg_members(v, &arg, NULL);
1066 visit_end_struct(v, NULL);
1067 visit_free(v);
1068}
1069
1070void qmp_marshal_block_job_resume(QDict *args, QObject **ret, Error **errp)
1071{
1072 Error *err = NULL;
1073 Visitor *v;
1074 q_obj_block_job_resume_arg arg = {0};
1075
1076 v = qobject_input_visitor_new(QOBJECT(args));
1077 visit_start_struct(v, NULL, NULL, 0, &err);
1078 if (err) {
1079 goto out;
1080 }
1081 visit_type_q_obj_block_job_resume_arg_members(v, &arg, &err);
1082 if (!err) {
1083 visit_check_struct(v, &err);
1084 }
1085 visit_end_struct(v, NULL);
1086 if (err) {
1087 goto out;
1088 }
1089
1090 qmp_block_job_resume(arg.device, &err);
1091
1092out:
1093 error_propagate(errp, err);
1094 visit_free(v);
1095 v = qapi_dealloc_visitor_new();
1096 visit_start_struct(v, NULL, NULL, 0, NULL);
1097 visit_type_q_obj_block_job_resume_arg_members(v, &arg, NULL);
1098 visit_end_struct(v, NULL);
1099 visit_free(v);
1100}
1101
1102void qmp_marshal_block_job_complete(QDict *args, QObject **ret, Error **errp)
1103{
1104 Error *err = NULL;
1105 Visitor *v;
1106 q_obj_block_job_complete_arg arg = {0};
1107
1108 v = qobject_input_visitor_new(QOBJECT(args));
1109 visit_start_struct(v, NULL, NULL, 0, &err);
1110 if (err) {
1111 goto out;
1112 }
1113 visit_type_q_obj_block_job_complete_arg_members(v, &arg, &err);
1114 if (!err) {
1115 visit_check_struct(v, &err);
1116 }
1117 visit_end_struct(v, NULL);
1118 if (err) {
1119 goto out;
1120 }
1121
1122 qmp_block_job_complete(arg.device, &err);
1123
1124out:
1125 error_propagate(errp, err);
1126 visit_free(v);
1127 v = qapi_dealloc_visitor_new();
1128 visit_start_struct(v, NULL, NULL, 0, NULL);
1129 visit_type_q_obj_block_job_complete_arg_members(v, &arg, NULL);
1130 visit_end_struct(v, NULL);
1131 visit_free(v);
1132}
1133
1134void qmp_marshal_block_job_dismiss(QDict *args, QObject **ret, Error **errp)
1135{
1136 Error *err = NULL;
1137 Visitor *v;
1138 q_obj_block_job_dismiss_arg arg = {0};
1139
1140 v = qobject_input_visitor_new(QOBJECT(args));
1141 visit_start_struct(v, NULL, NULL, 0, &err);
1142 if (err) {
1143 goto out;
1144 }
1145 visit_type_q_obj_block_job_dismiss_arg_members(v, &arg, &err);
1146 if (!err) {
1147 visit_check_struct(v, &err);
1148 }
1149 visit_end_struct(v, NULL);
1150 if (err) {
1151 goto out;
1152 }
1153
1154 qmp_block_job_dismiss(arg.id, &err);
1155
1156out:
1157 error_propagate(errp, err);
1158 visit_free(v);
1159 v = qapi_dealloc_visitor_new();
1160 visit_start_struct(v, NULL, NULL, 0, NULL);
1161 visit_type_q_obj_block_job_dismiss_arg_members(v, &arg, NULL);
1162 visit_end_struct(v, NULL);
1163 visit_free(v);
1164}
1165
1166void qmp_marshal_block_job_finalize(QDict *args, QObject **ret, Error **errp)
1167{
1168 Error *err = NULL;
1169 Visitor *v;
1170 q_obj_block_job_finalize_arg arg = {0};
1171
1172 v = qobject_input_visitor_new(QOBJECT(args));
1173 visit_start_struct(v, NULL, NULL, 0, &err);
1174 if (err) {
1175 goto out;
1176 }
1177 visit_type_q_obj_block_job_finalize_arg_members(v, &arg, &err);
1178 if (!err) {
1179 visit_check_struct(v, &err);
1180 }
1181 visit_end_struct(v, NULL);
1182 if (err) {
1183 goto out;
1184 }
1185
1186 qmp_block_job_finalize(arg.id, &err);
1187
1188out:
1189 error_propagate(errp, err);
1190 visit_free(v);
1191 v = qapi_dealloc_visitor_new();
1192 visit_start_struct(v, NULL, NULL, 0, NULL);
1193 visit_type_q_obj_block_job_finalize_arg_members(v, &arg, NULL);
1194 visit_end_struct(v, NULL);
1195 visit_free(v);
1196}
1197
1198void qmp_marshal_blockdev_add(QDict *args, QObject **ret, Error **errp)
1199{
1200 Error *err = NULL;
1201 Visitor *v;
1202 BlockdevOptions arg = {0};
1203
1204 v = qobject_input_visitor_new(QOBJECT(args));
1205 visit_start_struct(v, NULL, NULL, 0, &err);
1206 if (err) {
1207 goto out;
1208 }
1209 visit_type_BlockdevOptions_members(v, &arg, &err);
1210 if (!err) {
1211 visit_check_struct(v, &err);
1212 }
1213 visit_end_struct(v, NULL);
1214 if (err) {
1215 goto out;
1216 }
1217
1218 qmp_blockdev_add(&arg, &err);
1219
1220out:
1221 error_propagate(errp, err);
1222 visit_free(v);
1223 v = qapi_dealloc_visitor_new();
1224 visit_start_struct(v, NULL, NULL, 0, NULL);
1225 visit_type_BlockdevOptions_members(v, &arg, NULL);
1226 visit_end_struct(v, NULL);
1227 visit_free(v);
1228}
1229
1230void qmp_marshal_x_blockdev_reopen(QDict *args, QObject **ret, Error **errp)
1231{
1232 Error *err = NULL;
1233 Visitor *v;
1234 BlockdevOptions arg = {0};
1235
1236 v = qobject_input_visitor_new(QOBJECT(args));
1237 visit_start_struct(v, NULL, NULL, 0, &err);
1238 if (err) {
1239 goto out;
1240 }
1241 visit_type_BlockdevOptions_members(v, &arg, &err);
1242 if (!err) {
1243 visit_check_struct(v, &err);
1244 }
1245 visit_end_struct(v, NULL);
1246 if (err) {
1247 goto out;
1248 }
1249
1250 qmp_x_blockdev_reopen(&arg, &err);
1251
1252out:
1253 error_propagate(errp, err);
1254 visit_free(v);
1255 v = qapi_dealloc_visitor_new();
1256 visit_start_struct(v, NULL, NULL, 0, NULL);
1257 visit_type_BlockdevOptions_members(v, &arg, NULL);
1258 visit_end_struct(v, NULL);
1259 visit_free(v);
1260}
1261
1262void qmp_marshal_blockdev_del(QDict *args, QObject **ret, Error **errp)
1263{
1264 Error *err = NULL;
1265 Visitor *v;
1266 q_obj_blockdev_del_arg arg = {0};
1267
1268 v = qobject_input_visitor_new(QOBJECT(args));
1269 visit_start_struct(v, NULL, NULL, 0, &err);
1270 if (err) {
1271 goto out;
1272 }
1273 visit_type_q_obj_blockdev_del_arg_members(v, &arg, &err);
1274 if (!err) {
1275 visit_check_struct(v, &err);
1276 }
1277 visit_end_struct(v, NULL);
1278 if (err) {
1279 goto out;
1280 }
1281
1282 qmp_blockdev_del(arg.node_name, &err);
1283
1284out:
1285 error_propagate(errp, err);
1286 visit_free(v);
1287 v = qapi_dealloc_visitor_new();
1288 visit_start_struct(v, NULL, NULL, 0, NULL);
1289 visit_type_q_obj_blockdev_del_arg_members(v, &arg, NULL);
1290 visit_end_struct(v, NULL);
1291 visit_free(v);
1292}
1293
1294void qmp_marshal_blockdev_create(QDict *args, QObject **ret, Error **errp)
1295{
1296 Error *err = NULL;
1297 Visitor *v;
1298 q_obj_blockdev_create_arg arg = {0};
1299
1300 v = qobject_input_visitor_new(QOBJECT(args));
1301 visit_start_struct(v, NULL, NULL, 0, &err);
1302 if (err) {
1303 goto out;
1304 }
1305 visit_type_q_obj_blockdev_create_arg_members(v, &arg, &err);
1306 if (!err) {
1307 visit_check_struct(v, &err);
1308 }
1309 visit_end_struct(v, NULL);
1310 if (err) {
1311 goto out;
1312 }
1313
1314 qmp_blockdev_create(arg.job_id, arg.options, &err);
1315
1316out:
1317 error_propagate(errp, err);
1318 visit_free(v);
1319 v = qapi_dealloc_visitor_new();
1320 visit_start_struct(v, NULL, NULL, 0, NULL);
1321 visit_type_q_obj_blockdev_create_arg_members(v, &arg, NULL);
1322 visit_end_struct(v, NULL);
1323 visit_free(v);
1324}
1325
1326void qmp_marshal_blockdev_open_tray(QDict *args, QObject **ret, Error **errp)
1327{
1328 Error *err = NULL;
1329 Visitor *v;
1330 q_obj_blockdev_open_tray_arg arg = {0};
1331
1332 v = qobject_input_visitor_new(QOBJECT(args));
1333 visit_start_struct(v, NULL, NULL, 0, &err);
1334 if (err) {
1335 goto out;
1336 }
1337 visit_type_q_obj_blockdev_open_tray_arg_members(v, &arg, &err);
1338 if (!err) {
1339 visit_check_struct(v, &err);
1340 }
1341 visit_end_struct(v, NULL);
1342 if (err) {
1343 goto out;
1344 }
1345
1346 qmp_blockdev_open_tray(arg.has_device, arg.device, arg.has_id, arg.id, arg.has_force, arg.force, &err);
1347
1348out:
1349 error_propagate(errp, err);
1350 visit_free(v);
1351 v = qapi_dealloc_visitor_new();
1352 visit_start_struct(v, NULL, NULL, 0, NULL);
1353 visit_type_q_obj_blockdev_open_tray_arg_members(v, &arg, NULL);
1354 visit_end_struct(v, NULL);
1355 visit_free(v);
1356}
1357
1358void qmp_marshal_blockdev_close_tray(QDict *args, QObject **ret, Error **errp)
1359{
1360 Error *err = NULL;
1361 Visitor *v;
1362 q_obj_blockdev_close_tray_arg arg = {0};
1363
1364 v = qobject_input_visitor_new(QOBJECT(args));
1365 visit_start_struct(v, NULL, NULL, 0, &err);
1366 if (err) {
1367 goto out;
1368 }
1369 visit_type_q_obj_blockdev_close_tray_arg_members(v, &arg, &err);
1370 if (!err) {
1371 visit_check_struct(v, &err);
1372 }
1373 visit_end_struct(v, NULL);
1374 if (err) {
1375 goto out;
1376 }
1377
1378 qmp_blockdev_close_tray(arg.has_device, arg.device, arg.has_id, arg.id, &err);
1379
1380out:
1381 error_propagate(errp, err);
1382 visit_free(v);
1383 v = qapi_dealloc_visitor_new();
1384 visit_start_struct(v, NULL, NULL, 0, NULL);
1385 visit_type_q_obj_blockdev_close_tray_arg_members(v, &arg, NULL);
1386 visit_end_struct(v, NULL);
1387 visit_free(v);
1388}
1389
1390void qmp_marshal_blockdev_remove_medium(QDict *args, QObject **ret, Error **errp)
1391{
1392 Error *err = NULL;
1393 Visitor *v;
1394 q_obj_blockdev_remove_medium_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_blockdev_remove_medium_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 qmp_blockdev_remove_medium(arg.id, &err);
1411
1412out:
1413 error_propagate(errp, err);
1414 visit_free(v);
1415 v = qapi_dealloc_visitor_new();
1416 visit_start_struct(v, NULL, NULL, 0, NULL);
1417 visit_type_q_obj_blockdev_remove_medium_arg_members(v, &arg, NULL);
1418 visit_end_struct(v, NULL);
1419 visit_free(v);
1420}
1421
1422void qmp_marshal_blockdev_insert_medium(QDict *args, QObject **ret, Error **errp)
1423{
1424 Error *err = NULL;
1425 Visitor *v;
1426 q_obj_blockdev_insert_medium_arg arg = {0};
1427
1428 v = qobject_input_visitor_new(QOBJECT(args));
1429 visit_start_struct(v, NULL, NULL, 0, &err);
1430 if (err) {
1431 goto out;
1432 }
1433 visit_type_q_obj_blockdev_insert_medium_arg_members(v, &arg, &err);
1434 if (!err) {
1435 visit_check_struct(v, &err);
1436 }
1437 visit_end_struct(v, NULL);
1438 if (err) {
1439 goto out;
1440 }
1441
1442 qmp_blockdev_insert_medium(arg.id, arg.node_name, &err);
1443
1444out:
1445 error_propagate(errp, err);
1446 visit_free(v);
1447 v = qapi_dealloc_visitor_new();
1448 visit_start_struct(v, NULL, NULL, 0, NULL);
1449 visit_type_q_obj_blockdev_insert_medium_arg_members(v, &arg, NULL);
1450 visit_end_struct(v, NULL);
1451 visit_free(v);
1452}
1453
1454void qmp_marshal_blockdev_change_medium(QDict *args, QObject **ret, Error **errp)
1455{
1456 Error *err = NULL;
1457 Visitor *v;
1458 q_obj_blockdev_change_medium_arg arg = {0};
1459
1460 v = qobject_input_visitor_new(QOBJECT(args));
1461 visit_start_struct(v, NULL, NULL, 0, &err);
1462 if (err) {
1463 goto out;
1464 }
1465 visit_type_q_obj_blockdev_change_medium_arg_members(v, &arg, &err);
1466 if (!err) {
1467 visit_check_struct(v, &err);
1468 }
1469 visit_end_struct(v, NULL);
1470 if (err) {
1471 goto out;
1472 }
1473
1474 qmp_blockdev_change_medium(arg.has_device, arg.device, arg.has_id, arg.id, arg.filename, arg.has_format, arg.format, arg.has_read_only_mode, arg.read_only_mode, &err);
1475
1476out:
1477 error_propagate(errp, err);
1478 visit_free(v);
1479 v = qapi_dealloc_visitor_new();
1480 visit_start_struct(v, NULL, NULL, 0, NULL);
1481 visit_type_q_obj_blockdev_change_medium_arg_members(v, &arg, NULL);
1482 visit_end_struct(v, NULL);
1483 visit_free(v);
1484}
1485
1486void qmp_marshal_block_set_write_threshold(QDict *args, QObject **ret, Error **errp)
1487{
1488 Error *err = NULL;
1489 Visitor *v;
1490 q_obj_block_set_write_threshold_arg arg = {0};
1491
1492 v = qobject_input_visitor_new(QOBJECT(args));
1493 visit_start_struct(v, NULL, NULL, 0, &err);
1494 if (err) {
1495 goto out;
1496 }
1497 visit_type_q_obj_block_set_write_threshold_arg_members(v, &arg, &err);
1498 if (!err) {
1499 visit_check_struct(v, &err);
1500 }
1501 visit_end_struct(v, NULL);
1502 if (err) {
1503 goto out;
1504 }
1505
1506 qmp_block_set_write_threshold(arg.node_name, arg.write_threshold, &err);
1507
1508out:
1509 error_propagate(errp, err);
1510 visit_free(v);
1511 v = qapi_dealloc_visitor_new();
1512 visit_start_struct(v, NULL, NULL, 0, NULL);
1513 visit_type_q_obj_block_set_write_threshold_arg_members(v, &arg, NULL);
1514 visit_end_struct(v, NULL);
1515 visit_free(v);
1516}
1517
1518void qmp_marshal_x_blockdev_change(QDict *args, QObject **ret, Error **errp)
1519{
1520 Error *err = NULL;
1521 Visitor *v;
1522 q_obj_x_blockdev_change_arg arg = {0};
1523
1524 v = qobject_input_visitor_new(QOBJECT(args));
1525 visit_start_struct(v, NULL, NULL, 0, &err);
1526 if (err) {
1527 goto out;
1528 }
1529 visit_type_q_obj_x_blockdev_change_arg_members(v, &arg, &err);
1530 if (!err) {
1531 visit_check_struct(v, &err);
1532 }
1533 visit_end_struct(v, NULL);
1534 if (err) {
1535 goto out;
1536 }
1537
1538 qmp_x_blockdev_change(arg.parent, arg.has_child, arg.child, arg.has_node, arg.node, &err);
1539
1540out:
1541 error_propagate(errp, err);
1542 visit_free(v);
1543 v = qapi_dealloc_visitor_new();
1544 visit_start_struct(v, NULL, NULL, 0, NULL);
1545 visit_type_q_obj_x_blockdev_change_arg_members(v, &arg, NULL);
1546 visit_end_struct(v, NULL);
1547 visit_free(v);
1548}
1549
1550void qmp_marshal_x_blockdev_set_iothread(QDict *args, QObject **ret, Error **errp)
1551{
1552 Error *err = NULL;
1553 Visitor *v;
1554 q_obj_x_blockdev_set_iothread_arg arg = {0};
1555
1556 v = qobject_input_visitor_new(QOBJECT(args));
1557 visit_start_struct(v, NULL, NULL, 0, &err);
1558 if (err) {
1559 goto out;
1560 }
1561 visit_type_q_obj_x_blockdev_set_iothread_arg_members(v, &arg, &err);
1562 if (!err) {
1563 visit_check_struct(v, &err);
1564 }
1565 visit_end_struct(v, NULL);
1566 if (err) {
1567 goto out;
1568 }
1569
1570 qmp_x_blockdev_set_iothread(arg.node_name, arg.iothread, arg.has_force, arg.force, &err);
1571
1572out:
1573 error_propagate(errp, err);
1574 visit_free(v);
1575 v = qapi_dealloc_visitor_new();
1576 visit_start_struct(v, NULL, NULL, 0, NULL);
1577 visit_type_q_obj_x_blockdev_set_iothread_arg_members(v, &arg, NULL);
1578 visit_end_struct(v, NULL);
1579 visit_free(v);
1580}
1581
1582/* Dummy declaration to prevent empty .o file */
1583char qapi_dummy_qapi_commands_block_core_c;
1584