qemu-patch-raspberry4/include
Peter Maydell 5cc56cc687 qdev: support properties which don't set a default value
In some situations it's useful to have a qdev property which doesn't
automatically set its default value when qdev_property_add_static is
called (for instance when the default value is not constant).

Support this by adding a flag to the Property struct indicating
whether to set the default value.  This replaces the existing test
for whether the PropertyInfo set_default_value function pointer is
NULL, and we set the .set_default field to true for all those cases
of struct Property which use a PropertyInfo with a non-NULL
set_default_value, so behaviour remains the same as before.

This gives us the semantics of:
 * if .set_default is true, then .info->set_default_value must
   be not NULL, and .defval is used as the the default value of
   the property
 * otherwise, the property system does not set any default, and
   the field will retain whatever initial value it was given by
   the device's .instance_init method

We define two new macros DEFINE_PROP_SIGNED_NODEFAULT and
DEFINE_PROP_UNSIGNED_NODEFAULT, to cover the most plausible use cases
of wanting to set an integer property with no default value.

Suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1499788408-10096-3-git-send-email-peter.maydell@linaro.org
2017-07-17 13:36:06 +01:00
..
block block: invoke .bdrv_drain callback in coroutine context and from AioContext 2017-07-17 11:28:15 +08:00
chardev hmp: add hmp analogue for qmp-chardev-change 2017-07-14 11:04:34 +02:00
crypto block: pass option prefix down to crypto layer 2017-07-11 17:44:56 +02:00
disas Fix Thumb-1 BE32 execution and disassembly. 2017-02-07 18:29:59 +00:00
exec memory.h: Add memory_region_init_{ram, rom, rom_device}() handling migration 2017-07-14 17:59:42 +01:00
fpu softfloat: define floatx80_round() 2017-06-29 20:27:39 +02:00
hw qdev: support properties which don't set a default value 2017-07-17 13:36:06 +01:00
io trivial patches for 2017-05-10 2017-05-10 12:31:19 -04:00
libdecnumber Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
migration migration: Create load_setup()/cleanup() methods 2017-07-10 17:52:21 +01:00
monitor block: rip out all traces of password prompting 2017-07-11 17:44:56 +02:00
net slirp: add a fake NC-SI backend 2017-04-25 19:17:25 +08:00
qapi Error reporting patches for 2017-07-13 2017-07-14 09:36:40 +01:00
qemu coroutine-lock: add qemu_co_rwlock_downgrade and qemu_co_rwlock_upgrade 2017-07-17 11:28:15 +08:00
qom cpu: Convert to DEFINE_PROP_LINK 2017-07-14 12:04:43 +02:00
standard-headers linux-headers: update to 4.13-rc0 2017-07-14 12:29:10 +02:00
sysemu Block layer patches 2017-07-13 13:38:57 +01:00
ui gtk: use framebuffer helper functions. 2017-06-21 14:23:16 +02:00
elf.h s390x/arch_dump: also dump guarded storage control block 2017-07-14 12:29:49 +02:00
glib-compat.h qga: Add 'guest-get-users' command 2017-04-26 23:57:45 -05:00
qemu-common.h tcg: make tcg_allowed global 2017-07-04 16:01:16 +02:00
qemu-io.h hmp: Request permissions in qemu-io 2017-02-28 20:47:50 +01:00
trace-tcg.h trace: get rid of generated-events.h/generated-events.c 2016-10-12 09:54:52 +02:00