diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2011-12-07 21:34:16 -0600 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-02-03 10:41:06 -0600 |
commit | 39bffca2030950ef6efe57c2fac8327a45ae1015 (patch) | |
tree | 325262f44978e6116c9e43f688c900e08ee83738 /hw/vt82c686.c | |
parent | 212ad111683a5b5a79a74d6141a4b75f532a4c8f (diff) |
qdev: register all types natively through QEMU Object Model
This was done in a mostly automated fashion. I did it in three steps and then
rebased it into a single step which avoids repeatedly touching every file in
the tree.
The first step was a sed-based addition of the parent type to the subclass
registration functions.
The second step was another sed-based removal of subclass registration functions
while also adding virtual functions from the base class into a class_init
function as appropriate.
Finally, a python script was used to convert the DeviceInfo structures and
qdev_register_subclass functions to TypeInfo structures, class_init functions,
and type_register_static calls.
We are almost fully converted to QOM after this commit.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/vt82c686.c')
-rw-r--r-- | hw/vt82c686.c | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/hw/vt82c686.c b/hw/vt82c686.c index 72be4fd5b9..aa0954f487 100644 --- a/hw/vt82c686.c +++ b/hw/vt82c686.c @@ -348,6 +348,7 @@ void vt82c686b_ac97_init(PCIBus *bus, int devfn) static void via_ac97_class_init(ObjectClass *klass, void *data) { + DeviceClass *dc = DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); k->init = vt82c686b_ac97_initfn; @@ -355,18 +356,19 @@ static void via_ac97_class_init(ObjectClass *klass, void *data) k->device_id = PCI_DEVICE_ID_VIA_AC97; k->revision = 0x50; k->class_id = PCI_CLASS_MULTIMEDIA_AUDIO; + dc->desc = "AC97"; } -static DeviceInfo via_ac97_info = { - .name = "VT82C686B_AC97", - .desc = "AC97", - .size = sizeof(VT686AC97State), - .class_init = via_ac97_class_init, +static TypeInfo via_ac97_info = { + .name = "VT82C686B_AC97", + .parent = TYPE_PCI_DEVICE, + .instance_size = sizeof(VT686AC97State), + .class_init = via_ac97_class_init, }; static void vt82c686b_ac97_register(void) { - pci_qdev_register(&via_ac97_info); + type_register_static(&via_ac97_info); } device_init(vt82c686b_ac97_register); @@ -394,6 +396,7 @@ void vt82c686b_mc97_init(PCIBus *bus, int devfn) static void via_mc97_class_init(ObjectClass *klass, void *data) { + DeviceClass *dc = DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); k->init = vt82c686b_mc97_initfn; @@ -401,18 +404,19 @@ static void via_mc97_class_init(ObjectClass *klass, void *data) k->device_id = PCI_DEVICE_ID_VIA_MC97; k->class_id = PCI_CLASS_COMMUNICATION_OTHER; k->revision = 0x30; + dc->desc = "MC97"; } -static DeviceInfo via_mc97_info = { - .name = "VT82C686B_MC97", - .desc = "MC97", - .size = sizeof(VT686MC97State), - .class_init = via_mc97_class_init, +static TypeInfo via_mc97_info = { + .name = "VT82C686B_MC97", + .parent = TYPE_PCI_DEVICE, + .instance_size = sizeof(VT686MC97State), + .class_init = via_mc97_class_init, }; static void vt82c686b_mc97_register(void) { - pci_qdev_register(&via_mc97_info); + type_register_static(&via_mc97_info); } device_init(vt82c686b_mc97_register); @@ -472,6 +476,7 @@ static Property via_pm_properties[] = { static void via_pm_class_init(ObjectClass *klass, void *data) { + DeviceClass *dc = DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); k->init = vt82c686b_pm_initfn; @@ -480,20 +485,21 @@ static void via_pm_class_init(ObjectClass *klass, void *data) k->device_id = PCI_DEVICE_ID_VIA_ACPI; k->class_id = PCI_CLASS_BRIDGE_OTHER; k->revision = 0x40; + dc->desc = "PM"; + dc->vmsd = &vmstate_acpi; + dc->props = via_pm_properties; } -static DeviceInfo via_pm_info = { - .name = "VT82C686B_PM", - .desc = "PM", - .size = sizeof(VT686PMState), - .vmsd = &vmstate_acpi, - .props = via_pm_properties, - .class_init = via_pm_class_init, +static TypeInfo via_pm_info = { + .name = "VT82C686B_PM", + .parent = TYPE_PCI_DEVICE, + .instance_size = sizeof(VT686PMState), + .class_init = via_pm_class_init, }; static void vt82c686b_pm_register(void) { - pci_qdev_register(&via_pm_info); + type_register_static(&via_pm_info); } device_init(vt82c686b_pm_register); @@ -544,6 +550,7 @@ ISABus *vt82c686b_init(PCIBus *bus, int devfn) static void via_class_init(ObjectClass *klass, void *data) { + DeviceClass *dc = DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); k->init = vt82c686b_initfn; @@ -552,19 +559,20 @@ static void via_class_init(ObjectClass *klass, void *data) k->device_id = PCI_DEVICE_ID_VIA_ISA_BRIDGE; k->class_id = PCI_CLASS_BRIDGE_ISA; k->revision = 0x40; + dc->desc = "ISA bridge"; + dc->no_user = 1; + dc->vmsd = &vmstate_via; } -static DeviceInfo via_info = { - .name = "VT82C686B", - .desc = "ISA bridge", - .size = sizeof(VT82C686BState), - .vmsd = &vmstate_via, - .no_user = 1, - .class_init = via_class_init, +static TypeInfo via_info = { + .name = "VT82C686B", + .parent = TYPE_PCI_DEVICE, + .instance_size = sizeof(VT82C686BState), + .class_init = via_class_init, }; static void vt82c686b_register(void) { - pci_qdev_register(&via_info); + type_register_static(&via_info); } device_init(vt82c686b_register); |