All field property getters and setters must interpret the fourth
argument as Property*. Change the function signature of field
property getters and setters to indicate that.
Signed-off-by: Eduardo Habkost
---
Cc: Stefan Berger
Cc: Stefano Stabellini
Cc: Anthony Perard
Cc: Paul Durrant
Cc: Kevin Wolf
Cc: Max Reitz
Cc: Paolo Bonzini
Cc: "Daniel P. Berrangé"
Cc: Eduardo Habkost
Cc: Richard Henderson
Cc: David Hildenbrand
Cc: Cornelia Huck
Cc: Thomas Huth
Cc: Halil Pasic
Cc: Christian Borntraeger
Cc: Matthew Rosato
Cc: Alex Williamson
Cc: Mark Cave-Ayland
Cc: Artyom Tarasenko
Cc: qemu-de...@nongnu.org
Cc: xen-devel@lists.xenproject.org
Cc: qemu-bl...@nongnu.org
Cc: qemu-s3...@nongnu.org
---
include/qom/field-property-internal.h | 8 +-
include/qom/field-property.h | 26 ---
backends/tpm/tpm_util.c | 11 ++-
hw/block/xen-block.c | 6 +-
hw/core/qdev-properties-system.c | 86 +-
hw/s390x/css.c| 6 +-
hw/s390x/s390-pci-bus.c | 6 +-
hw/vfio/pci-quirks.c | 10 +--
qom/property-types.c | 102 +-
target/sparc/cpu.c| 4 +-
10 files changed, 105 insertions(+), 160 deletions(-)
diff --git a/include/qom/field-property-internal.h
b/include/qom/field-property-internal.h
index 7aa27ce836..bc7d25033d 100644
--- a/include/qom/field-property-internal.h
+++ b/include/qom/field-property-internal.h
@@ -9,9 +9,9 @@
#define QOM_STATIC_PROPERTY_INTERNAL_H
void field_prop_get_enum(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp);
+ Property *prop, Error **errp);
void field_prop_set_enum(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp);
+ Property *prop, Error **errp);
void field_prop_set_default_value_enum(ObjectProperty *op,
const Property *prop);
@@ -21,9 +21,9 @@ void field_prop_set_default_value_uint(ObjectProperty *op,
const Property *prop);
void field_prop_get_int32(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp);
+ Property *prop, Error **errp);
void field_prop_get_size32(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp);
+ Property *prop, Error **errp);
/**
* object_property_add_field: Add a field property to an object instance
diff --git a/include/qom/field-property.h b/include/qom/field-property.h
index e64a2b3c07..438bb25896 100644
--- a/include/qom/field-property.h
+++ b/include/qom/field-property.h
@@ -54,6 +54,18 @@ struct Property {
const char *link_type;
};
+/**
+ * typedef FieldAccessor: a field property getter or setter function
+ * @obj: the object instance
+ * @v: the visitor that contains the property data
+ * @name: the name of the property
+ * @prop: Field property definition
+ * @errp: pointer to error information
+ */
+typedef void FieldAccessor(Object *obj, Visitor *v,
+ const char *name, Property *prop,
+ Error **errp);
+
/**
* struct PropertyInfo: information on a specific QOM property type
*/
@@ -71,16 +83,10 @@ struct PropertyInfo {
/** @create: Optional callback for creation of property */
ObjectProperty *(*create)(ObjectClass *oc, const char *name,
Property *prop);
-/**
- * @get: Property getter. The opaque parameter will point to
- *the struct for the property.
- */
-ObjectPropertyAccessor *get;
-/**
- * @set: Property setter. The opaque parameter will point to
- *the struct for the property.
- */
-ObjectPropertyAccessor *set;
+/** @get: Property getter */
+FieldAccessor *get;
+/** @set: Property setter */
+FieldAccessor *set;
/**
* @release: Optional release function, called when the object
* is destroyed
diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c
index bb1ab34a75..e8837938e5 100644
--- a/backends/tpm/tpm_util.c
+++ b/backends/tpm/tpm_util.c
@@ -32,10 +32,10 @@
/* tpm backend property */
-static void get_tpm(Object *obj, Visitor *v, const char *name, void *opaque,
-Error **errp)
+static void get_tpm(Object *obj, Visitor *v, const char *name,
+Property *prop, Error **errp)
{
-TPMBackend **be = object_field_prop_ptr(obj, opaque);
+TPMBackend **be = object_field_prop_ptr(obj, prop);
char *p;
p = g_strdup(*be ? (*be)->id : "");
@@ -43,10 +43,9 @@ static void get_tpm(Object *obj, Visitor *v, const char
*name, void *opaque,
g_free(p);
}
-static void set_tpm(Object *obj, Visitor *v, const char *name, void