[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 11/25] qdev: pick global properties from superclasse
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 11/25] qdev: pick global properties from superclasses |
Date: |
Tue, 3 Apr 2012 13:15:39 +0200 |
In qdev, each bus in practice identified an abstract superclass, but
this was mostly hidden. In QOM, instead, these abstract classes are
explicit so we can move bus properties there.
This patch moves global bus properties, an obscure feature when used
with the command-line which is actually useful and used when used by
backwards-compatible machine types.
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/pc_piix.c | 12 ++++++------
hw/qdev-properties.c | 23 +++++++++++++----------
2 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index fadca4c..8bd6482 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -460,7 +460,7 @@ static QEMUMachine pc_machine_v0_13 = {
.property = "rombar",
.value = stringify(0),
},{
- .driver = "PCI",
+ .driver = TYPE_PCI_DEVICE,
.property = "command_serr_enable",
.value = "off",
},{
@@ -520,7 +520,7 @@ static QEMUMachine pc_machine_v0_12 = {
.property = "rombar",
.value = stringify(0),
},{
- .driver = "PCI",
+ .driver = TYPE_PCI_DEVICE,
.property = "command_serr_enable",
.value = "off",
},{
@@ -584,11 +584,11 @@ static QEMUMachine pc_machine_v0_11 = {
.property = "ver",
.value = "0.11",
},{
- .driver = "PCI",
+ .driver = TYPE_PCI_DEVICE,
.property = "rombar",
.value = stringify(0),
},{
- .driver = "PCI",
+ .driver = TYPE_PCI_DEVICE,
.property = "command_serr_enable",
.value = "off",
},{
@@ -664,11 +664,11 @@ static QEMUMachine pc_machine_v0_10 = {
.property = "ver",
.value = "0.10",
},{
- .driver = "PCI",
+ .driver = TYPE_PCI_DEVICE,
.property = "rombar",
.value = stringify(0),
},{
- .driver = "PCI",
+ .driver = TYPE_PCI_DEVICE,
.property = "command_serr_enable",
.value = "off",
},{
diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 85897c7..a9276f9 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -1101,17 +1101,20 @@ void qdev_prop_register_global_list(GlobalProperty
*props)
void qdev_prop_set_globals(DeviceState *dev)
{
- GlobalProperty *prop;
-
- QTAILQ_FOREACH(prop, &global_props, next) {
- if (strcmp(object_get_typename(OBJECT(dev)), prop->driver) != 0 &&
- strcmp(qdev_get_bus_info(dev)->name, prop->driver) != 0) {
- continue;
- }
- if (qdev_prop_parse(dev, prop->property, prop->value) != 0) {
- exit(1);
+ ObjectClass *class = object_get_class(OBJECT(dev));
+
+ do {
+ GlobalProperty *prop;
+ QTAILQ_FOREACH(prop, &global_props, next) {
+ if (strcmp(object_class_get_name(class), prop->driver) != 0) {
+ continue;
+ }
+ if (qdev_prop_parse(dev, prop->property, prop->value) != 0) {
+ exit(1);
+ }
}
- }
+ class = object_class_get_parent(class);
+ } while (class);
}
static int qdev_add_one_global(QemuOpts *opts, void *opaque)
--
1.7.9.3
- Re: [Qemu-devel] [PATCH 06/25] qdev: fix -device foo,?, (continued)
- [Qemu-devel] [PATCH 07/25] qdev: use object_property_print in info qtree, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 08/25] qdev: remove qdev_prop_set_defaults, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 09/25] qdev: move bus properties to a separate global, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 10/25] qdev: do not propagate properties to subclasses, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 11/25] qdev: pick global properties from superclasses,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 12/25] qdev: factor setting of global properties, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 13/25] qdev: replace bus properties with superclass properties, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 14/25] qapi: add Visitor interfaces for uint*_t and int*_t, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 15/25] qdev: use int32_t container for devfn property, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 17/25] qdev: remove PropertyInfo range checking, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 19/25] qom: push state up to Object, Paolo Bonzini, 2012/04/03
- [Qemu-devel] [PATCH 23/25] qom: add realized property, Paolo Bonzini, 2012/04/03