unsigned int hostbus = 0;
unsigned int hostaddr = 0;
g_autofree char *hostdevice = NULL;
+ virTristateSwitch guestReset = VIR_TRISTATE_SWITCH_ABSENT;
+ virTristateSwitch guestResetsAll = VIR_TRISTATE_SWITCH_ABSENT;
if (!dev->missing) {
if (usbsrc->bus == 0 && usbsrc->device == 0) {
}
}
+ switch (usbsrc->guestReset) {
+ case VIR_DOMAIN_HOSTDEV_USB_GUEST_RESET_OFF:
+ guestReset = VIR_TRISTATE_SWITCH_OFF;
+ break;
+ case VIR_DOMAIN_HOSTDEV_USB_GUEST_RESET_UNINITIALIZED:
+ guestReset = VIR_TRISTATE_SWITCH_ON;
+ guestResetsAll = VIR_TRISTATE_SWITCH_OFF;
+ break;
+ case VIR_DOMAIN_HOSTDEV_USB_GUEST_RESET_ON:
+ guestReset = VIR_TRISTATE_SWITCH_ON;
+ guestResetsAll = VIR_TRISTATE_SWITCH_ON;
+ break;
+ case VIR_DOMAIN_HOSTDEV_USB_GUEST_RESET_DEFAULT:
+ case VIR_DOMAIN_HOSTDEV_USB_GUEST_RESET_LAST:
+ break;
+ }
+
if (virJSONValueObjectAdd(&props,
"s:driver", "usb-host",
"S:hostdevice", hostdevice,
"p:hostaddr", hostaddr,
"s:id", dev->info->alias,
"p:bootindex", dev->info->bootIndex,
+ "T:guest-reset", guestReset,
+ "T:guest-resets-all", guestResetsAll,
NULL) < 0)
return NULL;
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \
-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-format","id":"ide0-0-0","bootindex":1}' \
-audiodev '{"id":"audio1","driver":"none"}' \
--device '{"driver":"usb-host","hostdevice":"/dev/bus/usb/014/006","id":"hostdev0","bus":"usb.0","port":"1"}' \
+-device '{"driver":"usb-host","hostdevice":"/dev/bus/usb/014/006","id":"hostdev0","guest-reset":true,"guest-resets-all":false,"bus":"usb.0","port":"1"}' \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on