qmp-marshal.c revision 910aea96b67d7f0357f586c47f20848ec435aa1b
1910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner/* THIS FILE IS AUTOMATICALLY GENERATED, DO NOT MODIFY */
2910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner/*
4910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * schema-defined QMP->QAPI command dispatch
5910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner *
6910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * Copyright IBM, Corp. 2011
7910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner *
8910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * Authors:
9910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner *  Anthony Liguori   <aliguori@us.ibm.com>
10910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner *
11910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
12910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner * See the COPYING.LIB file in the top-level directory.
13910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner *
14910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner */
15910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
16910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qemu-common.h"
17910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qemu/module.h"
18910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi/qmp/qerror.h"
19910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi/qmp/types.h"
20910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi/qmp/dispatch.h"
21910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi/visitor.h"
22910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi/qmp-output-visitor.h"
23910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi/qmp-input-visitor.h"
24910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi/dealloc-visitor.h"
25910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi-types.h"
26910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qapi-visit.h"
27910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
28910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#include "qmp-commands.h"
29910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
30910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_add_client(Monitor *mon, const QDict *qdict, QObject **ret)
31910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
32910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
33910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
34910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
35910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
36910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
37910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
38910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * protocol = NULL;
39910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * fdname = NULL;
40910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_skipauth = false;
41910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool skipauth;
42910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_tls = false;
43910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool tls;
44910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
45910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
46910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
47910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &protocol, "protocol", errp);
48910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &fdname, "fdname", errp);
49910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_skipauth, "skipauth", errp);
50910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_skipauth) {
51910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &skipauth, "skipauth", errp);
52910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
53910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
54910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_tls, "tls", errp);
55910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_tls) {
56910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &tls, "tls", errp);
57910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
58910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
59910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
60910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
61910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
62910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
63910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
64910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_add_client(protocol, fdname, has_skipauth, skipauth, has_tls, tls, errp);
65910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
66910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
67910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
68910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
69910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &protocol, "protocol", NULL);
70910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &fdname, "fdname", NULL);
71910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_skipauth, "skipauth", NULL);
72910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_skipauth) {
73910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &skipauth, "skipauth", NULL);
74910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
75910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
76910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_tls, "tls", NULL);
77910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_tls) {
78910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &tls, "tls", NULL);
79910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
80910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
81910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
82910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
83910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
84910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
85910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
86910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
87910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
88910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
89910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
90910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
91910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_name(NameInfo * ret_in, QObject **ret_out, Error **errp)
92910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
93910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
94910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
95910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
96910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
97910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
98910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_NameInfo(v, &ret_in, "unused", errp);
99910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_NameInfo(v, &ret_in, "unused", NULL);
105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_name(Monitor *mon, const QDict *qdict, QObject **ret)
109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    NameInfo * retval = NULL;
114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_name(errp);
119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_name(retval, ret, errp);
121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_version(VersionInfo * ret_in, QObject **ret_out, Error **errp)
135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_VersionInfo(v, &ret_in, "unused", errp);
142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_VersionInfo(v, &ret_in, "unused", NULL);
148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_version(Monitor *mon, const QDict *qdict, QObject **ret)
152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    VersionInfo * retval = NULL;
157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_version(errp);
162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_version(retval, ret, errp);
164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_kvm(KvmInfo * ret_in, QObject **ret_out, Error **errp)
178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_KvmInfo(v, &ret_in, "unused", errp);
185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_KvmInfo(v, &ret_in, "unused", NULL);
191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_kvm(Monitor *mon, const QDict *qdict, QObject **ret)
195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    KvmInfo * retval = NULL;
200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_kvm(errp);
205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_kvm(retval, ret, errp);
207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_status(StatusInfo * ret_in, QObject **ret_out, Error **errp)
221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_StatusInfo(v, &ret_in, "unused", errp);
228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_StatusInfo(v, &ret_in, "unused", NULL);
234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_status(Monitor *mon, const QDict *qdict, QObject **ret)
238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    StatusInfo * retval = NULL;
243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_status(errp);
248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_status(retval, ret, errp);
250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_uuid(UuidInfo * ret_in, QObject **ret_out, Error **errp)
264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_UuidInfo(v, &ret_in, "unused", errp);
271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_UuidInfo(v, &ret_in, "unused", NULL);
277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_uuid(Monitor *mon, const QDict *qdict, QObject **ret)
281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    UuidInfo * retval = NULL;
286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_uuid(errp);
291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_uuid(retval, ret, errp);
293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_chardev(ChardevInfoList * ret_in, QObject **ret_out, Error **errp)
307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ChardevInfoList(v, &ret_in, "unused", errp);
314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ChardevInfoList(v, &ret_in, "unused", NULL);
320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_chardev(Monitor *mon, const QDict *qdict, QObject **ret)
324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    ChardevInfoList * retval = NULL;
329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_chardev(errp);
334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_chardev(retval, ret, errp);
336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_ringbuf_write(Monitor *mon, const QDict *qdict, QObject **ret)
350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * data = NULL;
359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_format = false;
360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    DataFormat format;
361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &data, "data", errp);
366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", errp);
367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_DataFormat(v, &format, "format", errp);
369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_ringbuf_write(device, data, has_format, format, errp);
377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &data, "data", NULL);
383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", NULL);
384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_DataFormat(v, &format, "format", NULL);
386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_ringbuf_read(char * ret_in, QObject **ret_out, Error **errp)
399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &ret_in, "unused", errp);
406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &ret_in, "unused", NULL);
412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_ringbuf_read(Monitor *mon, const QDict *qdict, QObject **ret)
416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * retval = NULL;
421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t size;
426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_format = false;
427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    DataFormat format;
428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &size, "size", errp);
433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", errp);
434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_DataFormat(v, &format, "format", errp);
436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_ringbuf_read(device, size, has_format, format, errp);
444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_ringbuf_read(retval, ret, errp);
446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &size, "size", NULL);
453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", NULL);
454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_DataFormat(v, &format, "format", NULL);
456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_commands(CommandInfoList * ret_in, QObject **ret_out, Error **errp)
469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_CommandInfoList(v, &ret_in, "unused", errp);
476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_CommandInfoList(v, &ret_in, "unused", NULL);
482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_commands(Monitor *mon, const QDict *qdict, QObject **ret)
486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    CommandInfoList * retval = NULL;
491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_commands(errp);
496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_commands(retval, ret, errp);
498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_events(EventInfoList * ret_in, QObject **ret_out, Error **errp)
512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_EventInfoList(v, &ret_in, "unused", errp);
519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_EventInfoList(v, &ret_in, "unused", NULL);
525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_events(Monitor *mon, const QDict *qdict, QObject **ret)
529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    EventInfoList * retval = NULL;
534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_events(errp);
539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_events(retval, ret, errp);
541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_migrate(MigrationInfo * ret_in, QObject **ret_out, Error **errp)
555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MigrationInfo(v, &ret_in, "unused", errp);
562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MigrationInfo(v, &ret_in, "unused", NULL);
568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_migrate(Monitor *mon, const QDict *qdict, QObject **ret)
572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    MigrationInfo * retval = NULL;
577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_migrate(errp);
582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_migrate(retval, ret, errp);
584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_migrate_set_capabilities(Monitor *mon, const QDict *qdict, QObject **ret)
598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    MigrationCapabilityStatusList * capabilities = NULL;
606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MigrationCapabilityStatusList(v, &capabilities, "capabilities", errp);
610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_migrate_set_capabilities(capabilities, errp);
616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MigrationCapabilityStatusList(v, &capabilities, "capabilities", NULL);
621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_migrate_capabilities(MigrationCapabilityStatusList * ret_in, QObject **ret_out, Error **errp)
632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MigrationCapabilityStatusList(v, &ret_in, "unused", errp);
639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MigrationCapabilityStatusList(v, &ret_in, "unused", NULL);
645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_migrate_capabilities(Monitor *mon, const QDict *qdict, QObject **ret)
649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    MigrationCapabilityStatusList * retval = NULL;
654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_migrate_capabilities(errp);
659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_migrate_capabilities(retval, ret, errp);
661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_mice(MouseInfoList * ret_in, QObject **ret_out, Error **errp)
675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MouseInfoList(v, &ret_in, "unused", errp);
682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MouseInfoList(v, &ret_in, "unused", NULL);
688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_mice(Monitor *mon, const QDict *qdict, QObject **ret)
692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    MouseInfoList * retval = NULL;
697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_mice(errp);
702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_mice(retval, ret, errp);
704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_cpus(CpuInfoList * ret_in, QObject **ret_out, Error **errp)
718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_CpuInfoList(v, &ret_in, "unused", errp);
725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_CpuInfoList(v, &ret_in, "unused", NULL);
731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_cpus(Monitor *mon, const QDict *qdict, QObject **ret)
735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    CpuInfoList * retval = NULL;
740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_cpus(errp);
745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_cpus(retval, ret, errp);
747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_block(BlockInfoList * ret_in, QObject **ret_out, Error **errp)
761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BlockInfoList(v, &ret_in, "unused", errp);
768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BlockInfoList(v, &ret_in, "unused", NULL);
774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_block(Monitor *mon, const QDict *qdict, QObject **ret)
778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockInfoList * retval = NULL;
783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_block(errp);
788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_block(retval, ret, errp);
790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_blockstats(BlockStatsList * ret_in, QObject **ret_out, Error **errp)
804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BlockStatsList(v, &ret_in, "unused", errp);
811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BlockStatsList(v, &ret_in, "unused", NULL);
817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_blockstats(Monitor *mon, const QDict *qdict, QObject **ret)
821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockStatsList * retval = NULL;
826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_blockstats(errp);
831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_blockstats(retval, ret, errp);
833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_vnc(VncInfo * ret_in, QObject **ret_out, Error **errp)
847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_VncInfo(v, &ret_in, "unused", errp);
854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_VncInfo(v, &ret_in, "unused", NULL);
860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_vnc(Monitor *mon, const QDict *qdict, QObject **ret)
864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    VncInfo * retval = NULL;
869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_vnc(errp);
874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_vnc(retval, ret, errp);
876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_spice(SpiceInfo * ret_in, QObject **ret_out, Error **errp)
890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_SpiceInfo(v, &ret_in, "unused", errp);
897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_SpiceInfo(v, &ret_in, "unused", NULL);
903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_spice(Monitor *mon, const QDict *qdict, QObject **ret)
907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    SpiceInfo * retval = NULL;
912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_spice(errp);
917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_spice(retval, ret, errp);
919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_balloon(BalloonInfo * ret_in, QObject **ret_out, Error **errp)
933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BalloonInfo(v, &ret_in, "unused", errp);
940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BalloonInfo(v, &ret_in, "unused", NULL);
946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_balloon(Monitor *mon, const QDict *qdict, QObject **ret)
950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BalloonInfo * retval = NULL;
955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_balloon(errp);
960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_balloon(retval, ret, errp);
962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_pci(PciInfoList * ret_in, QObject **ret_out, Error **errp)
976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_PciInfoList(v, &ret_in, "unused", errp);
983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_PciInfoList(v, &ret_in, "unused", NULL);
989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_pci(Monitor *mon, const QDict *qdict, QObject **ret)
993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    PciInfoList * retval = NULL;
998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_pci(errp);
1003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
1004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_pci(retval, ret, errp);
1005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_block_jobs(BlockJobInfoList * ret_in, QObject **ret_out, Error **errp)
1019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
1021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
1022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
1025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BlockJobInfoList(v, &ret_in, "unused", errp);
1026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
1027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
1028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
1030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BlockJobInfoList(v, &ret_in, "unused", NULL);
1032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_block_jobs(Monitor *mon, const QDict *qdict, QObject **ret)
1036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockJobInfoList * retval = NULL;
1041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
1042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_block_jobs(errp);
1046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
1047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_block_jobs(retval, ret, errp);
1048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_quit(Monitor *mon, const QDict *qdict, QObject **ret)
1062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
1067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_quit(errp);
1071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_stop(Monitor *mon, const QDict *qdict, QObject **ret)
1084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
1089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_stop(errp);
1093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_system_reset(Monitor *mon, const QDict *qdict, QObject **ret)
1106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
1111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_system_reset(errp);
1115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_system_powerdown(Monitor *mon, const QDict *qdict, QObject **ret)
1128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
1133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_system_powerdown(errp);
1137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_cpu(Monitor *mon, const QDict *qdict, QObject **ret)
1150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t index;
1158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &index, "index", errp);
1162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_cpu(index, errp);
1168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &index, "index", NULL);
1173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_cpu_add(Monitor *mon, const QDict *qdict, QObject **ret)
1184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t id;
1192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &id, "id", errp);
1196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_cpu_add(id, errp);
1202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &id, "id", NULL);
1207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_memsave(Monitor *mon, const QDict *qdict, QObject **ret)
1218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t val;
1226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t size;
1227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * filename = NULL;
1228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_cpu_index = false;
1229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t cpu_index;
1230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &val, "val", errp);
1234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &size, "size", errp);
1235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &filename, "filename", errp);
1236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_cpu_index, "cpu-index", errp);
1237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_cpu_index) {
1238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &cpu_index, "cpu-index", errp);
1239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_memsave(val, size, filename, has_cpu_index, cpu_index, errp);
1247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &val, "val", NULL);
1252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &size, "size", NULL);
1253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &filename, "filename", NULL);
1254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_cpu_index, "cpu-index", NULL);
1255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_cpu_index) {
1256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &cpu_index, "cpu-index", NULL);
1257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_pmemsave(Monitor *mon, const QDict *qdict, QObject **ret)
1270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t val;
1278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t size;
1279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * filename = NULL;
1280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &val, "val", errp);
1284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &size, "size", errp);
1285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &filename, "filename", errp);
1286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_pmemsave(val, size, filename, errp);
1292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &val, "val", NULL);
1297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &size, "size", NULL);
1298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &filename, "filename", NULL);
1299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_cont(Monitor *mon, const QDict *qdict, QObject **ret)
1310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
1315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_cont(errp);
1319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_system_wakeup(Monitor *mon, const QDict *qdict, QObject **ret)
1332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
1337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_system_wakeup(errp);
1341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_inject_nmi(Monitor *mon, const QDict *qdict, QObject **ret)
1354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
1359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_inject_nmi(errp);
1363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_set_link(Monitor *mon, const QDict *qdict, QObject **ret)
1376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * name = NULL;
1384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool up;
1385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &name, "name", errp);
1389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_bool(v, &up, "up", errp);
1390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_set_link(name, up, errp);
1396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &name, "name", NULL);
1401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_bool(v, &up, "up", NULL);
1402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_passwd(Monitor *mon, const QDict *qdict, QObject **ret)
1413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
1421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * password = NULL;
1422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
1426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &password, "password", errp);
1427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_passwd(device, password, errp);
1433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
1438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &password, "password", NULL);
1439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_balloon(Monitor *mon, const QDict *qdict, QObject **ret)
1450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t value;
1458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &value, "value", errp);
1462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_balloon(value, errp);
1468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &value, "value", NULL);
1473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_resize(Monitor *mon, const QDict *qdict, QObject **ret)
1484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
1492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t size;
1493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
1497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &size, "size", errp);
1498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_resize(device, size, errp);
1504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
1509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &size, "size", NULL);
1510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_transaction(Monitor *mon, const QDict *qdict, QObject **ret)
1521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    TransactionActionList * actions = NULL;
1529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TransactionActionList(v, &actions, "actions", errp);
1533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_transaction(actions, errp);
1539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TransactionActionList(v, &actions, "actions", NULL);
1544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_blockdev_snapshot_sync(Monitor *mon, const QDict *qdict, QObject **ret)
1555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
1563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * snapshot_file = NULL;
1564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_format = false;
1565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * format = NULL;
1566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_mode = false;
1567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    NewImageMode mode;
1568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
1572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &snapshot_file, "snapshot-file", errp);
1573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", errp);
1574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
1575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &format, "format", errp);
1576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_mode, "mode", errp);
1579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_mode) {
1580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_NewImageMode(v, &mode, "mode", errp);
1581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_blockdev_snapshot_sync(device, snapshot_file, has_format, format, has_mode, mode, errp);
1589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
1594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &snapshot_file, "snapshot-file", NULL);
1595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", NULL);
1596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
1597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &format, "format", NULL);
1598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_mode, "mode", NULL);
1601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_mode) {
1602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_NewImageMode(v, &mode, "mode", NULL);
1603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_blockdev_snapshot_internal_sync(Monitor *mon, const QDict *qdict, QObject **ret)
1616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
1624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * name = NULL;
1625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
1629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &name, "name", errp);
1630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_blockdev_snapshot_internal_sync(device, name, errp);
1636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
1641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &name, "name", NULL);
1642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_blockdev_snapshot_delete_internal_sync(SnapshotInfo * ret_in, QObject **ret_out, Error **errp)
1653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
1655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
1656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
1659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_SnapshotInfo(v, &ret_in, "unused", errp);
1660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
1661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
1662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
1664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_SnapshotInfo(v, &ret_in, "unused", NULL);
1666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_blockdev_snapshot_delete_internal_sync(Monitor *mon, const QDict *qdict, QObject **ret)
1670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    SnapshotInfo * retval = NULL;
1675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
1679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_id = false;
1680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * id = NULL;
1681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_name = false;
1682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * name = NULL;
1683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
1687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_id, "id", errp);
1688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_id) {
1689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &id, "id", errp);
1690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_name, "name", errp);
1693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_name) {
1694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &name, "name", errp);
1695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_blockdev_snapshot_delete_internal_sync(device, has_id, id, has_name, name, errp);
1703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
1704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_blockdev_snapshot_delete_internal_sync(retval, ret, errp);
1705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
1711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_id, "id", NULL);
1712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_id) {
1713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &id, "id", NULL);
1714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_name, "name", NULL);
1717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_name) {
1718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &name, "name", NULL);
1719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_human_monitor_command(char * ret_in, QObject **ret_out, Error **errp)
1732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
1734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
1735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
1738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &ret_in, "unused", errp);
1739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
1740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
1741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
1743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &ret_in, "unused", NULL);
1745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_human_monitor_command(Monitor *mon, const QDict *qdict, QObject **ret)
1749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * retval = NULL;
1754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * command_line = NULL;
1758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_cpu_index = false;
1759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t cpu_index;
1760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &command_line, "command-line", errp);
1764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_cpu_index, "cpu-index", errp);
1765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_cpu_index) {
1766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &cpu_index, "cpu-index", errp);
1767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_human_monitor_command(command_line, has_cpu_index, cpu_index, errp);
1775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
1776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_human_monitor_command(retval, ret, errp);
1777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &command_line, "command-line", NULL);
1783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_cpu_index, "cpu-index", NULL);
1784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_cpu_index) {
1785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &cpu_index, "cpu-index", NULL);
1786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_commit(Monitor *mon, const QDict *qdict, QObject **ret)
1799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
1807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_base = false;
1808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * base = NULL;
1809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * top = NULL;
1810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_speed = false;
1811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t speed;
1812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
1816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_base, "base", errp);
1817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_base) {
1818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &base, "base", errp);
1819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &top, "top", errp);
1822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_speed, "speed", errp);
1823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_speed) {
1824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &speed, "speed", errp);
1825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_commit(device, has_base, base, top, has_speed, speed, errp);
1833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
1838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_base, "base", NULL);
1839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_base) {
1840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &base, "base", NULL);
1841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &top, "top", NULL);
1844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_speed, "speed", NULL);
1845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_speed) {
1846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &speed, "speed", NULL);
1847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_drive_backup(Monitor *mon, const QDict *qdict, QObject **ret)
1860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
1868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * target = NULL;
1869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_format = false;
1870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * format = NULL;
1871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    MirrorSyncMode sync;
1872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_mode = false;
1873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    NewImageMode mode;
1874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_speed = false;
1875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t speed;
1876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_on_source_error = false;
1877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockdevOnError on_source_error;
1878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_on_target_error = false;
1879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockdevOnError on_target_error;
1880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
1884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &target, "target", errp);
1885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", errp);
1886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
1887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &format, "format", errp);
1888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MirrorSyncMode(v, &sync, "sync", errp);
1891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_mode, "mode", errp);
1892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_mode) {
1893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_NewImageMode(v, &mode, "mode", errp);
1894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_speed, "speed", errp);
1897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_speed) {
1898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &speed, "speed", errp);
1899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_source_error, "on-source-error", errp);
1902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_source_error) {
1903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_source_error, "on-source-error", errp);
1904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_target_error, "on-target-error", errp);
1907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_target_error) {
1908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_target_error, "on-target-error", errp);
1909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
1912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
1914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
1915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_drive_backup(device, target, has_format, format, sync, has_mode, mode, has_speed, speed, has_on_source_error, on_source_error, has_on_target_error, on_target_error, errp);
1917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
1919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
1920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
1921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
1922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &target, "target", NULL);
1923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", NULL);
1924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
1925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &format, "format", NULL);
1926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MirrorSyncMode(v, &sync, "sync", NULL);
1929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_mode, "mode", NULL);
1930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_mode) {
1931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_NewImageMode(v, &mode, "mode", NULL);
1932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_speed, "speed", NULL);
1935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_speed) {
1936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &speed, "speed", NULL);
1937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_source_error, "on-source-error", NULL);
1940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_source_error) {
1941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_source_error, "on-source-error", NULL);
1942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_target_error, "on-target-error", NULL);
1945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_target_error) {
1946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_target_error, "on-target-error", NULL);
1947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
1949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
1950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
1952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
1953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
1954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
1955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
1957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
1958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_drive_mirror(Monitor *mon, const QDict *qdict, QObject **ret)
1960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
1961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
1962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
1963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
1964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
1965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
1966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
1967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
1968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * target = NULL;
1969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_format = false;
1970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * format = NULL;
1971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    MirrorSyncMode sync;
1972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_mode = false;
1973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    NewImageMode mode;
1974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_speed = false;
1975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t speed;
1976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_granularity = false;
1977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    uint32_t granularity;
1978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_buf_size = false;
1979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t buf_size;
1980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_on_source_error = false;
1981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockdevOnError on_source_error;
1982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_on_target_error = false;
1983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockdevOnError on_target_error;
1984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
1986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
1987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
1988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &target, "target", errp);
1989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", errp);
1990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
1991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &format, "format", errp);
1992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
1994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MirrorSyncMode(v, &sync, "sync", errp);
1995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_mode, "mode", errp);
1996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_mode) {
1997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_NewImageMode(v, &mode, "mode", errp);
1998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
1999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_speed, "speed", errp);
2001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_speed) {
2002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &speed, "speed", errp);
2003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_granularity, "granularity", errp);
2006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_granularity) {
2007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_uint32(v, &granularity, "granularity", errp);
2008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_buf_size, "buf-size", errp);
2011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_buf_size) {
2012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &buf_size, "buf-size", errp);
2013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_source_error, "on-source-error", errp);
2016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_source_error) {
2017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_source_error, "on-source-error", errp);
2018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_target_error, "on-target-error", errp);
2021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_target_error) {
2022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_target_error, "on-target-error", errp);
2023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_drive_mirror(device, target, has_format, format, sync, has_mode, mode, has_speed, speed, has_granularity, granularity, has_buf_size, buf_size, has_on_source_error, on_source_error, has_on_target_error, on_target_error, errp);
2031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &target, "target", NULL);
2037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_format, "format", NULL);
2038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_format) {
2039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &format, "format", NULL);
2040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MirrorSyncMode(v, &sync, "sync", NULL);
2043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_mode, "mode", NULL);
2044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_mode) {
2045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_NewImageMode(v, &mode, "mode", NULL);
2046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_speed, "speed", NULL);
2049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_speed) {
2050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &speed, "speed", NULL);
2051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_granularity, "granularity", NULL);
2054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_granularity) {
2055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_uint32(v, &granularity, "granularity", NULL);
2056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_buf_size, "buf-size", NULL);
2059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_buf_size) {
2060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &buf_size, "buf-size", NULL);
2061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_source_error, "on-source-error", NULL);
2064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_source_error) {
2065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_source_error, "on-source-error", NULL);
2066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_target_error, "on-target-error", NULL);
2069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_target_error) {
2070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_target_error, "on-target-error", NULL);
2071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret)
2084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
2089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_migrate_cancel(errp);
2093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_migrate_set_downtime(Monitor *mon, const QDict *qdict, QObject **ret)
2106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    double value;
2114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_number(v, &value, "value", errp);
2118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_migrate_set_downtime(value, errp);
2124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_number(v, &value, "value", NULL);
2129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret)
2140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t value;
2148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &value, "value", errp);
2152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_migrate_set_speed(value, errp);
2158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &value, "value", NULL);
2163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_migrate_set_cache_size(Monitor *mon, const QDict *qdict, QObject **ret)
2174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t value;
2182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &value, "value", errp);
2186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_migrate_set_cache_size(value, errp);
2192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &value, "value", NULL);
2197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_migrate_cache_size(int64_t ret_in, QObject **ret_out, Error **errp)
2208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
2210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
2211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
2214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &ret_in, "unused", errp);
2215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
2216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
2217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
2219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &ret_in, "unused", NULL);
2221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_migrate_cache_size(Monitor *mon, const QDict *qdict, QObject **ret)
2225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t retval;
2230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
2231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_migrate_cache_size(errp);
2235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
2236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_migrate_cache_size(retval, ret, errp);
2237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_qom_list(ObjectPropertyInfoList * ret_in, QObject **ret_out, Error **errp)
2251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
2253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
2254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
2257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ObjectPropertyInfoList(v, &ret_in, "unused", errp);
2258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
2259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
2260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
2262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ObjectPropertyInfoList(v, &ret_in, "unused", NULL);
2264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_qom_list(Monitor *mon, const QDict *qdict, QObject **ret)
2268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    ObjectPropertyInfoList * retval = NULL;
2273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * path = NULL;
2277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &path, "path", errp);
2281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_qom_list(path, errp);
2287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
2288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_qom_list(retval, ret, errp);
2289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &path, "path", NULL);
2295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_set_password(Monitor *mon, const QDict *qdict, QObject **ret)
2306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * protocol = NULL;
2314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * password = NULL;
2315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_connected = false;
2316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * connected = NULL;
2317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &protocol, "protocol", errp);
2321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &password, "password", errp);
2322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_connected, "connected", errp);
2323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_connected) {
2324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &connected, "connected", errp);
2325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_set_password(protocol, password, has_connected, connected, errp);
2333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &protocol, "protocol", NULL);
2338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &password, "password", NULL);
2339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_connected, "connected", NULL);
2340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_connected) {
2341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &connected, "connected", NULL);
2342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_expire_password(Monitor *mon, const QDict *qdict, QObject **ret)
2355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * protocol = NULL;
2363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * time = NULL;
2364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &protocol, "protocol", errp);
2368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &time, "time", errp);
2369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_expire_password(protocol, time, errp);
2375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &protocol, "protocol", NULL);
2380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &time, "time", NULL);
2381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_eject(Monitor *mon, const QDict *qdict, QObject **ret)
2392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_force = false;
2401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool force;
2402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_force, "force", errp);
2407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_force) {
2408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &force, "force", errp);
2409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_eject(device, has_force, force, errp);
2417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_force, "force", NULL);
2423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_force) {
2424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &force, "force", NULL);
2425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_change_vnc_password(Monitor *mon, const QDict *qdict, QObject **ret)
2438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * password = NULL;
2446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &password, "password", errp);
2450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_change_vnc_password(password, errp);
2456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &password, "password", NULL);
2461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_change(Monitor *mon, const QDict *qdict, QObject **ret)
2472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * target = NULL;
2481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_arg = false;
2482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * arg = NULL;
2483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &target, "target", errp);
2488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_arg, "arg", errp);
2489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_arg) {
2490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &arg, "arg", errp);
2491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_change(device, target, has_arg, arg, errp);
2499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &target, "target", NULL);
2505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_arg, "arg", NULL);
2506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_arg) {
2507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &arg, "arg", NULL);
2508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_set_io_throttle(Monitor *mon, const QDict *qdict, QObject **ret)
2521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t bps;
2530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t bps_rd;
2531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t bps_wr;
2532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t iops;
2533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t iops_rd;
2534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t iops_wr;
2535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_bps_max = false;
2536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t bps_max;
2537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_bps_rd_max = false;
2538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t bps_rd_max;
2539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_bps_wr_max = false;
2540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t bps_wr_max;
2541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_iops_max = false;
2542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t iops_max;
2543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_iops_rd_max = false;
2544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t iops_rd_max;
2545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_iops_wr_max = false;
2546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t iops_wr_max;
2547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_iops_size = false;
2548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t iops_size;
2549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &bps, "bps", errp);
2554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &bps_rd, "bps_rd", errp);
2555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &bps_wr, "bps_wr", errp);
2556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &iops, "iops", errp);
2557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &iops_rd, "iops_rd", errp);
2558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &iops_wr, "iops_wr", errp);
2559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_bps_max, "bps_max", errp);
2560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_bps_max) {
2561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &bps_max, "bps_max", errp);
2562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_bps_rd_max, "bps_rd_max", errp);
2565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_bps_rd_max) {
2566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &bps_rd_max, "bps_rd_max", errp);
2567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_bps_wr_max, "bps_wr_max", errp);
2570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_bps_wr_max) {
2571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &bps_wr_max, "bps_wr_max", errp);
2572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_iops_max, "iops_max", errp);
2575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_iops_max) {
2576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &iops_max, "iops_max", errp);
2577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_iops_rd_max, "iops_rd_max", errp);
2580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_iops_rd_max) {
2581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &iops_rd_max, "iops_rd_max", errp);
2582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_iops_wr_max, "iops_wr_max", errp);
2585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_iops_wr_max) {
2586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &iops_wr_max, "iops_wr_max", errp);
2587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_iops_size, "iops_size", errp);
2590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_iops_size) {
2591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &iops_size, "iops_size", errp);
2592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_set_io_throttle(device, bps, bps_rd, bps_wr, iops, iops_rd, iops_wr, has_bps_max, bps_max, has_bps_rd_max, bps_rd_max, has_bps_wr_max, bps_wr_max, has_iops_max, iops_max, has_iops_rd_max, iops_rd_max, has_iops_wr_max, iops_wr_max, has_iops_size, iops_size, errp);
2600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &bps, "bps", NULL);
2606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &bps_rd, "bps_rd", NULL);
2607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &bps_wr, "bps_wr", NULL);
2608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &iops, "iops", NULL);
2609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &iops_rd, "iops_rd", NULL);
2610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &iops_wr, "iops_wr", NULL);
2611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_bps_max, "bps_max", NULL);
2612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_bps_max) {
2613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &bps_max, "bps_max", NULL);
2614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_bps_rd_max, "bps_rd_max", NULL);
2617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_bps_rd_max) {
2618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &bps_rd_max, "bps_rd_max", NULL);
2619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_bps_wr_max, "bps_wr_max", NULL);
2622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_bps_wr_max) {
2623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &bps_wr_max, "bps_wr_max", NULL);
2624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_iops_max, "iops_max", NULL);
2627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_iops_max) {
2628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &iops_max, "iops_max", NULL);
2629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_iops_rd_max, "iops_rd_max", NULL);
2632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_iops_rd_max) {
2633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &iops_rd_max, "iops_rd_max", NULL);
2634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_iops_wr_max, "iops_wr_max", NULL);
2637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_iops_wr_max) {
2638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &iops_wr_max, "iops_wr_max", NULL);
2639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_iops_size, "iops_size", NULL);
2642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_iops_size) {
2643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &iops_size, "iops_size", NULL);
2644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_stream(Monitor *mon, const QDict *qdict, QObject **ret)
2657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_base = false;
2666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * base = NULL;
2667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_speed = false;
2668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t speed;
2669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_on_error = false;
2670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockdevOnError on_error;
2671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_base, "base", errp);
2676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_base) {
2677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &base, "base", errp);
2678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_speed, "speed", errp);
2681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_speed) {
2682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &speed, "speed", errp);
2683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_error, "on-error", errp);
2686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_error) {
2687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_error, "on-error", errp);
2688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_stream(device, has_base, base, has_speed, speed, has_on_error, on_error, errp);
2696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_base, "base", NULL);
2702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_base) {
2703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &base, "base", NULL);
2704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_speed, "speed", NULL);
2707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_speed) {
2708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &speed, "speed", NULL);
2709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_on_error, "on-error", NULL);
2712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_on_error) {
2713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_BlockdevOnError(v, &on_error, "on-error", NULL);
2714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_job_set_speed(Monitor *mon, const QDict *qdict, QObject **ret)
2727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t speed;
2736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &speed, "speed", errp);
2741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_job_set_speed(device, speed, errp);
2747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &speed, "speed", NULL);
2753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_job_cancel(Monitor *mon, const QDict *qdict, QObject **ret)
2764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_force = false;
2773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool force;
2774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_force, "force", errp);
2779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_force) {
2780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &force, "force", errp);
2781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_job_cancel(device, has_force, force, errp);
2789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_force, "force", NULL);
2795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_force) {
2796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &force, "force", NULL);
2797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_job_pause(Monitor *mon, const QDict *qdict, QObject **ret)
2810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_job_pause(device, errp);
2828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_job_resume(Monitor *mon, const QDict *qdict, QObject **ret)
2844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_job_resume(device, errp);
2862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_block_job_complete(Monitor *mon, const QDict *qdict, QObject **ret)
2878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
2886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
2890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_block_job_complete(device, errp);
2896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
2901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_qom_list_types(ObjectTypeInfoList * ret_in, QObject **ret_out, Error **errp)
2912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
2914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
2915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
2918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ObjectTypeInfoList(v, &ret_in, "unused", errp);
2919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
2920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
2921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
2923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ObjectTypeInfoList(v, &ret_in, "unused", NULL);
2925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_qom_list_types(Monitor *mon, const QDict *qdict, QObject **ret)
2929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
2931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
2932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
2933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    ObjectTypeInfoList * retval = NULL;
2934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
2935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
2936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_implements = false;
2938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * implements = NULL;
2939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_abstract = false;
2940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool abstract;
2941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
2943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
2944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_implements, "implements", errp);
2945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_implements) {
2946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &implements, "implements", errp);
2947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_abstract, "abstract", errp);
2950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_abstract) {
2951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &abstract, "abstract", errp);
2952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
2954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
2955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
2957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
2958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_qom_list_types(has_implements, implements, has_abstract, abstract, errp);
2960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
2961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_qom_list_types(retval, ret, errp);
2962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
2965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
2966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
2967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_implements, "implements", NULL);
2968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_implements) {
2969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &implements, "implements", NULL);
2970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_abstract, "abstract", NULL);
2973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_abstract) {
2974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &abstract, "abstract", NULL);
2975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
2977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
2978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
2980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
2981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
2982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
2983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
2985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
2986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_device_list_properties(DevicePropertyInfoList * ret_in, QObject **ret_out, Error **errp)
2988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
2989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
2990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
2991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
2992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
2994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_DevicePropertyInfoList(v, &ret_in, "unused", errp);
2995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
2996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
2997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
2998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
2999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_DevicePropertyInfoList(v, &ret_in, "unused", NULL);
3001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_device_list_properties(Monitor *mon, const QDict *qdict, QObject **ret)
3005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    DevicePropertyInfoList * retval = NULL;
3010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * q_typename = NULL;
3014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &q_typename, "typename", errp);
3018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_device_list_properties(q_typename, errp);
3024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_device_list_properties(retval, ret, errp);
3026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &q_typename, "typename", NULL);
3032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_migrate(Monitor *mon, const QDict *qdict, QObject **ret)
3043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * uri = NULL;
3051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_blk = false;
3052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool blk;
3053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_inc = false;
3054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool inc;
3055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_detach = false;
3056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool detach;
3057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &uri, "uri", errp);
3061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_blk, "blk", errp);
3062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_blk) {
3063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &blk, "blk", errp);
3064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_inc, "inc", errp);
3067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_inc) {
3068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &inc, "inc", errp);
3069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_detach, "detach", errp);
3072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_detach) {
3073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &detach, "detach", errp);
3074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_migrate(uri, has_blk, blk, has_inc, inc, has_detach, detach, errp);
3082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &uri, "uri", NULL);
3087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_blk, "blk", NULL);
3088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_blk) {
3089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &blk, "blk", NULL);
3090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_inc, "inc", NULL);
3093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_inc) {
3094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &inc, "inc", NULL);
3095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_detach, "detach", NULL);
3098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_detach) {
3099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &detach, "detach", NULL);
3100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_xen_save_devices_state(Monitor *mon, const QDict *qdict, QObject **ret)
3113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * filename = NULL;
3121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &filename, "filename", errp);
3125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_xen_save_devices_state(filename, errp);
3131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &filename, "filename", NULL);
3136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_xen_set_global_dirty_log(Monitor *mon, const QDict *qdict, QObject **ret)
3147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool enable;
3155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_bool(v, &enable, "enable", errp);
3159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_xen_set_global_dirty_log(enable, errp);
3165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_bool(v, &enable, "enable", NULL);
3170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_device_del(Monitor *mon, const QDict *qdict, QObject **ret)
3181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * id = NULL;
3189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &id, "id", errp);
3193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_device_del(id, errp);
3199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &id, "id", NULL);
3204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_dump_guest_memory(Monitor *mon, const QDict *qdict, QObject **ret)
3215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool paging;
3223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * protocol = NULL;
3224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_begin = false;
3225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t begin;
3226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_length = false;
3227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t length;
3228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_bool(v, &paging, "paging", errp);
3232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &protocol, "protocol", errp);
3233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_begin, "begin", errp);
3234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_begin) {
3235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &begin, "begin", errp);
3236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_length, "length", errp);
3239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_length) {
3240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &length, "length", errp);
3241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_dump_guest_memory(paging, protocol, has_begin, begin, has_length, length, errp);
3249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_bool(v, &paging, "paging", NULL);
3254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &protocol, "protocol", NULL);
3255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_begin, "begin", NULL);
3256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_begin) {
3257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &begin, "begin", NULL);
3258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_length, "length", NULL);
3261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_length) {
3262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &length, "length", NULL);
3263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret)
3276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * id = NULL;
3284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &id, "id", errp);
3288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_netdev_del(id, errp);
3294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &id, "id", NULL);
3299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_getfd(Monitor *mon, const QDict *qdict, QObject **ret)
3310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * fdname = NULL;
3318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &fdname, "fdname", errp);
3322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_getfd(fdname, errp);
3328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &fdname, "fdname", NULL);
3333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_closefd(Monitor *mon, const QDict *qdict, QObject **ret)
3344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * fdname = NULL;
3352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &fdname, "fdname", errp);
3356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_closefd(fdname, errp);
3362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &fdname, "fdname", NULL);
3367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_machines(MachineInfoList * ret_in, QObject **ret_out, Error **errp)
3378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
3380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
3381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
3384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MachineInfoList(v, &ret_in, "unused", errp);
3385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
3387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
3389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_MachineInfoList(v, &ret_in, "unused", NULL);
3391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_machines(Monitor *mon, const QDict *qdict, QObject **ret)
3395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    MachineInfoList * retval = NULL;
3400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
3401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_machines(errp);
3405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_machines(retval, ret, errp);
3407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_cpu_definitions(CpuDefinitionInfoList * ret_in, QObject **ret_out, Error **errp)
3421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
3423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
3424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
3427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_CpuDefinitionInfoList(v, &ret_in, "unused", errp);
3428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
3430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
3432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_CpuDefinitionInfoList(v, &ret_in, "unused", NULL);
3434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_cpu_definitions(Monitor *mon, const QDict *qdict, QObject **ret)
3438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    CpuDefinitionInfoList * retval = NULL;
3443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
3444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_cpu_definitions(errp);
3448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_cpu_definitions(retval, ret, errp);
3450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_add_fd(AddfdInfo * ret_in, QObject **ret_out, Error **errp)
3464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
3466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
3467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
3470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_AddfdInfo(v, &ret_in, "unused", errp);
3471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
3473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
3475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_AddfdInfo(v, &ret_in, "unused", NULL);
3477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_add_fd(Monitor *mon, const QDict *qdict, QObject **ret)
3481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    AddfdInfo * retval = NULL;
3486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_fdset_id = false;
3490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t fdset_id;
3491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_opaque = false;
3492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * opaque = NULL;
3493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_fdset_id, "fdset-id", errp);
3497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_fdset_id) {
3498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &fdset_id, "fdset-id", errp);
3499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_opaque, "opaque", errp);
3502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_opaque) {
3503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &opaque, "opaque", errp);
3504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_add_fd(has_fdset_id, fdset_id, has_opaque, opaque, errp);
3512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_add_fd(retval, ret, errp);
3514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_fdset_id, "fdset-id", NULL);
3520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_fdset_id) {
3521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &fdset_id, "fdset-id", NULL);
3522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_opaque, "opaque", NULL);
3525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_opaque) {
3526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &opaque, "opaque", NULL);
3527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_remove_fd(Monitor *mon, const QDict *qdict, QObject **ret)
3540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t fdset_id;
3548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_fd = false;
3549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t fd;
3550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &fdset_id, "fdset-id", errp);
3554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_fd, "fd", errp);
3555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_fd) {
3556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &fd, "fd", errp);
3557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_remove_fd(fdset_id, has_fd, fd, errp);
3565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_int(v, &fdset_id, "fdset-id", NULL);
3570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_fd, "fd", NULL);
3571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_fd) {
3572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &fd, "fd", NULL);
3573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_fdsets(FdsetInfoList * ret_in, QObject **ret_out, Error **errp)
3586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
3588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
3589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
3592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_FdsetInfoList(v, &ret_in, "unused", errp);
3593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
3595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
3597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_FdsetInfoList(v, &ret_in, "unused", NULL);
3599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_fdsets(Monitor *mon, const QDict *qdict, QObject **ret)
3603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    FdsetInfoList * retval = NULL;
3608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
3609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_fdsets(errp);
3613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_fdsets(retval, ret, errp);
3615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_target(TargetInfo * ret_in, QObject **ret_out, Error **errp)
3629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
3631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
3632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
3635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TargetInfo(v, &ret_in, "unused", errp);
3636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
3638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
3640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TargetInfo(v, &ret_in, "unused", NULL);
3642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_target(Monitor *mon, const QDict *qdict, QObject **ret)
3646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    TargetInfo * retval = NULL;
3651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
3652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_target(errp);
3656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_target(retval, ret, errp);
3658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_send_key(Monitor *mon, const QDict *qdict, QObject **ret)
3672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    KeyValueList * keys = NULL;
3680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_hold_time = false;
3681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    int64_t hold_time;
3682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_KeyValueList(v, &keys, "keys", errp);
3686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_hold_time, "hold-time", errp);
3687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_hold_time) {
3688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &hold_time, "hold-time", errp);
3689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_send_key(keys, has_hold_time, hold_time, errp);
3697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_KeyValueList(v, &keys, "keys", NULL);
3702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_hold_time, "hold-time", NULL);
3703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_hold_time) {
3704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_int(v, &hold_time, "hold-time", NULL);
3705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_screendump(Monitor *mon, const QDict *qdict, QObject **ret)
3718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * filename = NULL;
3726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &filename, "filename", errp);
3730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_screendump(filename, errp);
3736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &filename, "filename", NULL);
3741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_nbd_server_start(Monitor *mon, const QDict *qdict, QObject **ret)
3752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    SocketAddress * addr = NULL;
3760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_SocketAddress(v, &addr, "addr", errp);
3764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_nbd_server_start(addr, errp);
3770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_SocketAddress(v, &addr, "addr", NULL);
3775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_nbd_server_add(Monitor *mon, const QDict *qdict, QObject **ret)
3786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * device = NULL;
3794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_writable = false;
3795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool writable;
3796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", errp);
3800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_writable, "writable", errp);
3801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_writable) {
3802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &writable, "writable", errp);
3803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
3805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_nbd_server_add(device, has_writable, writable, errp);
3811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &device, "device", NULL);
3816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_writable, "writable", NULL);
3817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_writable) {
3818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_bool(v, &writable, "writable", NULL);
3819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
3821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_nbd_server_stop(Monitor *mon, const QDict *qdict, QObject **ret)
3832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
3837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_nbd_server_stop(errp);
3841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_chardev_add(ChardevReturn * ret_in, QObject **ret_out, Error **errp)
3854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
3856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
3857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
3860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ChardevReturn(v, &ret_in, "unused", errp);
3861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
3863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
3865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ChardevReturn(v, &ret_in, "unused", NULL);
3867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_chardev_add(Monitor *mon, const QDict *qdict, QObject **ret)
3871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    ChardevReturn * retval = NULL;
3876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * id = NULL;
3880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    ChardevBackend * backend = NULL;
3881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &id, "id", errp);
3885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ChardevBackend(v, &backend, "backend", errp);
3886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_chardev_add(id, backend, errp);
3892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_chardev_add(retval, ret, errp);
3894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &id, "id", NULL);
3900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_ChardevBackend(v, &backend, "backend", NULL);
3901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_chardev_remove(Monitor *mon, const QDict *qdict, QObject **ret)
3912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
3917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
3918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * id = NULL;
3920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
3922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
3923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &id, "id", errp);
3924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
3925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_chardev_remove(id, errp);
3930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
3933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_str(v, &id, "id", NULL);
3935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_tpm_models(TpmModelList * ret_in, QObject **ret_out, Error **errp)
3946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
3948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
3949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
3952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TpmModelList(v, &ret_in, "unused", errp);
3953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
3955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
3957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
3958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TpmModelList(v, &ret_in, "unused", NULL);
3959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
3960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_tpm_models(Monitor *mon, const QDict *qdict, QObject **ret)
3963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
3965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
3966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
3967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    TpmModelList * retval = NULL;
3968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
3969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
3970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
3971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_tpm_models(errp);
3973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_tpm_models(retval, ret, errp);
3975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
3978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
3981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
3982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
3983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
3984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
3986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
3987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_tpm_types(TpmTypeList * ret_in, QObject **ret_out, Error **errp)
3989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
3990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
3991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
3992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
3993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
3995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TpmTypeList(v, &ret_in, "unused", errp);
3996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
3997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
3998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
3999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
4000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
4001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TpmTypeList(v, &ret_in, "unused", NULL);
4002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
4003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_tpm_types(Monitor *mon, const QDict *qdict, QObject **ret)
4006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
4007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
4008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
4009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
4010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    TpmTypeList * retval = NULL;
4011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
4012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
4013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
4014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_tpm_types(errp);
4016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
4017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_tpm_types(retval, ret, errp);
4018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
4021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
4024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
4025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
4026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
4027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
4029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_tpm(TPMInfoList * ret_in, QObject **ret_out, Error **errp)
4032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
4033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
4034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
4035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
4036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
4038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TPMInfoList(v, &ret_in, "unused", errp);
4039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
4040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
4041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
4043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
4044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_TPMInfoList(v, &ret_in, "unused", NULL);
4045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
4046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_tpm(Monitor *mon, const QDict *qdict, QObject **ret)
4049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
4050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
4051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
4052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
4053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    TPMInfoList * retval = NULL;
4054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    (void)args;
4055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
4056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
4057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_tpm(errp);
4059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
4060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_tpm(retval, ret, errp);
4061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
4064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
4067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
4068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
4069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
4070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
4072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_command_line_options(CommandLineOptionInfoList * ret_in, QObject **ret_out, Error **errp)
4075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
4076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
4077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
4078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
4079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
4081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_CommandLineOptionInfoList(v, &ret_in, "unused", errp);
4082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
4083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
4084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
4086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
4087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_CommandLineOptionInfoList(v, &ret_in, "unused", NULL);
4088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
4089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_command_line_options(Monitor *mon, const QDict *qdict, QObject **ret)
4092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
4093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
4094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
4095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
4096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    CommandLineOptionInfoList * retval = NULL;
4097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
4098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
4099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
4100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_option = false;
4101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * option = NULL;
4102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
4104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
4105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_option, "option", errp);
4106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_option) {
4107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &option, "option", errp);
4108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
4110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
4111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
4113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
4114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_command_line_options(has_option, option, errp);
4116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
4117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_command_line_options(retval, ret, errp);
4118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
4121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
4122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
4123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_option, "option", NULL);
4124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_option) {
4125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &option, "option", NULL);
4126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
4128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
4129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
4131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
4132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
4133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
4134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
4136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerstatic void qmp_marshal_output_query_rx_filter(RxFilterInfoList * ret_in, QObject **ret_out, Error **errp)
4139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
4140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md = qapi_dealloc_visitor_new();
4141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpOutputVisitor *mo = qmp_output_visitor_new();
4142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
4143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_output_get_visitor(mo);
4145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_RxFilterInfoList(v, &ret_in, "unused", errp);
4146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
4147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        *ret_out = qmp_output_get_qobject(mo);
4148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_output_visitor_cleanup(mo);
4150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
4151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_RxFilterInfoList(v, &ret_in, "unused", NULL);
4152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
4153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_query_rx_filter(Monitor *mon, const QDict *qdict, QObject **ret)
4156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
4157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
4158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
4159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
4160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    RxFilterInfoList * retval = NULL;
4161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
4162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
4163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
4164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    bool has_name = false;
4165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    char * name = NULL;
4166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
4168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
4169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_name, "name", errp);
4170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_name) {
4171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &name, "name", errp);
4172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, errp);
4174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
4175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
4177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
4178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    retval = qmp_query_rx_filter(has_name, name, errp);
4180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (!error_is_set(errp)) {
4181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qmp_marshal_output_query_rx_filter(retval, ret, errp);
4182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
4185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
4186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
4187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_start_optional(v, &has_name, "name", NULL);
4188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (has_name) {
4189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        visit_type_str(v, &name, "name", NULL);
4190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_end_optional(v, NULL);
4192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
4193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
4195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
4196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
4197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
4198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
4200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerint qmp_marshal_input_blockdev_add(Monitor *mon, const QDict *qdict, QObject **ret)
4203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{
4204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error *local_err = NULL;
4205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Error **errp = &local_err;
4206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QDict *args = (QDict *)qdict;
4207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QmpInputVisitor *mi;
4208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    QapiDeallocVisitor *md;
4209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    Visitor *v;
4210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    BlockdevOptions * options = NULL;
4211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    mi = qmp_input_visitor_new_strict(QOBJECT(args));
4213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qmp_input_get_visitor(mi);
4214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BlockdevOptions(v, &options, "options", errp);
4215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_input_visitor_cleanup(mi);
4216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (error_is_set(errp)) {
4218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        goto out;
4219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qmp_blockdev_add(options, errp);
4221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turnerout:
4223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    md = qapi_dealloc_visitor_new();
4224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    v = qapi_dealloc_get_visitor(md);
4225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    visit_type_BlockdevOptions(v, &options, "options", NULL);
4226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    qapi_dealloc_visitor_cleanup(md);
4227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    if (local_err) {
4229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        qerror_report_err(local_err);
4230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        error_free(local_err);
4231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner        return -1;
4232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    }
4233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    return 0;
4234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner}
4235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4236