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