hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
[qemu/ar7.git] / tests / test-qapi-event.c
blobbdeb9095d4e615393b2685862291840d1fc3be35
1 /* AUTOMATICALLY GENERATED, DO NOT MODIFY */
3 /*
4 * schema-defined QAPI event functions
6 * Copyright (c) 2014 Wenchao Xia
8 * Authors:
9 * Wenchao Xia <wenchaoqemu@gmail.com>
11 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
12 * See the COPYING.LIB file in the top-level directory.
16 #include "qemu/osdep.h"
17 #include "qemu-common.h"
18 #include "test-qapi-event.h"
19 #include "test-qapi-visit.h"
20 #include "qapi/qmp-output-visitor.h"
21 #include "qapi/qmp-event.h"
24 void qapi_event_send_event_a(Error **errp)
26 QDict *qmp;
27 Error *err = NULL;
28 QMPEventFuncEmit emit;
30 emit = qmp_event_get_func_emit();
31 if (!emit) {
32 return;
35 qmp = qmp_event_build_dict("EVENT_A");
37 emit(TEST_QAPI_EVENT_EVENT_A, qmp, &err);
39 error_propagate(errp, err);
40 QDECREF(qmp);
43 void qapi_event_send_event_b(Error **errp)
45 QDict *qmp;
46 Error *err = NULL;
47 QMPEventFuncEmit emit;
49 emit = qmp_event_get_func_emit();
50 if (!emit) {
51 return;
54 qmp = qmp_event_build_dict("EVENT_B");
56 emit(TEST_QAPI_EVENT_EVENT_B, qmp, &err);
58 error_propagate(errp, err);
59 QDECREF(qmp);
62 void qapi_event_send_event_c(bool has_a, int64_t a, bool has_b, UserDefOne *b, const char *c, Error **errp)
64 QDict *qmp;
65 Error *err = NULL;
66 QMPEventFuncEmit emit;
67 QmpOutputVisitor *qov;
68 Visitor *v;
69 q_obj_EVENT_C_arg param = {
70 has_a, a, has_b, b, (char *)c
73 emit = qmp_event_get_func_emit();
74 if (!emit) {
75 return;
78 qmp = qmp_event_build_dict("EVENT_C");
80 qov = qmp_output_visitor_new();
81 v = qmp_output_get_visitor(qov);
83 visit_start_struct(v, "EVENT_C", NULL, 0, &err);
84 if (err) {
85 goto out;
87 visit_type_q_obj_EVENT_C_arg_members(v, &param, &err);
88 if (!err) {
89 visit_check_struct(v, &err);
91 visit_end_struct(v);
92 if (err) {
93 goto out;
96 qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
97 emit(TEST_QAPI_EVENT_EVENT_C, qmp, &err);
99 out:
100 qmp_output_visitor_cleanup(qov);
101 error_propagate(errp, err);
102 QDECREF(qmp);
105 void qapi_event_send_event_d(EventStructOne *a, const char *b, bool has_c, const char *c, bool has_enum3, EnumOne enum3, Error **errp)
107 QDict *qmp;
108 Error *err = NULL;
109 QMPEventFuncEmit emit;
110 QmpOutputVisitor *qov;
111 Visitor *v;
112 q_obj_EVENT_D_arg param = {
113 a, (char *)b, has_c, (char *)c, has_enum3, enum3
116 emit = qmp_event_get_func_emit();
117 if (!emit) {
118 return;
121 qmp = qmp_event_build_dict("EVENT_D");
123 qov = qmp_output_visitor_new();
124 v = qmp_output_get_visitor(qov);
126 visit_start_struct(v, "EVENT_D", NULL, 0, &err);
127 if (err) {
128 goto out;
130 visit_type_q_obj_EVENT_D_arg_members(v, &param, &err);
131 if (!err) {
132 visit_check_struct(v, &err);
134 visit_end_struct(v);
135 if (err) {
136 goto out;
139 qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
140 emit(TEST_QAPI_EVENT_EVENT_D, qmp, &err);
142 out:
143 qmp_output_visitor_cleanup(qov);
144 error_propagate(errp, err);
145 QDECREF(qmp);
148 void qapi_event_send___org_qemu_x_event(__org_qemu_x_Enum __org_qemu_x_member1, const char *__org_qemu_x_member2, bool has_q_wchar_t, int64_t q_wchar_t, Error **errp)
150 QDict *qmp;
151 Error *err = NULL;
152 QMPEventFuncEmit emit;
153 QmpOutputVisitor *qov;
154 Visitor *v;
155 __org_qemu_x_Struct param = {
156 __org_qemu_x_member1, (char *)__org_qemu_x_member2, has_q_wchar_t, q_wchar_t
159 emit = qmp_event_get_func_emit();
160 if (!emit) {
161 return;
164 qmp = qmp_event_build_dict("__ORG.QEMU_X-EVENT");
166 qov = qmp_output_visitor_new();
167 v = qmp_output_get_visitor(qov);
169 visit_start_struct(v, "__ORG.QEMU_X-EVENT", NULL, 0, &err);
170 if (err) {
171 goto out;
173 visit_type___org_qemu_x_Struct_members(v, &param, &err);
174 if (!err) {
175 visit_check_struct(v, &err);
177 visit_end_struct(v);
178 if (err) {
179 goto out;
182 qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov));
183 emit(TEST_QAPI_EVENT___ORG_QEMU_X_EVENT, qmp, &err);
185 out:
186 qmp_output_visitor_cleanup(qov);
187 error_propagate(errp, err);
188 QDECREF(qmp);
191 const char *const test_QAPIEvent_lookup[] = {
192 [TEST_QAPI_EVENT_EVENT_A] = "EVENT_A",
193 [TEST_QAPI_EVENT_EVENT_B] = "EVENT_B",
194 [TEST_QAPI_EVENT_EVENT_C] = "EVENT_C",
195 [TEST_QAPI_EVENT_EVENT_D] = "EVENT_D",
196 [TEST_QAPI_EVENT___ORG_QEMU_X_EVENT] = "__ORG.QEMU_X-EVENT",
197 [TEST_QAPI_EVENT__MAX] = NULL,