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