unicorn/qemu
Max Reitz dbdba16732
qapi: Add qobject_to()
This is a dynamic casting macro that, given a QObject type, returns an
object as that type or NULL if the object is of a different type (or
NULL itself).

The macro uses lower-case letters because:
1. There does not seem to be a hard rule on whether qemu macros have to
be upper-cased,
2. The current situation in qapi/qmp is inconsistent (compare e.g.
QINCREF() vs. qdict_put()),
3. qobject_to() will evaluate its @obj parameter only once, thus it is
generally not important to the caller whether it is a macro or not,
4. I prefer it aesthetically.

The macro parameter order is chosen with typename first for
consistency with other QAPI macros like QAPI_CLONE(), as well as
for legibility (read it as "qobject to" type "applied to" obj).

Backports commit 1a56b1e2ab5e9d6d89386ca953b4afb419e15abe from qemu
2018-03-20 10:45:59 -04:00
..
accel cpu-exec: fix exception_index handling 2018-03-17 19:33:05 -04:00
crypto
default-configs
docs
fpu softfloat: fix crash on int conversion of SNaN 2018-03-09 11:40:17 -05:00
hw cpu: Generify CPU init functions 2018-03-20 08:21:51 -04:00
include qapi: Add qobject_to() 2018-03-20 10:45:59 -04:00
qapi qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
qobject qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
qom qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
scripts qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
target m68k: cleanup cpu type name composition 2018-03-20 08:40:05 -04:00
tcg tcg/i386: Perform comparison pass against qemu 2018-03-20 06:29:06 -04:00
util membarrier: add --enable-membarrier 2018-03-17 19:30:43 -04:00
aarch64.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
aarch64eb.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
accel.c
arm.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
armeb.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
CODING_STYLE
configure use _Static_assert in QEMU_BUILD_BUG_ON 2018-03-20 10:42:20 -04:00
COPYING
COPYING.LIB
cpus.c
exec.c exec: Drop unnecessary code for unicorn 2018-03-12 10:11:46 -04:00
gen_all_header.sh
glib_compat.c memory: Share FlatView's and dispatch trees between address spaces 2018-03-11 22:05:44 -04:00
HACKING
header_gen.py qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
ioport.c
LICENSE
m68k.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
Makefile qapi: Don't create useless directory qapi-generated 2018-03-09 11:36:49 -05:00
Makefile.objs qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
Makefile.target tcg: move tcg backend files into accel/tcg/ 2018-03-13 11:48:15 -04:00
memory.c memory: Share special empty FlatView 2018-03-11 22:34:28 -04:00
memory_ldst.inc.c exec: Drop unnecessary code for unicorn 2018-03-12 10:11:46 -04:00
memory_mapping.c
mips.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
mips64.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
mips64el.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
mipsel.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
powerpc.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
qemu-timer.c
rules.mak
sparc.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
sparc64.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00
unicorn_common.h memory: Share special empty FlatView 2018-03-11 22:34:28 -04:00
VERSION
vl.c machine: Eliminate QEMUMachine and qemu_register_machine() 2018-03-11 15:22:25 -04:00
vl.h
x86_64.h qlit: add qobject_from_qlit() 2018-03-20 10:30:41 -04:00