[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 12/12] [RFC] qom: Lock properties of all TYPE_USER_CREATABLE type
From: |
Eduardo Habkost |
Subject: |
[PATCH 12/12] [RFC] qom: Lock properties of all TYPE_USER_CREATABLE types |
Date: |
Fri, 9 Oct 2020 12:01:22 -0400 |
TYPE_USER_CREATABLE types expose all QOM properties through
`-object` and `object-add`. Lock the properties on
TYPE_USER_CREATABLE so we will never add new writable instance
properties to those types.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org
---
qom/object_interfaces.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index e8e1523960..40123d4b50 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -293,6 +293,16 @@ bool user_creatable_del(const char *id, Error **errp)
return true;
}
+static void user_creatable_class_init(ObjectClass *klass, void *data)
+{
+ /*
+ * User-creatable QOM types expose all writable QOM properties
+ * to the external world through `-object` and `object-add`,
+ * so all writable properties must be registered at class level.
+ */
+ object_class_lock_properties(klass);
+}
+
void user_creatable_cleanup(void)
{
object_unparent(object_get_objects_root());
@@ -304,6 +314,7 @@ static void register_types(void)
.name = TYPE_USER_CREATABLE,
.parent = TYPE_INTERFACE,
.class_size = sizeof(UserCreatableClass),
+ .class_init = user_creatable_class_init,
};
type_register_static(&uc_interface_info);
--
2.26.2
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, (continued)
[PATCH 06/12] can_host: Use class properties, Eduardo Habkost, 2020/10/09
[PATCH 05/12] rng: Use class properties, Eduardo Habkost, 2020/10/09
[PATCH 07/12] colo: Use class properties, Eduardo Habkost, 2020/10/09
[PATCH 09/12] netfilter: Use class properties, Eduardo Habkost, 2020/10/09
[PATCH 10/12] input: Use class properties, Eduardo Habkost, 2020/10/09
[PATCH 08/12] netfilter: Reorder functions, Eduardo Habkost, 2020/10/09
[PATCH 12/12] [RFC] qom: Lock properties of all TYPE_USER_CREATABLE types,
Eduardo Habkost <=
[PATCH 11/12] [RFC] qom: Property lock mechanism, Eduardo Habkost, 2020/10/09