aboutsummaryrefslogtreecommitdiff
path: root/migration/options.c
diff options
context:
space:
mode:
authorJuan Quintela <quintela@redhat.com>2023-03-01 23:15:59 +0100
committerJuan Quintela <quintela@redhat.com>2023-04-24 15:01:46 +0200
commit4d0c6b695bf5252402ebf967f83baebfd2f4b91e (patch)
tree2fdbb812e32809576d64cd42b5a05a5952fa4607 /migration/options.c
parent77608706459bd197e25ac1ef54591b9f8a0b46f8 (diff)
migration: Move qmp_query_migrate_capabilities() to options.c
Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Diffstat (limited to 'migration/options.c')
-rw-r--r--migration/options.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/migration/options.c b/migration/options.c
index 367c930f46..ff621bdeb3 100644
--- a/migration/options.c
+++ b/migration/options.c
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "qapi/qapi-commands-migration.h"
#include "sysemu/runstate.h"
#include "migration.h"
#include "ram.h"
@@ -390,3 +391,25 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp)
return true;
}
+
+MigrationCapabilityStatusList *qmp_query_migrate_capabilities(Error **errp)
+{
+ MigrationCapabilityStatusList *head = NULL, **tail = &head;
+ MigrationCapabilityStatus *caps;
+ MigrationState *s = migrate_get_current();
+ int i;
+
+ for (i = 0; i < MIGRATION_CAPABILITY__MAX; i++) {
+#ifndef CONFIG_LIVE_BLOCK_MIGRATION
+ if (i == MIGRATION_CAPABILITY_BLOCK) {
+ continue;
+ }
+#endif
+ caps = g_malloc0(sizeof(*caps));
+ caps->capability = i;
+ caps->state = s->capabilities[i];
+ QAPI_LIST_APPEND(tail, caps);
+ }
+
+ return head;
+}