From 8b74919d695bdf81f6a4efdf84b165e083305ace Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Tue, 10 May 2016 10:50:34 +0200 Subject: [PATCH] qemu: Add virQEMUCapsSetGICCapabilities() For use in the test suite. --- src/qemu/qemu_capabilities.c | 29 +++++++++++++++++++++++++---- src/qemu/qemu_capabilities.h | 5 +++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 1c79dbc9a4..13427edd5a 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2367,6 +2367,30 @@ int virQEMUCapsGetMachineMaxCpus(virQEMUCapsPtr qemuCaps, } +/** + * virQEMUCapsSetGICCapabilities: + * @qemuCaps: QEMU capabilities + * @capabilities: GIC capabilities + * @ncapabilities: number of GIC capabilities + * + * Set the GIC capabilities for @qemuCaps. + * + * The ownership of @capabilities is taken away from the caller, ie. this + * function will not make a copy of @capabilities, so releasing that memory + * after it's been called is a bug. + */ +void +virQEMUCapsSetGICCapabilities(virQEMUCapsPtr qemuCaps, + virGICCapability *capabilities, + size_t ncapabilities) +{ + VIR_FREE(qemuCaps->gicCapabilities); + + qemuCaps->gicCapabilities = capabilities; + qemuCaps->ngicCapabilities = ncapabilities; +} + + static int virQEMUCapsProbeQMPCommands(virQEMUCapsPtr qemuCaps, qemuMonitorPtr mon) @@ -2719,10 +2743,7 @@ virQEMUCapsProbeQMPGICCapabilities(virQEMUCapsPtr qemuCaps, if ((ncaps = qemuMonitorGetGICCapabilities(mon, &caps)) < 0) return -1; - VIR_FREE(qemuCaps->gicCapabilities); - - qemuCaps->gicCapabilities = caps; - qemuCaps->ngicCapabilities = ncaps; + virQEMUCapsSetGICCapabilities(qemuCaps, caps, ncaps); return 0; } diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 59db6e0512..b6e0f8ad77 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -427,6 +427,11 @@ bool virQEMUCapsIsValid(virQEMUCapsPtr qemuCaps); void virQEMUCapsFilterByMachineType(virQEMUCapsPtr qemuCaps, const char *machineType); +/* Only for use by test suite */ +void virQEMUCapsSetGICCapabilities(virQEMUCapsPtr qemuCaps, + virGICCapability *capabilities, + size_t ncapabilities); + virQEMUCapsCachePtr virQEMUCapsCacheNew(const char *libDir, const char *cacheDir, uid_t uid, gid_t gid); -- GitLab