unicorn/qemu
Markus Armbruster abfa5da7da
qapi-event: Convert to QAPISchemaVisitor, fixing data with base
Fixes events whose data is struct with base to include the struct's
base members. Test case is qapi-schema-test.json's event
__org.qemu_x-command:

{ 'event': '__ORG.QEMU_X-EVENT', 'data': '__org.qemu_x-Struct' }

{ 'struct': '__org.qemu_x-Struct', 'base': '__org.qemu_x-Base',
'data': { '__org.qemu_x-member2': 'str' } }

{ 'struct': '__org.qemu_x-Base',
'data': { '__org.qemu_x-member1': '__org.qemu_x-Enum' } }

Patch's effect on generated qapi_event_send___org_qemu_x_event():

-void qapi_event_send___org_qemu_x_event(const char *__org_qemu_x_member2,
+void qapi_event_send___org_qemu_x_event(__org_qemu_x_Enum __org_qemu_x_member1,
+ const char *__org_qemu_x_member2,
Error **errp)
{
QDict *qmp;
@@ -224,6 +225,10 @@ void qapi_event_send___org_qemu_x_event(
goto clean;
}

+ visit_type___org_qemu_x_Enum(v, &__org_qemu_x_member1, "__org.qemu_x-member1", &local_err);
+ if (local_err) {
+ goto clean;
+ }
visit_type_str(v, (char **)&__org_qemu_x_member2, "__org.qemu_x-member2", &local_err);
if (local_err) {
goto clean;

Code is generated in a different order now, but that doesn't matter.

Backports commit 05f43a960877cf941635324b2d0a74c0d0f7128e from qemu
2018-02-19 17:16:31 -05:00
..
crypto crypto: Clean up includes 2018-02-19 00:47:40 -05:00
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu all: Clean up includes 2018-02-19 01:34:28 -05:00
hw x86: Clean up includes 2018-02-19 01:00:09 -05:00
include qom: Make enum string tables const-correct 2018-02-19 16:02:23 -05:00
qapi qom: Make enum string tables const-correct 2018-02-19 16:02:23 -05:00
qobject qobject: Clean up includes 2018-02-19 01:30:42 -05:00
qom qom: Clean up includes 2018-02-19 01:31:35 -05:00
scripts qapi-event: Convert to QAPISchemaVisitor, fixing data with base 2018-02-19 17:16:31 -05:00
target-arm tcg: Remove lingering references to gen_opc_buf 2018-02-19 01:42:55 -05:00
target-i386 tcg: Remove lingering references to gen_opc_buf 2018-02-19 01:42:55 -05:00
target-m68k m68k: Clean up includes 2018-02-19 01:06:05 -05:00
target-mips mips: Clean up includes 2018-02-19 00:45:08 -05:00
target-sparc sparc: Clean up includes 2018-02-19 00:52:41 -05:00
tcg tcg: Introduce temp_load 2018-02-19 11:44:01 -05:00
util util: Clean up includes 2018-02-19 01:27:55 -05:00
aarch64.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
aarch64eb.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
accel.c all: Clean up includes 2018-02-19 01:34:28 -05:00
arm.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
armeb.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Drop ia64 host support 2018-02-04 18:33:02 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec-common.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
cpu-exec.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
cpus.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
cputlb.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
exec.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c crypto: introduce new module for computing hash digests 2018-02-17 15:23:17 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
ioport.c all: Clean up includes 2018-02-19 01:34:28 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
Makefile qapi: Turn generators' mandatory option -i into an argument 2018-02-19 15:22:27 -05:00
Makefile.objs crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.target tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
memory.c memory: Silence unused variable warning 2018-02-18 17:52:03 -05:00
memory_mapping.c all: Clean up includes 2018-02-19 01:34:28 -05:00
mips.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
mips64.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
mips64el.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
mipsel.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
powerpc.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
qapi-schema.json qapi: Use 'struct' instead of 'type' in schema 2018-02-19 14:22:13 -05:00
qemu-log.c all: Clean up includes 2018-02-19 01:34:28 -05:00
qemu-timer.c all: Clean up includes 2018-02-19 01:34:28 -05:00
rules.mak import 2015-08-21 15:04:50 +08:00
softmmu_template.h exec.c: Pass MemTxAttrs to iotlb_to_region so it uses the right AS 2018-02-17 23:19:00 -05:00
sparc.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
sparc64.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00
tcg-runtime.c all: Clean up includes 2018-02-19 01:34:28 -05:00
translate-all.c all: Clean up includes 2018-02-19 01:34:28 -05:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2018-02-13 09:04:51 -05:00
translate-common.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
unicorn_common.h qom/cpu: Add MemoryRegion property 2018-02-18 21:54:50 -05:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c vl.c: Remove periods and exclamation points from error messages 2018-02-17 15:24:14 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h target-arm: Implement cpu_get_phys_page_attrs_debug 2018-02-18 22:15:50 -05:00