unicorn/qemu
Marc-André Lureau f4b3c5d0bd
qobject: use a QObjectBase_ struct
By moving the base fields to a QObjectBase_, QObject can be a type
which also has a 'base' field. This allows writing a generic QOBJECT()
macro that will work with any QObject type, including QObject
itself. The container_of() macro ensures that the object to cast has a
QObjectBase_ base field, giving some type safety guarantees. QObject
must have no members but QObjectBase_ base, or else QOBJECT() breaks.

QObjectBase_ is not a typedef and uses a trailing underscore to make
it obvious it is not for normal use and to avoid potential abuse.

Backports commit 3d3eacaeccaab718ea0e2ddaa578bfae9e311c59 from qemu
2018-05-04 10:11:24 -04:00
..
accel icount: fix cpu_restore_state_from_tb for non-tb-exit cases 2018-04-11 20:05:40 -04:00
crypto
default-configs
docs
fpu fpu: Bound increment for scalbn 2018-04-18 09:21:03 -04:00
hw Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-20 14:20:30 -04:00
include qobject: use a QObjectBase_ struct 2018-05-04 10:11:24 -04:00
qapi qapi: Make more of qobject_to() 2018-03-20 11:05:44 -04:00
qobject qobject: use a QObjectBase_ struct 2018-05-04 10:11:24 -04:00
qom object: Add assert to ensure uc is not null 2018-03-21 12:47:44 -04:00
scripts qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
target m68k: remove dead code (Coverity CID1390617) 2018-05-01 11:44:18 -04:00
tcg tcg: workaround branch instruction overflow in tcg_out_qemu_ld/st 2018-05-03 15:09:07 -04:00
util qemu-thread-win32: Prevent null pointer dereference in win32_start_routine 2018-03-21 12:42:44 -04:00
aarch64.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
aarch64eb.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
accel.c
arm.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
armeb.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
CODING_STYLE
configure tcg: fix 16-byte vector operations detection 2018-04-07 23:03:11 -04:00
COPYING
COPYING.LIB
cpus.c
exec.c cpu: Convert cpu_index into a bitmap 2018-03-21 08:06:07 -04:00
gen_all_header.sh
glib_compat.c Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-20 14:20:30 -04:00
HACKING
header_gen.py tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
ioport.c
LICENSE
m68k.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -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_ldst.inc.c exec: Drop unnecessary code for unicorn 2018-03-12 10:11:46 -04:00
memory_mapping.c
memory.c memory: Protect against use-after-free 2018-03-21 09:40:33 -04:00
mips64.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
mips64el.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
mips.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
mipsel.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
powerpc.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
qemu-timer.c
rules.mak
sparc64.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
sparc.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00
unicorn_common.h cpu: Convert cpu_index into a bitmap 2018-03-21 08:06:07 -04:00
VERSION
vl.c Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-20 14:20:30 -04:00
vl.h
x86_64.h tcg: Improve TCGv_ptr support 2018-05-03 15:05:43 -04:00