Re: [Qemu-devel] [PATCH 16/22] migration: Move exported functions to the end of the file
2011/2/23 Juan Quintela quint...@redhat.com: This means we can remove the two forward declarations. Signed-off-by: Juan Quintela quint...@redhat.com --- migration.c | 188 +-- 1 files changed, 92 insertions(+), 96 deletions(-) diff --git a/migration.c b/migration.c index 92bff01..d7dfe1e 100644 --- a/migration.c +++ b/migration.c @@ -76,90 +76,6 @@ void process_incoming_migration(QEMUFile *f) vm_start(); } -static MigrationState *migrate_create_state(Monitor *mon, int64_t bandwidth_limit, - int detach, int blk, int inc); - -int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) -{ - MigrationState *s = NULL; - const char *p; - int detach = qdict_get_try_bool(qdict, detach, 0); - int blk = qdict_get_try_bool(qdict, blk, 0); - int inc = qdict_get_try_bool(qdict, inc, 0); - const char *uri = qdict_get_str(qdict, uri); - int ret; - - if (current_migration - current_migration-state == MIG_STATE_ACTIVE) { - monitor_printf(mon, migration already in progress\n); - return -1; - } - - if (qemu_savevm_state_blocked(mon)) { - return -1; - } - - s = migrate_create_state(mon, max_throttle, detach, blk, inc); - - if (strstart(uri, tcp:, p)) { - ret = tcp_start_outgoing_migration(s, p); -#if !defined(WIN32) - } else if (strstart(uri, exec:, p)) { - ret = exec_start_outgoing_migration(s, p); - } else if (strstart(uri, unix:, p)) { - ret = unix_start_outgoing_migration(s, p); - } else if (strstart(uri, fd:, p)) { - ret = fd_start_outgoing_migration(s, p); -#endif - } else { - monitor_printf(mon, unknown migration protocol: %s\n, uri); - ret = -EINVAL; - goto free_migrate_state; - } - - if (ret 0) { - monitor_printf(mon, migration failed\n); - goto free_migrate_state; - } - - qemu_free(current_migration); - current_migration = s; - notifier_list_notify(migration_state_notifiers); - return 0; -free_migrate_state: - qemu_free(s); - return -1; -} - -static void migrate_fd_cancel(MigrationState *s); - -int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data) -{ - if (current_migration) - migrate_fd_cancel(current_migration); - - return 0; -} - -int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data) -{ - int64_t d; - MigrationState *s; - - d = qdict_get_int(qdict, value); - if (d 0) { - d = 0; - } - max_throttle = d; - - s = current_migration; - if (s s-file) { - qemu_file_set_rate_limit(s-file, max_throttle); - } - - return 0; -} - /* amount of nanoseconds we are willing to wait for migration to be down. * the choice of nanoseconds is because it is the maximum resolution that * get_clock() can achieve. It is an internal measure. All user-visible @@ -171,18 +87,6 @@ uint64_t migrate_max_downtime(void) return max_downtime; } -int do_migrate_set_downtime(Monitor *mon, const QDict *qdict, - QObject **ret_data) -{ - double d; - - d = qdict_get_double(qdict, value) * 1e9; - d = MAX(0, MIN(UINT64_MAX, d)); - max_downtime = (uint64_t)d; - - return 0; -} - static void migrate_print_status(Monitor *mon, const char *name, const QDict *status_dict) { @@ -483,3 +387,95 @@ static MigrationState *migrate_create_state(Monitor *mon, int64_t bandwidth_limi return s; } + +int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) +{ + MigrationState *s = NULL; + const char *p; + int detach = qdict_get_try_bool(qdict, detach, 0); + int blk = qdict_get_try_bool(qdict, blk, 0); + int inc = qdict_get_try_bool(qdict, inc, 0); + const char *uri = qdict_get_str(qdict, uri); + int ret; + + if (current_migration + current_migration-state == MIG_STATE_ACTIVE) { + monitor_printf(mon, migration already in progress\n); + return -1; + } + + if (qemu_savevm_state_blocked(mon)) { + return -1; + } + + s = migrate_create_state(mon, max_throttle, detach, blk, inc); + + if (strstart(uri, tcp:, p)) { + ret = tcp_start_outgoing_migration(s, p); +#if !defined(WIN32) + } else if (strstart(uri, exec:, p)) { + ret = exec_start_outgoing_migration(s, p); + } else if (strstart(uri, unix:, p)) { + ret = unix_start_outgoing_migration(s, p); + } else if (strstart(uri, fd:, p)) { + ret = fd_start_outgoing_migration(s, p); +#endif + } else { + monitor_printf(mon, unknown migration protocol: %s\n, uri); + ret = -EINVAL; + goto free_migrate_state; + } + + if (ret 0) { +
[Qemu-devel] [PATCH 16/22] migration: Move exported functions to the end of the file
This means we can remove the two forward declarations. Signed-off-by: Juan Quintela quint...@redhat.com --- migration.c | 188 +-- 1 files changed, 92 insertions(+), 96 deletions(-) diff --git a/migration.c b/migration.c index 92bff01..d7dfe1e 100644 --- a/migration.c +++ b/migration.c @@ -76,90 +76,6 @@ void process_incoming_migration(QEMUFile *f) vm_start(); } -static MigrationState *migrate_create_state(Monitor *mon, int64_t bandwidth_limit, -int detach, int blk, int inc); - -int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) -{ -MigrationState *s = NULL; -const char *p; -int detach = qdict_get_try_bool(qdict, detach, 0); -int blk = qdict_get_try_bool(qdict, blk, 0); -int inc = qdict_get_try_bool(qdict, inc, 0); -const char *uri = qdict_get_str(qdict, uri); -int ret; - -if (current_migration -current_migration-state == MIG_STATE_ACTIVE) { -monitor_printf(mon, migration already in progress\n); -return -1; -} - -if (qemu_savevm_state_blocked(mon)) { -return -1; -} - -s = migrate_create_state(mon, max_throttle, detach, blk, inc); - -if (strstart(uri, tcp:, p)) { -ret = tcp_start_outgoing_migration(s, p); -#if !defined(WIN32) -} else if (strstart(uri, exec:, p)) { -ret = exec_start_outgoing_migration(s, p); -} else if (strstart(uri, unix:, p)) { -ret = unix_start_outgoing_migration(s, p); -} else if (strstart(uri, fd:, p)) { -ret = fd_start_outgoing_migration(s, p); -#endif -} else { -monitor_printf(mon, unknown migration protocol: %s\n, uri); -ret = -EINVAL; -goto free_migrate_state; -} - -if (ret 0) { -monitor_printf(mon, migration failed\n); -goto free_migrate_state; -} - -qemu_free(current_migration); -current_migration = s; -notifier_list_notify(migration_state_notifiers); -return 0; -free_migrate_state: -qemu_free(s); -return -1; -} - -static void migrate_fd_cancel(MigrationState *s); - -int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data) -{ -if (current_migration) -migrate_fd_cancel(current_migration); - -return 0; -} - -int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data) -{ -int64_t d; -MigrationState *s; - -d = qdict_get_int(qdict, value); -if (d 0) { -d = 0; -} -max_throttle = d; - -s = current_migration; -if (s s-file) { -qemu_file_set_rate_limit(s-file, max_throttle); -} - -return 0; -} - /* amount of nanoseconds we are willing to wait for migration to be down. * the choice of nanoseconds is because it is the maximum resolution that * get_clock() can achieve. It is an internal measure. All user-visible @@ -171,18 +87,6 @@ uint64_t migrate_max_downtime(void) return max_downtime; } -int do_migrate_set_downtime(Monitor *mon, const QDict *qdict, -QObject **ret_data) -{ -double d; - -d = qdict_get_double(qdict, value) * 1e9; -d = MAX(0, MIN(UINT64_MAX, d)); -max_downtime = (uint64_t)d; - -return 0; -} - static void migrate_print_status(Monitor *mon, const char *name, const QDict *status_dict) { @@ -483,3 +387,95 @@ static MigrationState *migrate_create_state(Monitor *mon, int64_t bandwidth_limi return s; } + +int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) +{ +MigrationState *s = NULL; +const char *p; +int detach = qdict_get_try_bool(qdict, detach, 0); +int blk = qdict_get_try_bool(qdict, blk, 0); +int inc = qdict_get_try_bool(qdict, inc, 0); +const char *uri = qdict_get_str(qdict, uri); +int ret; + +if (current_migration +current_migration-state == MIG_STATE_ACTIVE) { +monitor_printf(mon, migration already in progress\n); +return -1; +} + +if (qemu_savevm_state_blocked(mon)) { +return -1; +} + +s = migrate_create_state(mon, max_throttle, detach, blk, inc); + +if (strstart(uri, tcp:, p)) { +ret = tcp_start_outgoing_migration(s, p); +#if !defined(WIN32) +} else if (strstart(uri, exec:, p)) { +ret = exec_start_outgoing_migration(s, p); +} else if (strstart(uri, unix:, p)) { +ret = unix_start_outgoing_migration(s, p); +} else if (strstart(uri, fd:, p)) { +ret = fd_start_outgoing_migration(s, p); +#endif +} else { +monitor_printf(mon, unknown migration protocol: %s\n, uri); +ret = -EINVAL; +goto free_migrate_state; +} + +if (ret 0) { +monitor_printf(mon, migration failed\n); +goto free_migrate_state; +} + +qemu_free(current_migration); +current_migration = s; +notifier_list_notify(migration_state_notifiers); +return 0;