Reimplement device property detection directly rather than using
virQEMUCapsProbeQMPGenericProps in preparation for changes to the
detection code.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index dadbef32a2..5e72dead45 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2610,11 +2610,27 @@ static int
virQEMUCapsProbeQMPDeviceProperties(virQEMUCapsPtr qemuCaps,
qemuMonitorPtr mon)
{
- return virQEMUCapsProbeQMPGenericProps(qemuCaps,
- mon,
- virQEMUCapsDeviceProps,
- G_N_ELEMENTS(virQEMUCapsDeviceProps),
- qemuMonitorGetDeviceProps);
+ size_t i;
+
+ for (i = 0; i < G_N_ELEMENTS(virQEMUCapsDeviceProps); i++) {
+ virQEMUCapsObjectTypeProps *device = virQEMUCapsDeviceProps + i;
+ VIR_AUTOSTRINGLIST values = NULL;
+ int nvalues;
+
+ if (device->capsCondition >= 0 &&
+ !virQEMUCapsGet(qemuCaps, device->capsCondition))
+ continue;
+
+ if ((nvalues = qemuMonitorGetDeviceProps(mon, device->type, &values)) <
0)
+ return -1;
+
+ virQEMUCapsProcessStringFlags(qemuCaps,
+ device->nprops,
+ device->props,
+ nvalues, values);
+ }
+
+ return 0;
}
--
2.26.2