mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
qdev: Convert busses to QEMU Object Model
This is far less interesting than it sounds. We simply add an Object to each
BusState and then register the types appropriately. Most of the interesting
refactoring will follow in the next patches.
Since we're changing fundamental type names (BusInfo -> BusClass), it all needs
to convert at once. Fortunately, not a lot of code is affected.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
[AF: Made all new bus TypeInfos static const.]
[AF: Made qbus_free() call object_delete(), required {qom,glib}_allocated]
Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
8185d21639
commit
0d936928ef
27 changed files with 299 additions and 142 deletions
|
|
@ -32,15 +32,23 @@ static Property ide_props[] = {
|
|||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
static struct BusInfo ide_bus_info = {
|
||||
.name = "IDE",
|
||||
.size = sizeof(IDEBus),
|
||||
.get_fw_dev_path = idebus_get_fw_dev_path,
|
||||
static void ide_bus_class_init(ObjectClass *klass, void *data)
|
||||
{
|
||||
BusClass *k = BUS_CLASS(klass);
|
||||
|
||||
k->get_fw_dev_path = idebus_get_fw_dev_path;
|
||||
}
|
||||
|
||||
static const TypeInfo ide_bus_info = {
|
||||
.name = TYPE_IDE_BUS,
|
||||
.parent = TYPE_BUS,
|
||||
.instance_size = sizeof(IDEBus),
|
||||
.class_init = ide_bus_class_init,
|
||||
};
|
||||
|
||||
void ide_bus_new(IDEBus *idebus, DeviceState *dev, int bus_id)
|
||||
{
|
||||
qbus_create_inplace(&idebus->qbus, &ide_bus_info, dev, NULL);
|
||||
qbus_create_inplace(&idebus->qbus, TYPE_IDE_BUS, dev, NULL);
|
||||
idebus->bus_id = bus_id;
|
||||
}
|
||||
|
||||
|
|
@ -249,7 +257,7 @@ static void ide_device_class_init(ObjectClass *klass, void *data)
|
|||
{
|
||||
DeviceClass *k = DEVICE_CLASS(klass);
|
||||
k->init = ide_qdev_init;
|
||||
k->bus_info = &ide_bus_info;
|
||||
k->bus_type = TYPE_IDE_BUS;
|
||||
k->props = ide_props;
|
||||
}
|
||||
|
||||
|
|
@ -264,6 +272,7 @@ static TypeInfo ide_device_type_info = {
|
|||
|
||||
static void ide_register_types(void)
|
||||
{
|
||||
type_register_static(&ide_bus_info);
|
||||
type_register_static(&ide_hd_info);
|
||||
type_register_static(&ide_cd_info);
|
||||
type_register_static(&ide_drive_info);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue