static int
qemuBuildDeviceCommandlineFromJSON(virCommand *cmd,
virJSONValue *props,
+ const virDomainDef *def G_GNUC_UNUSED,
virQEMUCaps *qemuCaps)
{
g_autofree char *arg = NULL;
static int
qemuCommandAddExtDevice(virCommand *cmd,
virDomainDeviceInfo *dev,
+ const virDomainDef *def,
virQEMUCaps *qemuCaps)
{
if (dev->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI ||
if (!(devprops = qemuBuildZPCIDevProps(dev)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
}
unsigned int bootindexB,
const char *backendA,
const char *backendB,
+ const virDomainDef *def,
virQEMUCaps *qemuCaps)
{
g_autoptr(virJSONValue) props = NULL;
NULL) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
bootindexB,
backendA,
backendB,
+ def,
qemuCaps) < 0)
return -1;
} else {
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV))
return 0;
- if (qemuCommandAddExtDevice(cmd, &disk->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &disk->info, def, qemuCaps) < 0)
return -1;
if (!(devprops = qemuBuildDiskDeviceProps(def, disk, qemuCaps)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
return 0;
if (qemuBuildChardevCommand(cmd, chrsrc, chardev_alias, priv->qemuCaps) < 0)
return -1;
- if (qemuCommandAddExtDevice(cmd, &fs->info, priv->qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &fs->info, def, priv->qemuCaps) < 0)
return -1;
if (!(devprops = qemuBuildVHostUserFsDevProps(fs, def, chardev_alias, priv)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, priv->qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, priv->qemuCaps) < 0)
return -1;
return 0;
if (qemuBuildDeviceAddressProps(devprops, def, &fs->info) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
return 0;
return -1;
virCommandAddArg(cmd, fsdevstr);
- if (qemuCommandAddExtDevice(cmd, &fs->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &fs->info, def, qemuCaps) < 0)
return -1;
if (qemuBuildFSDevCmd(cmd, def, fs, qemuCaps) < 0)
if (!props)
continue;
- if (qemuCommandAddExtDevice(cmd, &cont->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &cont->info, def, qemuCaps) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
}
if (!def->watchdog)
return 0;
- if (qemuCommandAddExtDevice(cmd, &def->watchdog->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &def->watchdog->info, def, qemuCaps) < 0)
return -1;
if (!(props = qemuBuildWatchdogDevProps(def, watchdog)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps))
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps))
return -1;
/* qemu doesn't have a 'dump' action; we tell qemu to 'pause', then
if (qemuBuildDeviceAddressProps(props, def, &def->memballoon->info) < 0)
return -1;
- if (qemuCommandAddExtDevice(cmd, &def->memballoon->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &def->memballoon->info, def, qemuCaps) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
for (i = 0; i < def->ninputs; i++) {
virDomainInputDef *input = def->inputs[i];
- if (qemuCommandAddExtDevice(cmd, &input->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &input->info, def, qemuCaps) < 0)
return -1;
if (input->type == VIR_DOMAIN_INPUT_TYPE_EVDEV) {
}
if (props &&
- qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
}
}
if (qemuBuildDeviceAddressProps(props, def, &sound->info) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
NULL) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
if (sound->model == VIR_DOMAIN_SOUND_MODEL_PCSPK) {
virCommandAddArgList(cmd, "-soundhw", "pcspk", NULL);
} else {
- if (qemuCommandAddExtDevice(cmd, &sound->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &sound->info, def, qemuCaps) < 0)
return -1;
if (qemuBuildSoundDevCmd(cmd, def, sound, qemuCaps) < 0)
if (qemuBuildDeviceAddressProps(props, def, &video->info) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
return -1;
}
- if (qemuCommandAddExtDevice(cmd, &def->videos[i]->info, priv->qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &def->videos[i]->info, def, priv->qemuCaps) < 0)
return -1;
if (qemuBuildDeviceVideoCmd(cmd, def, video, priv->qemuCaps) < 0)
if (qemuBuildDeviceAddressProps(props, def, &dev->info) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
if (!(devprops = qemuBuildSCSIHostdevDevProps(def, hostdev, backendAlias)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
return 0;
if (!(devprops = qemuBuildUSBHostdevDevProps(def, hostdev, qemuCaps)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
break;
if (hostdev->info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UNASSIGNED)
continue;
- if (qemuCommandAddExtDevice(cmd, hostdev->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, hostdev->info, def, qemuCaps) < 0)
return -1;
if (!(devprops = qemuBuildPCIHostdevDevProps(def, hostdev)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
break;
vhostfdName)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
}
if (!(devprops = qemuBuildHostdevMediatedDevProps(def, hostdev)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
break;
return -1;
/* add the device */
- if (qemuCommandAddExtDevice(cmd, &rng->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &rng->info, def, qemuCaps) < 0)
return -1;
if (!(devprops = qemuBuildRNGDevProps(def, rng, qemuCaps)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
}
NULL) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
NULL) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
if (!(props = qemuBuildMemoryDeviceProps(cfg, priv, def, def->mems[i])))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, priv->qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, priv->qemuCaps) < 0)
return -1;
}
* New way: -netdev type=tap,id=netdev1 -device e1000,id=netdev1
*/
if (qemuDomainSupportsNicdev(def, net)) {
- if (qemuCommandAddExtDevice(cmd, &net->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &net->info, def, qemuCaps) < 0)
goto cleanup;
if (!(nicprops = qemuBuildNicDevProps(def, net, net->driver.virtio.queues, qemuCaps)))
goto cleanup;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, nicprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, nicprops, def, qemuCaps) < 0)
goto cleanup;
} else if (!requireNicdev) {
- if (qemuCommandAddExtDevice(cmd, &net->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &net->info, def, qemuCaps) < 0)
goto cleanup;
if (!(nic = qemuBuildLegacyNicStr(net)))
NULL) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
if (!devProps)
return -1;
- if (qemuCommandAddExtDevice(cmd, &shmem->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &shmem->info, def, qemuCaps) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devProps, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devProps, def, qemuCaps) < 0)
return -1;
if (shmem->server.enabled) {
if (!(props = qemuBuildChrDeviceProps(def, chr, qemuCaps)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
if (!(devprops = qemuBuildRedirdevDevProps(def, redirdev)))
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
}
if (qemuBuildDeviceAddressProps(props, def, &tpm->info) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
static int
qemuBuildTPMProxyCommandLine(virCommand *cmd,
virDomainTPMDef *tpm,
+ const virDomainDef *def,
virQEMUCaps *qemuCaps)
{
g_autoptr(virJSONValue) props = NULL;
NULL) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
for (i = 0; i < def->ntpms; i++) {
if (def->tpms[i]->model == VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY) {
- if (qemuBuildTPMProxyCommandLine(cmd, def->tpms[i], priv->qemuCaps) < 0)
+ if (qemuBuildTPMProxyCommandLine(cmd, def->tpms[i], def, priv->qemuCaps) < 0)
return -1;
} else if (qemuBuildTPMCommandLine(cmd, def, def->tpms[i], priv) < 0) {
return -1;
NULL) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
return 0;
return -1;
}
- if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
return -1;
break;
virCommandPassFD(cmd, priv->vhostfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT);
priv->vhostfd = -1;
- if (qemuCommandAddExtDevice(cmd, &vsock->info, qemuCaps) < 0)
+ if (qemuCommandAddExtDevice(cmd, &vsock->info, def, qemuCaps) < 0)
return -1;
- if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, qemuCaps) < 0)
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCaps) < 0)
return -1;
return 0;