]> git.proxmox.com Git - mirror_qemu.git/commit - include/hw/qdev-core.h
qdev: pass an Object * to qbus_set_hotplug_handler()
authorMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 12 Feb 2019 18:24:59 +0000 (19:24 +0100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Sun, 17 Feb 2019 10:54:02 +0000 (21:54 +1100)
commit94d1cc5f03a8f7e45925928d0c9a5ee9782e6c85
tree59c66ae00bd12efa21bd116ff00c8d38258dd95d
parent0afed8c8195886111dd8ab0d078b189c55949521
qdev: pass an Object * to qbus_set_hotplug_handler()

Certain devices types, like memory/CPU, are now being handled using a
hotplug interface provided by a top-level MachineClass. Hotpluggable
host bridges are another such device where it makes sense to use a
machine-level hotplug handler. However, unlike those devices,
host-bridges have a parent bus (the main system bus), and devices with
a parent bus use a different mechanism for registering their hotplug
handlers: qbus_set_hotplug_handler(). This interface currently expects
a handler to be a subclass of DeviceClass, but this is not the case
for MachineClass, which derives directly from ObjectClass.

Internally, the interface only requires an ObjectClass, so expose that
in qbus_set_hotplug_handler().

Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Halil Pasic <pasic@linux.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <154999589921.690774.3640149277362188566.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
13 files changed:
hw/acpi/pcihp.c
hw/acpi/piix4.c
hw/char/virtio-serial-bus.c
hw/core/bus.c
hw/pci/pcie.c
hw/pci/shpc.c
hw/ppc/spapr_pci.c
hw/s390x/css-bridge.c
hw/s390x/s390-pci-bus.c
hw/scsi/virtio-scsi.c
hw/scsi/vmw_pvscsi.c
hw/usb/dev-smartcard-reader.c
include/hw/qdev-core.h