@@ -18,6 +18,11 @@
#ifndef QEMU_SPICE_MODULE_H
#define QEMU_SPICE_MODULE_H
+struct QemuSpiceOps {
+ int (*migrate_info)(const char *h, int p, int t, const char *s);
+};
+
extern int using_spice;
+extern struct QemuSpiceOps qemu_spice;
#endif
@@ -60,11 +60,6 @@ static inline int qemu_spice_set_pw_expire(time_t expires)
{
return -1;
}
-static inline int qemu_spice_migrate_info(const char *h, int p, int t,
- const char *s)
-{
- return -1;
-}
static inline int qemu_spice_display_add_client(int csock, int skipauth,
int tls)
@@ -437,7 +437,7 @@ void qmp_client_migrate_info(const char *protocol, const char *hostname,
return;
}
- if (qemu_spice_migrate_info(hostname,
+ if (qemu_spice.migrate_info(hostname,
has_port ? port : -1,
has_tls_port ? tls_port : -1,
cert_subject)) {
@@ -993,8 +993,13 @@ int qemu_spice_display_is_running(SimpleSpiceDisplay *ssd)
return spice_display_is_running;
}
+static struct QemuSpiceOps real_spice_ops = {
+ .migrate_info = qemu_spice_migrate_info,
+};
+
static void spice_register_config(void)
{
+ qemu_spice = real_spice_ops;
qemu_add_opts(&qemu_spice_opts);
}
opts_init(spice_register_config);
@@ -21,3 +21,13 @@
#include "ui/qemu-spice-module.h"
int using_spice;
+
+static int qemu_spice_migrate_info_stub(const char *h, int p, int t,
+ const char *s)
+{
+ return -1;
+}
+
+struct QemuSpiceOps qemu_spice = {
+ .migrate_info = qemu_spice_migrate_info_stub,
+};