mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: Split virQEMUCapsInitArchQMPBasic()
Instead of having a single function that probes the architecture from the monitor and then sets a bunch of basic capabilities based on it, have a separate function for each part: virQEMUCapsInitQMPArch() only sets the architecture, and virQEMUCapsInitQMPBasicArch() only sets the capabilities. This split will be useful later on, when we will want to set basic capabilities from the test suite without having to go through the pain of mocking the monitor.
This commit is contained in:
parent
a26603f684
commit
a8fc7ef834
@ -4261,18 +4261,25 @@ virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
|
||||
virQEMUCapsSet(qemuCaps, QEMU_CAPS_DISPLAY);
|
||||
}
|
||||
|
||||
/* Capabilities that are architecture depending
|
||||
* initialized for QEMU.
|
||||
|
||||
/**
|
||||
* virQEMUCapsInitQMPArch:
|
||||
* @qemuCaps: QEMU capabilities
|
||||
* @mon: QEMU monitor
|
||||
*
|
||||
* Initialize the architecture for @qemuCaps by asking @mon.
|
||||
*
|
||||
* Returns: 0 on success, <0 on failure
|
||||
*/
|
||||
static int
|
||||
virQEMUCapsInitArchQMPBasic(virQEMUCapsPtr qemuCaps,
|
||||
virQEMUCapsInitQMPArch(virQEMUCapsPtr qemuCaps,
|
||||
qemuMonitorPtr mon)
|
||||
{
|
||||
char *archstr = NULL;
|
||||
int ret = -1;
|
||||
|
||||
if (!(archstr = qemuMonitorGetTargetArch(mon)))
|
||||
return -1;
|
||||
goto cleanup;
|
||||
|
||||
if ((qemuCaps->arch = virQEMUCapsArchFromString(archstr)) == VIR_ARCH_NONE) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
@ -4280,18 +4287,29 @@ virQEMUCapsInitArchQMPBasic(virQEMUCapsPtr qemuCaps,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(archstr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virQEMUCapsInitQMPBasicArch:
|
||||
* @qemuCaps: QEMU capabilities
|
||||
*
|
||||
* Initialize @qemuCaps with basic architecture-dependent capabilities.
|
||||
*/
|
||||
static void
|
||||
virQEMUCapsInitQMPBasicArch(virQEMUCapsPtr qemuCaps)
|
||||
{
|
||||
/* ACPI/HPET/KVM PIT are x86 specific */
|
||||
if (ARCH_IS_X86(qemuCaps->arch)) {
|
||||
virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_ACPI);
|
||||
virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_HPET);
|
||||
virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_KVM_PIT);
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(archstr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@ -4516,9 +4534,11 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
|
||||
|
||||
virQEMUCapsInitQMPBasic(qemuCaps);
|
||||
|
||||
if (virQEMUCapsInitArchQMPBasic(qemuCaps, mon) < 0)
|
||||
if (virQEMUCapsInitQMPArch(qemuCaps, mon) < 0)
|
||||
goto cleanup;
|
||||
|
||||
virQEMUCapsInitQMPBasicArch(qemuCaps);
|
||||
|
||||
/* USB option is supported v1.3.0 onwards */
|
||||
if (qemuCaps->version >= 1003000)
|
||||
virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_USB_OPT);
|
||||
|
Loading…
x
Reference in New Issue
Block a user