@@ -1071,7 +1071,7 @@ static Property *qdev_prop_find(DeviceState *dev, const char *name)
/* device properties */
class = object_get_class(OBJECT(dev));
do {
- prop = qdev_prop_walk(DEVICE_CLASS(class)->props, name);
+ prop = qdev_prop_walk(DEVICE_CLASS(class)->props_, name);
if (prop) {
return prop;
}
@@ -751,7 +751,7 @@ void qdev_alias_all_properties(DeviceState *target, Object *source)
do {
DeviceClass *dc = DEVICE_CLASS(class);
- for (prop = dc->props; prop && prop->name; prop++) {
+ for (prop = dc->props_; prop && prop->name; prop++) {
object_property_add_alias(source, prop->name,
OBJECT(target), prop->name,
&error_abort);
@@ -954,7 +954,7 @@ static void device_initfn(Object *obj)
class = object_get_class(OBJECT(dev));
do {
- for (prop = DEVICE_CLASS(class)->props; prop && prop->name; prop++) {
+ for (prop = DEVICE_CLASS(class)->props_; prop && prop->name; prop++) {
qdev_property_add_legacy(dev, prop, &error_abort);
qdev_property_add_static(dev, prop);
}
@@ -1013,7 +1013,7 @@ static void device_class_base_init(ObjectClass *class, void *data)
/* We explicitly look up properties in the superclasses,
* so do not propagate them to the subclasses.
*/
- klass->props = NULL;
+ klass->props_ = NULL;
}
static void device_unparent(Object *obj)
@@ -1063,7 +1063,7 @@ static void device_class_init(ObjectClass *class, void *data)
void device_class_set_props(DeviceClass *dc, Property *props)
{
- dc->props = props;
+ dc->props_ = props;
}
void device_class_set_parent_reset(DeviceClass *dc,
@@ -100,7 +100,12 @@ typedef struct DeviceClass {
DECLARE_BITMAP(categories, DEVICE_CATEGORY_MAX);
const char *fw_name;
const char *desc;
- Property *props;
+
+ /*
+ * The underscore at the end ensures a compile-time error if someone
+ * assigns to dc->props instead of using device_class_set_props.
+ */
+ Property *props_;
/*
* Can this device be instantiated with -device / device_add?
@@ -748,7 +748,7 @@ static void qdev_print(Monitor *mon, DeviceState *dev, int indent)
}
class = object_get_class(OBJECT(dev));
do {
- qdev_print_props(mon, dev, DEVICE_CLASS(class)->props, indent);
+ qdev_print_props(mon, dev, DEVICE_CLASS(class)->props_, indent);
class = object_class_get_parent(class);
} while (class != object_class_by_name(TYPE_DEVICE));
bus_print_dev(dev->parent_bus, mon, dev, indent);
@@ -137,7 +137,7 @@ static ObjectPropertyInfo *make_device_property_info(ObjectClass *klass,
Property *prop;
do {
- for (prop = DEVICE_CLASS(klass)->props; prop && prop->name; prop++) {
+ for (prop = DEVICE_CLASS(klass)->props_; prop && prop->name; prop++) {
if (strcmp(name, prop->name) != 0) {
continue;
}
Ensure that conflicts in the future will cause a syntax error. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/core/qdev-properties.c | 2 +- hw/core/qdev.c | 8 ++++---- include/hw/qdev-core.h | 7 ++++++- qdev-monitor.c | 2 +- qom/qom-qmp-cmds.c | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-)