mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
Introduce qemuBuildInputDevStr
A function that builds the -device string for input devices.
This commit is contained in:
parent
d059b24aea
commit
c547a5f8d8
@ -4325,6 +4325,27 @@ qemuBuildUSBInputDevStr(const virDomainDef *def,
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
qemuBuildInputDevStr(char **devstr,
|
||||
const virDomainDef *def,
|
||||
virDomainInputDefPtr input,
|
||||
virQEMUCapsPtr qemuCaps)
|
||||
{
|
||||
switch (input->bus) {
|
||||
case VIR_DOMAIN_INPUT_BUS_USB:
|
||||
if (!(*devstr = qemuBuildUSBInputDevStr(def, input, qemuCaps)))
|
||||
return -1;
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_INPUT_BUS_VIRTIO:
|
||||
if (!(*devstr = qemuBuildVirtioInputDevStr(def, input, qemuCaps)))
|
||||
return -1;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuBuildInputCommandLine(virCommandPtr cmd,
|
||||
const virDomainDef *def,
|
||||
@ -4334,22 +4355,17 @@ qemuBuildInputCommandLine(virCommandPtr cmd,
|
||||
|
||||
for (i = 0; i < def->ninputs; i++) {
|
||||
virDomainInputDefPtr input = def->inputs[i];
|
||||
char *devstr = NULL;
|
||||
|
||||
if (input->bus == VIR_DOMAIN_INPUT_BUS_USB) {
|
||||
char *optstr;
|
||||
if (qemuBuildInputDevStr(&devstr, def, input, qemuCaps) < 0)
|
||||
return -1;
|
||||
|
||||
if (devstr) {
|
||||
virCommandAddArg(cmd, "-device");
|
||||
if (!(optstr = qemuBuildUSBInputDevStr(def, input, qemuCaps)))
|
||||
return -1;
|
||||
virCommandAddArg(cmd, optstr);
|
||||
VIR_FREE(optstr);
|
||||
} else if (input->bus == VIR_DOMAIN_INPUT_BUS_VIRTIO) {
|
||||
char *optstr;
|
||||
virCommandAddArg(cmd, "-device");
|
||||
if (!(optstr = qemuBuildVirtioInputDevStr(def, input, qemuCaps)))
|
||||
return -1;
|
||||
virCommandAddArg(cmd, optstr);
|
||||
VIR_FREE(optstr);
|
||||
virCommandAddArg(cmd, devstr);
|
||||
}
|
||||
|
||||
VIR_FREE(devstr);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -197,4 +197,11 @@ char *qemuBuildWatchdogDevStr(const virDomainDef *def,
|
||||
virDomainWatchdogDefPtr dev,
|
||||
virQEMUCapsPtr qemuCaps);
|
||||
|
||||
int qemuBuildInputDevStr(char **devstr,
|
||||
const virDomainDef *def,
|
||||
virDomainInputDefPtr input,
|
||||
virQEMUCapsPtr qemuCaps)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
|
||||
ATTRIBUTE_NONNULL(4);
|
||||
|
||||
#endif /* __QEMU_COMMAND_H__*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user