unicorn/qemu
Lioncash 8728fea067
qapi-visit: Expose visit_type_FOO_members()
Dan Berrange reported a case where he needs to work with a
QCryptoBlockOptions union type using the OptsVisitor, but only
visit one of the branches of that type (the discriminator is not
visited directly, but learned externally). When things were
boxed, it was easy: just visit the variant directly, which took
care of both allocating the variant and visiting its members, then
store that pointer in the union type. But now that things are
unboxed, we need a way to visit the members without allocation,
done by exposing visit_type_FOO_members() to the user.

Before the patch, we had quite a bit of code associated with
object_members_seen to make sure that a declaration of the helper
was in scope before any use of the function. But now that the
helper is public and declared in the header, the .c file no
longer needs to worry about topological sorting (the helper is
always in scope), which leads to some nice cleanups.

Backports commit 4d91e9115cc6700113e772b19d1f39bbcf345977 from qemu
2018-02-21 22:26:38 -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 softfloat: Remove lingering fast casts 2018-02-20 19:04:22 -05:00
hw qom: Allow properties to be registered against classes 2018-02-21 21:00:56 -05:00
include qapi: Drop QERR_UNKNOWN_BLOCK_FORMAT_FEATURE 2018-02-21 21:55:15 -05:00
qapi qapi: Don't box branches of flat unions 2018-02-20 16:44:55 -05:00
qobject qapi: Convert QType into QAPI built-in enum type 2018-02-19 21:47:05 -05:00
qom qom: Change object property iterator API contract 2018-02-21 21:03:58 -05:00
scripts qapi-visit: Expose visit_type_FOO_members() 2018-02-21 22:26:38 -05:00
target-arm target-arm: Fix translation level on early translation faults 2018-02-21 21:53:15 -05:00
target-i386 target-i386: Dump unknown opcodes with -d unimp 2018-02-21 21:37:16 -05:00
target-m68k tcg: Make store_dummy a TCGv 2018-02-21 00:24:40 -05:00
target-mips tcg: Make cpu_gpr a TCGv array 2018-02-21 01:02:46 -05:00
target-sparc tcg: Make cpu_regs_sparc a TCGv array 2018-02-21 01:50:28 -05:00
tcg tcg: Make cpu_regs_sparc a TCGv array 2018-02-21 01:50:28 -05:00
util error: ensure errno detail is printed with error_abort 2018-02-21 21:40:24 -05:00
aarch64.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
aarch64eb.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
accel.c all: Clean up includes 2018-02-19 01:34:28 -05:00
arm.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
armeb.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -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 memory: Drop MemoryRegion.ram_addr 2018-02-21 08:53:08 -05:00
exec.c exec: fix early return from ram_block_add 2018-02-21 21:37:58 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c glib_compat: backport hashtable iterator interfaces 2018-02-21 13:18:44 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -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 MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -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 qom: Allow properties to be registered against classes 2018-02-21 21:00:56 -05:00
memory_mapping.c all: Clean up includes 2018-02-19 01:34:28 -05:00
mips.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
mips64.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
mips64el.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
mipsel.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
powerpc.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
qapi-schema.json qapi: Lazy creation of array types 2018-02-19 18:55:35 -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 MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
sparc64.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -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 MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00