|
@@ -58,6 +58,25 @@ static void remote_machine_init(MachineState *machine)
|
|
|
qbus_set_hotplug_handler(BUS(pci_host->bus), OBJECT(s));
|
|
|
}
|
|
|
|
|
|
+static bool remote_machine_get_vfio_user(Object *obj, Error **errp)
|
|
|
+{
|
|
|
+ RemoteMachineState *s = REMOTE_MACHINE(obj);
|
|
|
+
|
|
|
+ return s->vfio_user;
|
|
|
+}
|
|
|
+
|
|
|
+static void remote_machine_set_vfio_user(Object *obj, bool value, Error **errp)
|
|
|
+{
|
|
|
+ RemoteMachineState *s = REMOTE_MACHINE(obj);
|
|
|
+
|
|
|
+ if (phase_check(PHASE_MACHINE_CREATED)) {
|
|
|
+ error_setg(errp, "Error enabling vfio-user - machine already created");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ s->vfio_user = value;
|
|
|
+}
|
|
|
+
|
|
|
static void remote_machine_class_init(ObjectClass *oc, void *data)
|
|
|
{
|
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
@@ -67,6 +86,10 @@ static void remote_machine_class_init(ObjectClass *oc, void *data)
|
|
|
mc->desc = "Experimental remote machine";
|
|
|
|
|
|
hc->unplug = qdev_simple_device_unplug_cb;
|
|
|
+
|
|
|
+ object_class_property_add_bool(oc, "vfio-user",
|
|
|
+ remote_machine_get_vfio_user,
|
|
|
+ remote_machine_set_vfio_user);
|
|
|
}
|
|
|
|
|
|
static const TypeInfo remote_machine = {
|