unicorn/qemu
Markus Armbruster 1fb1d31a1f
qapi/types qapi/visit: Generate built-in stuff into separate files
Linking code from multiple separate QAPI schemata into the same
program is possible, but involves some weirdness around built-in
types:

* We generate code for built-in types into .c only with option
--builtins. The user is responsible for generating code for exactly
one QAPI schema per program with --builtins.

* We generate code for built-in types into .h regardless of
--builtins, but guarded by #ifndef QAPI_VISIT_BUILTIN. Because all
copies of this code are exactly the same, including any combination
of these headers works.

Replace this contraption by something more conventional: generate code
for built-in types into their very own files: qapi-builtin-types.c,
qapi-builtin-visit.c, qapi-builtin-types.h, qapi-builtin-visit.h, but
only with --builtins. Obey --output-dir, but ignore --prefix for
them.

Make qapi-types.h include qapi-builtin-types.h. With multiple
schemata you now have multiple qapi-types.[ch], but only one
qapi-builtin-types.[ch]. Same for qapi-visit.[ch] and
qapi-builtin-visit.[ch].

Bonus: if all you need is built-in stuff, you can include a much
smaller header. To be exploited shortly.

Backports commit cdb6610ae4283720037bae2af1f78bd40eb5fe71 from qemu
2018-03-09 09:25:59 -05:00
..
accel tcg: Merge opcode arguments into TCGOp 2018-03-05 04:45:20 -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: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
hw Include qapi/error.h exactly where needed 2018-03-07 12:26:38 -05:00
include softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
qapi Include qapi/qmp/qlist.h exactly where needed 2018-03-08 08:50:06 -05:00
qobject Include qapi/qmp/qlist.h exactly where needed 2018-03-08 08:50:06 -05:00
qom Include qapi/qmp/qobject.h exactly where needed 2018-03-08 08:48:27 -05:00
scripts qapi/types qapi/visit: Generate built-in stuff into separate files 2018-03-09 09:25:59 -05:00
target sparc: fix leon3 casa instruction when MMU is disabled 2018-03-09 01:39:53 -05:00
tcg tcg/aarch64: Add vector operations 2018-03-07 08:07:58 -05:00
util oslib-posix: check for posix_memalign in configure script 2018-03-08 08:56:35 -05:00
aarch64.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
aarch64eb.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
accel.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
arm.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
armeb.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
atomic_template.h tcg: Record code_gen_buffer address for user-only memory helpers 2018-03-05 13:48:27 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure build-sys: check static linking of UBSAN 2018-03-08 09:00:31 -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 tcg: Add EXCP_ATOMIC 2018-02-27 11:57:58 -05:00
cpu-exec.c exec-all: extract tb->tc_* into a separate struct tc_tb 2018-03-05 02:57:22 -05:00
cpus.c Include qapi/error.h exactly where needed 2018-03-07 12:26:38 -05:00
cputlb.c accel/tcg: add size paremeter in tlb_fill() 2018-03-06 10:56:34 -05:00
exec.c cpu: suffix cpu address spaces with cpu index 2018-03-05 14:41:25 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c qapi: Improve qobject input visitor error reporting 2018-03-02 12:05:53 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
Makefile qapi/types qapi/visit: Generate built-in stuff into separate files 2018-03-09 09:25:59 -05:00
Makefile.objs qapi/types qapi/visit: Generate built-in stuff into separate files 2018-03-09 09:25:59 -05:00
Makefile.target qapi-gen: New common driver for code and doc generators 2018-03-09 08:47:12 -05:00
memory.c memory: remove memory_region_test_and_clear_dirty 2018-03-08 09:02:06 -05:00
memory_ldst.inc.c exec: introduce memory_ldst.inc.c 2018-03-01 09:59:34 -05:00
memory_mapping.c include/qemu/osdep.h: Don't include qapi/error.h 2018-02-21 23:08:18 -05:00
mips.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
mips64.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
mips64el.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
mipsel.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
powerpc.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
qapi-schema.json qapi: Update scripts to commit 01b2ffcedd94ad7b42bc870e4c6936c87ad03429 2018-03-03 18:32:12 -05:00
qemu-timer.c timer/cpus: fix some typos and update some comments 2018-02-25 23:21:57 -05:00
rules.mak build-sys: silence make by default or V=0 2018-03-06 08:58:03 -05:00
softmmu_template.h accel/tcg: add size paremeter in tlb_fill() 2018-03-06 10:56:34 -05:00
sparc.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
sparc64.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00
tcg-runtime-gvec.c tcg: Add generic vector helpers with a scalar operand 2018-03-06 16:10:09 -05:00
tcg-runtime.c exec-all: extract tb->tc_* into a separate struct tc_tb 2018-03-05 02:57:22 -05:00
translate-all.c translate-all: Zero out the TCGContext instance 2018-03-05 15:40:51 -05:00
translate-all.h translate-all.c: Compute L1 page table properties at runtime 2018-02-26 11:46:58 -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 Include qapi/error.h exactly where needed 2018-03-07 12:26:38 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h softfloat: use floatx80_infinity in softfloat 2018-03-09 01:34:45 -05:00