15d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/*
25d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner * QEMU live migration
35d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *
45d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner * Copyright IBM, Corp. 2008
55d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *
65d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner * Authors:
75d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *  Anthony Liguori   <aliguori@us.ibm.com>
85d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *
95d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner * This work is licensed under the terms of the GNU GPL, version 2.  See
105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner * the COPYING file in the top-level directory.
115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *
125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner */
135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#include "qemu-common.h"
1528a09b6fe8d8f3e92ffee9263609a6da881b8818David 'Digit' Turner#include "migration/migration.h"
166af6765e2f3bc930d0dce21d752bea570a1b1362David 'Digit' Turner#include "monitor/monitor.h"
1734c48ff1e3ad5cd2084ca40188754d45f423750bDavid 'Digit' Turner#include "sysemu/sysemu.h"
18e1e03df288d5a44bfbffbd86588395c7cbbc27dfDavid 'Digit' Turner#include "block/block.h"
19d0edecb426b34ddb9b10b81dea19aee04a61a385David 'Digit' Turner#include "qemu/sockets.h"
205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner//#define DEBUG_MIGRATION
225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#ifdef DEBUG_MIGRATION
245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define dprintf(fmt, ...) \
255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner    do { printf("migration: " fmt, ## __VA_ARGS__); } while (0)
265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#else
275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define dprintf(fmt, ...) \
285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner    do { } while (0)
295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#endif
305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid qemu_start_incoming_migration(const char *uri)
325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{
335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner    fprintf(stderr, "migration not supported !!\n");
345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner}
355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid do_migrate(Monitor *mon, int detach, const char *uri)
375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{
385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	return;
395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner}
405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid do_migrate_cancel(Monitor *mon)
425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{
435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	return;
445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner}
455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid do_migrate_set_speed(Monitor *mon, const char *value)
475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{
485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	return;
495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner}
505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turneruint64_t migrate_max_downtime(void)
525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{
535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner    return 0;
545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner}
555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid do_migrate_set_downtime(Monitor *mon, const char *value)
575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{
585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner    return;
595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner}
605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid do_info_migrate(Monitor *mon)
625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{
635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	monitor_printf(mon, "No Migration support\n");
645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner}
65