Signed-off-by: Lei Li <address@hidden>
---
qemu-options.hx | 9 +++++++++
vl.c | 14 ++++++++++++++
2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/qemu-options.hx b/qemu-options.hx
index 8355f9b..a975e83 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -2912,6 +2912,15 @@ STEXI
Prepare for incoming migration, listen on @var{port}.
ETEXI
+DEF("incoming-local", HAS_ARG, QEMU_OPTION_incoming_local, \
+ "-incoming-local p prepare for localhost incoming migration, listen on domain
unix socket p\n",
+ QEMU_ARCH_ALL)
+STEXI
address@hidden -incoming-local @var{port}
address@hidden -incoming-local
+Prepare for localhost incoming migration, listen on @var{port}
+ETEXI
+
DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
"-nodefaults don't create default devices\n", QEMU_ARCH_ALL)
STEXI
diff --git a/vl.c b/vl.c
index 767e020..b820db5 100644
--- a/vl.c
+++ b/vl.c
@@ -2854,6 +2854,7 @@ int main(int argc, char **argv, char **envp)
const char *vga_model = "none";
const char *pid_file = NULL;
const char *incoming = NULL;
+ const char *incoming_local = NULL;
#ifdef CONFIG_VNC
int show_vnc_port = 0;
#endif
@@ -3691,6 +3692,10 @@ int main(int argc, char **argv, char **envp)
incoming = optarg;
runstate_set(RUN_STATE_INMIGRATE);
break;
+ case QEMU_OPTION_incoming_local:
+ incoming_local = optarg;
+ runstate_set(RUN_STATE_INMIGRATE);
+ break;
case QEMU_OPTION_nodefaults:
default_serial = 0;
default_parallel = 0;
@@ -4377,6 +4382,15 @@ int main(int argc, char **argv, char **envp)
error_free(local_err);
exit(1);
}
+ } else if (incoming_local) {
+ Error *local_err = NULL;
+ qemu_start_local_incoming_migration(incoming_local, &local_err);
+ if (local_err) {
+ fprintf(stderr, "-incoming_local %s: %s\n", incoming_local,
+ error_get_pretty(local_err));
+ error_free(local_err);
+ exit(1);
+ }
} else if (autostart) {
vm_start();
}