{ "rdma-pin-all", QEMU_CAPS_MIGRATE_RDMA },
};
+/* Use virQEMUCapsQMPSchemaQueries for querying parameters of events */
struct virQEMUCapsStringFlags virQEMUCapsEvents[] = {
{ "MIGRATION", QEMU_CAPS_MIGRATION_EVENT },
{ "VSERPORT_CHANGE", QEMU_CAPS_VSERPORT_CHANGE },
if ((nevents = qemuMonitorGetEvents(mon, &events)) < 0)
return -1;
+ /* we can probe events also from the QMP schema so we can skip this here */
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_QMP_SCHEMA)) {
+ virStringListFreeCount(events, nevents);
+ return 0;
+ }
+
virQEMUCapsProcessStringFlags(qemuCaps,
ARRAY_CARDINALITY(virQEMUCapsEvents),
virQEMUCapsEvents,
virQEMUCapsSet(qemuCaps, entry->flag);
}
+ /* probe also for basic event support */
+ for (i = 0; i < ARRAY_CARDINALITY(virQEMUCapsEvents); i++) {
+ entry = virQEMUCapsEvents + i;
+
+ if (virQEMUQAPISchemaPathExists(entry->value, schema))
+ virQEMUCapsSet(qemuCaps, entry->flag);
+ }
+
virHashFree(schema);
return 0;
}