diff options
author | Greg Kurz <groug@kaod.org> | 2020-08-14 09:24:50 +0200 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2021-02-08 16:57:37 +1100 |
commit | a8dc82ce828579b92cf602cdc307a6c5b144069c (patch) | |
tree | cddc03e80de4a48c17c9b87419e55628265fcd6f /qom | |
parent | 5b19cb63d9dfda41b412373b8c9fe14641bcab60 (diff) | |
download | qemu-a8dc82ce828579b92cf602cdc307a6c5b144069c.zip qemu-a8dc82ce828579b92cf602cdc307a6c5b144069c.tar.gz qemu-a8dc82ce828579b92cf602cdc307a6c5b144069c.tar.bz2 |
qom: Allow optional sugar props
Global properties have an @optional field, which allows to apply a given
property to a given type even if one of its subclasses doesn't support
it. This is especially used in the compat code when dealing with the
"disable-modern" and "disable-legacy" properties and the "virtio-pci"
type.
Allow object_register_sugar_prop() to set this field as well.
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <159738953558.377274.16617742952571083440.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Diffstat (limited to 'qom')
-rw-r--r-- | qom/object.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/qom/object.c b/qom/object.c index 2fa0119..491823d 100644 --- a/qom/object.c +++ b/qom/object.c @@ -442,7 +442,8 @@ static GPtrArray *object_compat_props[3]; * other than "-global". These are generally used for syntactic * sugar and legacy command line options. */ -void object_register_sugar_prop(const char *driver, const char *prop, const char *value) +void object_register_sugar_prop(const char *driver, const char *prop, + const char *value, bool optional) { GlobalProperty *g; if (!object_compat_props[2]) { @@ -452,6 +453,7 @@ void object_register_sugar_prop(const char *driver, const char *prop, const char g->driver = g_strdup(driver); g->property = g_strdup(prop); g->value = g_strdup(value); + g->optional = optional; g_ptr_array_add(object_compat_props[2], g); } |