mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
qemu: Rename SupportsChardev to IsPlatformDevice
This is only used in qemu_command.c, so move it, and clarify that it's really about identifying if the serial config is a platform device or not. Reviewed-by: Andrea Bolognani <abologna@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
426dc5eb28
commit
405c0f07f5
@ -5549,33 +5549,6 @@ virQEMUCapsCacheFree(virQEMUCapsCachePtr cache)
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
virQEMUCapsSupportsChardev(const virDomainDef *def,
|
||||
virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED,
|
||||
virDomainChrDefPtr chr)
|
||||
{
|
||||
if ((def->os.arch == VIR_ARCH_PPC) || ARCH_IS_PPC64(def->os.arch)) {
|
||||
if (!qemuDomainIsPSeries(def))
|
||||
return false;
|
||||
/* only pseries need -device spapr-vty with -chardev */
|
||||
if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL &&
|
||||
chr->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (def->os.arch == VIR_ARCH_ARMV7L || def->os.arch == VIR_ARCH_AARCH64) {
|
||||
/* TARGET_TYPE_ISA here really means 'the default', which we
|
||||
treat as whatever the built in platform serial device is on.
|
||||
And for platform devices we can't use -chardev */
|
||||
if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL &&
|
||||
chr->targetType == VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
virQEMUCapsSupportsVmport(virQEMUCapsPtr qemuCaps,
|
||||
const virDomainDef *def)
|
||||
|
@ -525,10 +525,6 @@ int virQEMUCapsGetDefaultVersion(virCapsPtr caps,
|
||||
|
||||
VIR_ENUM_DECL(virQEMUCaps);
|
||||
|
||||
bool virQEMUCapsSupportsChardev(const virDomainDef *def,
|
||||
virQEMUCapsPtr qemuCaps,
|
||||
virDomainChrDefPtr chr);
|
||||
|
||||
bool virQEMUCapsSupportsGICVersion(virQEMUCapsPtr qemuCaps,
|
||||
virDomainVirtType virtType,
|
||||
virGICVersion version);
|
||||
|
@ -9101,6 +9101,30 @@ qemuBuildChrDeviceCommandLine(virCommandPtr cmd,
|
||||
}
|
||||
|
||||
|
||||
static bool
|
||||
qemuChrIsPlatformDevice(const virDomainDef *def,
|
||||
virDomainChrDefPtr chr)
|
||||
{
|
||||
if ((def->os.arch == VIR_ARCH_PPC) || ARCH_IS_PPC64(def->os.arch)) {
|
||||
if (!qemuDomainIsPSeries(def))
|
||||
return true;
|
||||
/* only pseries need -device spapr-vty with -chardev */
|
||||
if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL &&
|
||||
chr->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (def->os.arch == VIR_ARCH_ARMV7L || def->os.arch == VIR_ARCH_AARCH64) {
|
||||
/* TARGET_TYPE_ISA here really means 'the default platform device' */
|
||||
if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL &&
|
||||
chr->targetType == VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuBuildSerialCommandLine(virLogManagerPtr logManager,
|
||||
virCommandPtr cmd,
|
||||
@ -9136,8 +9160,8 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManager,
|
||||
virCommandAddArg(cmd, devstr);
|
||||
VIR_FREE(devstr);
|
||||
|
||||
/* Use -chardev with -device if they are available */
|
||||
if (virQEMUCapsSupportsChardev(def, qemuCaps, serial)) {
|
||||
/* If the device is not a platform device, build the devstr */
|
||||
if (!qemuChrIsPlatformDevice(def, serial)) {
|
||||
if (qemuBuildChrDeviceCommandLine(cmd, def, serial, qemuCaps) < 0)
|
||||
return -1;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user