1 | /* AUTOMATICALLY GENERATED, DO NOT MODIFY */ |
2 | |
3 | /* |
4 | * Schema-defined QAPI visitors |
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/error.h" |
15 | #include "qapi/qmp/qerror.h" |
16 | #include "qapi-visit-dump.h" |
17 | |
18 | void visit_type_DumpGuestMemoryFormat(Visitor *v, const char *name, DumpGuestMemoryFormat *obj, Error **errp) |
19 | { |
20 | int value = *obj; |
21 | visit_type_enum(v, name, &value, &DumpGuestMemoryFormat_lookup, errp); |
22 | *obj = value; |
23 | } |
24 | |
25 | void visit_type_q_obj_dump_guest_memory_arg_members(Visitor *v, q_obj_dump_guest_memory_arg *obj, Error **errp) |
26 | { |
27 | Error *err = NULL; |
28 | |
29 | visit_type_bool(v, "paging" , &obj->paging, &err); |
30 | if (err) { |
31 | goto out; |
32 | } |
33 | visit_type_str(v, "protocol" , &obj->protocol, &err); |
34 | if (err) { |
35 | goto out; |
36 | } |
37 | if (visit_optional(v, "detach" , &obj->has_detach)) { |
38 | visit_type_bool(v, "detach" , &obj->detach, &err); |
39 | if (err) { |
40 | goto out; |
41 | } |
42 | } |
43 | if (visit_optional(v, "begin" , &obj->has_begin)) { |
44 | visit_type_int(v, "begin" , &obj->begin, &err); |
45 | if (err) { |
46 | goto out; |
47 | } |
48 | } |
49 | if (visit_optional(v, "length" , &obj->has_length)) { |
50 | visit_type_int(v, "length" , &obj->length, &err); |
51 | if (err) { |
52 | goto out; |
53 | } |
54 | } |
55 | if (visit_optional(v, "format" , &obj->has_format)) { |
56 | visit_type_DumpGuestMemoryFormat(v, "format" , &obj->format, &err); |
57 | if (err) { |
58 | goto out; |
59 | } |
60 | } |
61 | |
62 | out: |
63 | error_propagate(errp, err); |
64 | } |
65 | |
66 | void visit_type_DumpStatus(Visitor *v, const char *name, DumpStatus *obj, Error **errp) |
67 | { |
68 | int value = *obj; |
69 | visit_type_enum(v, name, &value, &DumpStatus_lookup, errp); |
70 | *obj = value; |
71 | } |
72 | |
73 | void visit_type_DumpQueryResult_members(Visitor *v, DumpQueryResult *obj, Error **errp) |
74 | { |
75 | Error *err = NULL; |
76 | |
77 | visit_type_DumpStatus(v, "status" , &obj->status, &err); |
78 | if (err) { |
79 | goto out; |
80 | } |
81 | visit_type_int(v, "completed" , &obj->completed, &err); |
82 | if (err) { |
83 | goto out; |
84 | } |
85 | visit_type_int(v, "total" , &obj->total, &err); |
86 | if (err) { |
87 | goto out; |
88 | } |
89 | |
90 | out: |
91 | error_propagate(errp, err); |
92 | } |
93 | |
94 | void visit_type_DumpQueryResult(Visitor *v, const char *name, DumpQueryResult **obj, Error **errp) |
95 | { |
96 | Error *err = NULL; |
97 | |
98 | visit_start_struct(v, name, (void **)obj, sizeof(DumpQueryResult), &err); |
99 | if (err) { |
100 | goto out; |
101 | } |
102 | if (!*obj) { |
103 | goto out_obj; |
104 | } |
105 | visit_type_DumpQueryResult_members(v, *obj, &err); |
106 | if (err) { |
107 | goto out_obj; |
108 | } |
109 | visit_check_struct(v, &err); |
110 | out_obj: |
111 | visit_end_struct(v, (void **)obj); |
112 | if (err && visit_is_input(v)) { |
113 | qapi_free_DumpQueryResult(*obj); |
114 | *obj = NULL; |
115 | } |
116 | out: |
117 | error_propagate(errp, err); |
118 | } |
119 | |
120 | void visit_type_q_obj_DUMP_COMPLETED_arg_members(Visitor *v, q_obj_DUMP_COMPLETED_arg *obj, Error **errp) |
121 | { |
122 | Error *err = NULL; |
123 | |
124 | visit_type_DumpQueryResult(v, "result" , &obj->result, &err); |
125 | if (err) { |
126 | goto out; |
127 | } |
128 | if (visit_optional(v, "error" , &obj->has_error)) { |
129 | visit_type_str(v, "error" , &obj->error, &err); |
130 | if (err) { |
131 | goto out; |
132 | } |
133 | } |
134 | |
135 | out: |
136 | error_propagate(errp, err); |
137 | } |
138 | |
139 | void visit_type_DumpGuestMemoryFormatList(Visitor *v, const char *name, DumpGuestMemoryFormatList **obj, Error **errp) |
140 | { |
141 | Error *err = NULL; |
142 | DumpGuestMemoryFormatList *tail; |
143 | size_t size = sizeof(**obj); |
144 | |
145 | visit_start_list(v, name, (GenericList **)obj, size, &err); |
146 | if (err) { |
147 | goto out; |
148 | } |
149 | |
150 | for (tail = *obj; tail; |
151 | tail = (DumpGuestMemoryFormatList *)visit_next_list(v, (GenericList *)tail, size)) { |
152 | visit_type_DumpGuestMemoryFormat(v, NULL, &tail->value, &err); |
153 | if (err) { |
154 | break; |
155 | } |
156 | } |
157 | |
158 | if (!err) { |
159 | visit_check_list(v, &err); |
160 | } |
161 | visit_end_list(v, (void **)obj); |
162 | if (err && visit_is_input(v)) { |
163 | qapi_free_DumpGuestMemoryFormatList(*obj); |
164 | *obj = NULL; |
165 | } |
166 | out: |
167 | error_propagate(errp, err); |
168 | } |
169 | |
170 | void visit_type_DumpGuestMemoryCapability_members(Visitor *v, DumpGuestMemoryCapability *obj, Error **errp) |
171 | { |
172 | Error *err = NULL; |
173 | |
174 | visit_type_DumpGuestMemoryFormatList(v, "formats" , &obj->formats, &err); |
175 | if (err) { |
176 | goto out; |
177 | } |
178 | |
179 | out: |
180 | error_propagate(errp, err); |
181 | } |
182 | |
183 | void visit_type_DumpGuestMemoryCapability(Visitor *v, const char *name, DumpGuestMemoryCapability **obj, Error **errp) |
184 | { |
185 | Error *err = NULL; |
186 | |
187 | visit_start_struct(v, name, (void **)obj, sizeof(DumpGuestMemoryCapability), &err); |
188 | if (err) { |
189 | goto out; |
190 | } |
191 | if (!*obj) { |
192 | goto out_obj; |
193 | } |
194 | visit_type_DumpGuestMemoryCapability_members(v, *obj, &err); |
195 | if (err) { |
196 | goto out_obj; |
197 | } |
198 | visit_check_struct(v, &err); |
199 | out_obj: |
200 | visit_end_struct(v, (void **)obj); |
201 | if (err && visit_is_input(v)) { |
202 | qapi_free_DumpGuestMemoryCapability(*obj); |
203 | *obj = NULL; |
204 | } |
205 | out: |
206 | error_propagate(errp, err); |
207 | } |
208 | |
209 | /* Dummy declaration to prevent empty .o file */ |
210 | char qapi_dummy_qapi_visit_dump_c; |
211 | |