if (!def->nhostdevs)
return 0;
- return virHostdevUpdateActivePCIDevices(mgr, QEMU_DRIVER_NAME, def);
+ return virHostdevUpdateActivePCIDevices(mgr, def->hostdevs, def->nhostdevs,
+ QEMU_DRIVER_NAME, def->name);
}
int
if (!def->nhostdevs)
return 0;
- return virHostdevUpdateActiveUSBDevices(mgr, QEMU_DRIVER_NAME, def);
+ return virHostdevUpdateActiveUSBDevices(mgr, def->hostdevs, def->nhostdevs,
+ QEMU_DRIVER_NAME, def->name);
}
int
if (!def->nhostdevs)
return 0;
- return virHostdevUpdateActiveSCSIDevices(mgr, QEMU_DRIVER_NAME, def);
+ return virHostdevUpdateActiveSCSIDevices(mgr, def->hostdevs, def->nhostdevs,
+ QEMU_DRIVER_NAME, def->name);
}
int
virHostdevUpdateActivePCIDevices(virHostdevManagerPtr mgr,
+ virDomainHostdevDefPtr *hostdevs,
+ int nhostdevs,
const char *drv_name,
- virDomainDefPtr def)
+ const char *dom_name)
{
virDomainHostdevDefPtr hostdev = NULL;
virPCIDevicePtr dev = NULL;
virObjectLock(mgr->activePCIHostdevs);
virObjectLock(mgr->inactivePCIHostdevs);
- for (i = 0; i < def->nhostdevs; i++) {
- hostdev = def->hostdevs[i];
+ for (i = 0; i < nhostdevs; i++) {
+ hostdev = hostdevs[i];
if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS)
continue;
goto cleanup;
}
- virPCIDeviceSetUsedBy(dev, drv_name, def->name);
+ virPCIDeviceSetUsedBy(dev, drv_name, dom_name);
/* Setup the original states for the PCI device */
virPCIDeviceSetUnbindFromStub(dev, hostdev->origstates.states.pci.unbind_from_stub);
int
virHostdevUpdateActiveUSBDevices(virHostdevManagerPtr mgr,
+ virDomainHostdevDefPtr *hostdevs,
+ int nhostdevs,
const char *drv_name,
- virDomainDefPtr def)
+ const char *dom_name)
{
virDomainHostdevDefPtr hostdev = NULL;
size_t i;
int ret = -1;
virObjectLock(mgr->activeUSBHostdevs);
- for (i = 0; i < def->nhostdevs; i++) {
+ for (i = 0; i < nhostdevs; i++) {
virUSBDevicePtr usb = NULL;
- hostdev = def->hostdevs[i];
+ hostdev = hostdevs[i];
if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS)
continue;
VIR_WARN("Unable to reattach USB device %03d.%03d on domain %s",
hostdev->source.subsys.u.usb.bus,
hostdev->source.subsys.u.usb.device,
- def->name);
+ dom_name);
continue;
}
- virUSBDeviceSetUsedBy(usb, drv_name, def->name);
+ virUSBDeviceSetUsedBy(usb, drv_name, dom_name);
if (virUSBDeviceListAdd(mgr->activeUSBHostdevs, usb) < 0) {
virUSBDeviceFree(usb);
int
virHostdevUpdateActiveSCSIDevices(virHostdevManagerPtr mgr,
+ virDomainHostdevDefPtr *hostdevs,
+ int nhostdevs,
const char *drv_name,
- virDomainDefPtr def)
+ const char *dom_name)
{
virDomainHostdevDefPtr hostdev = NULL;
size_t i;
virSCSIDevicePtr tmp = NULL;
virObjectLock(mgr->activeSCSIHostdevs);
- for (i = 0; i < def->nhostdevs; i++) {
- hostdev = def->hostdevs[i];
+ for (i = 0; i < nhostdevs; i++) {
+ hostdev = hostdevs[i];
if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI)
goto cleanup;
if ((tmp = virSCSIDeviceListFind(mgr->activeSCSIHostdevs, scsi))) {
- if (virSCSIDeviceSetUsedBy(tmp, drv_name, def->name) < 0) {
+ if (virSCSIDeviceSetUsedBy(tmp, drv_name, dom_name) < 0) {
virSCSIDeviceFree(scsi);
goto cleanup;
}
virSCSIDeviceFree(scsi);
} else {
- if (virSCSIDeviceSetUsedBy(scsi, drv_name, def->name) < 0 ||
+ if (virSCSIDeviceSetUsedBy(scsi, drv_name, dom_name) < 0 ||
virSCSIDeviceListAdd(mgr->activeSCSIHostdevs, scsi) < 0) {
virSCSIDeviceFree(scsi);
goto cleanup;
int nhostdevs);
int
virHostdevUpdateActivePCIDevices(virHostdevManagerPtr mgr,
+ virDomainHostdevDefPtr *hostdevs,
+ int nhostdevs,
const char *drv_name,
- virDomainDefPtr def);
+ const char *dom_name);
int
virHostdevUpdateActiveUSBDevices(virHostdevManagerPtr mgr,
+ virDomainHostdevDefPtr *hostdevs,
+ int nhostdevs,
const char *drv_name,
- virDomainDefPtr def);
+ const char *dom_name);
int
virHostdevUpdateActiveSCSIDevices(virHostdevManagerPtr mgr,
+ virDomainHostdevDefPtr *hostdevs,
+ int nhostdevs,
const char *drv_name,
- virDomainDefPtr def);
+ const char *dom_name);
/* functions used by NodeDevDetach/Reattach/Reset */
int virHostdevPCINodeDeviceDetach(virHostdevManagerPtr mgr,