|
@@ -20,6 +20,7 @@
|
|
|
#include "qapi/error.h"
|
|
|
#include "hw/pci/pci_host.h"
|
|
|
#include "hw/remote/iohub.h"
|
|
|
+#include "hw/qdev-core.h"
|
|
|
|
|
|
static void remote_machine_init(MachineState *machine)
|
|
|
{
|
|
@@ -53,14 +54,19 @@ static void remote_machine_init(MachineState *machine)
|
|
|
|
|
|
pci_bus_irqs(pci_host->bus, remote_iohub_set_irq, remote_iohub_map_irq,
|
|
|
&s->iohub, REMOTE_IOHUB_NB_PIRQS);
|
|
|
+
|
|
|
+ qbus_set_hotplug_handler(BUS(pci_host->bus), OBJECT(s));
|
|
|
}
|
|
|
|
|
|
static void remote_machine_class_init(ObjectClass *oc, void *data)
|
|
|
{
|
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
+ HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc);
|
|
|
|
|
|
mc->init = remote_machine_init;
|
|
|
mc->desc = "Experimental remote machine";
|
|
|
+
|
|
|
+ hc->unplug = qdev_simple_device_unplug_cb;
|
|
|
}
|
|
|
|
|
|
static const TypeInfo remote_machine = {
|
|
@@ -68,6 +74,10 @@ static const TypeInfo remote_machine = {
|
|
|
.parent = TYPE_MACHINE,
|
|
|
.instance_size = sizeof(RemoteMachineState),
|
|
|
.class_init = remote_machine_class_init,
|
|
|
+ .interfaces = (InterfaceInfo[]) {
|
|
|
+ { TYPE_HOTPLUG_HANDLER },
|
|
|
+ { }
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
static void remote_machine_register_types(void)
|