root / migration.h @ 61669f9a
History | View | Annotate | Download (2.8 kB)
1 | 5bb7910a | aliguori | /*
|
---|---|---|---|
2 | 5bb7910a | aliguori | * QEMU live migration
|
3 | 5bb7910a | aliguori | *
|
4 | 5bb7910a | aliguori | * Copyright IBM, Corp. 2008
|
5 | 5bb7910a | aliguori | *
|
6 | 5bb7910a | aliguori | * Authors:
|
7 | 5bb7910a | aliguori | * Anthony Liguori <aliguori@us.ibm.com>
|
8 | 5bb7910a | aliguori | *
|
9 | 5bb7910a | aliguori | * This work is licensed under the terms of the GNU GPL, version 2. See
|
10 | 5bb7910a | aliguori | * the COPYING file in the top-level directory.
|
11 | 5bb7910a | aliguori | *
|
12 | 5bb7910a | aliguori | */
|
13 | 5bb7910a | aliguori | |
14 | 5bb7910a | aliguori | #ifndef QEMU_MIGRATION_H
|
15 | 5bb7910a | aliguori | #define QEMU_MIGRATION_H
|
16 | 5bb7910a | aliguori | |
17 | f96fc8a0 | Luiz Capitulino | #include "qdict.h" |
18 | 376253ec | aliguori | #include "qemu-common.h" |
19 | 99a0db9b | Gerd Hoffmann | #include "notify.h" |
20 | fa2756b7 | Anthony Liguori | #include "error.h" |
21 | 376253ec | aliguori | |
22 | 22f00a44 | Juan Quintela | typedef struct MigrationState MigrationState; |
23 | dc7acc61 | Juan Quintela | |
24 | 22f00a44 | Juan Quintela | struct MigrationState
|
25 | 065e2813 | aliguori | { |
26 | 065e2813 | aliguori | int64_t bandwidth_limit; |
27 | 065e2813 | aliguori | QEMUFile *file; |
28 | 065e2813 | aliguori | int fd;
|
29 | f327aa0c | Jan Kiszka | Monitor *mon; |
30 | 065e2813 | aliguori | int state;
|
31 | 22f00a44 | Juan Quintela | int (*get_error)(MigrationState *s);
|
32 | 22f00a44 | Juan Quintela | int (*close)(MigrationState *s);
|
33 | 22f00a44 | Juan Quintela | int (*write)(MigrationState *s, const void *buff, size_t size); |
34 | 065e2813 | aliguori | void *opaque;
|
35 | 3f77fc55 | Juan Quintela | int blk;
|
36 | 3f77fc55 | Juan Quintela | int shared;
|
37 | 065e2813 | aliguori | }; |
38 | 065e2813 | aliguori | |
39 | 511c0231 | Juan Quintela | void process_incoming_migration(QEMUFile *f);
|
40 | 511c0231 | Juan Quintela | |
41 | 8ca5e801 | Juan Quintela | int qemu_start_incoming_migration(const char *uri); |
42 | 5bb7910a | aliguori | |
43 | b5d17adb | Luiz Capitulino | int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data); |
44 | 5bb7910a | aliguori | |
45 | ef4b7eee | Luiz Capitulino | int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data); |
46 | 5bb7910a | aliguori | |
47 | ef4b7eee | Luiz Capitulino | int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data); |
48 | 5bb7910a | aliguori | |
49 | a0a3fd60 | Glauber Costa | uint64_t migrate_max_downtime(void);
|
50 | a0a3fd60 | Glauber Costa | |
51 | ef4b7eee | Luiz Capitulino | int do_migrate_set_downtime(Monitor *mon, const QDict *qdict, |
52 | ef4b7eee | Luiz Capitulino | QObject **ret_data); |
53 | 2ea42952 | Glauber Costa | |
54 | c86a6683 | Luiz Capitulino | void do_info_migrate_print(Monitor *mon, const QObject *data); |
55 | c86a6683 | Luiz Capitulino | |
56 | c86a6683 | Luiz Capitulino | void do_info_migrate(Monitor *mon, QObject **ret_data);
|
57 | 5bb7910a | aliguori | |
58 | 065e2813 | aliguori | int exec_start_incoming_migration(const char *host_port); |
59 | 065e2813 | aliguori | |
60 | 07af4452 | Juan Quintela | int exec_start_outgoing_migration(MigrationState *s, const char *host_port); |
61 | 065e2813 | aliguori | |
62 | 34c9dd8e | aliguori | int tcp_start_incoming_migration(const char *host_port); |
63 | 34c9dd8e | aliguori | |
64 | 07af4452 | Juan Quintela | int tcp_start_outgoing_migration(MigrationState *s, const char *host_port); |
65 | 34c9dd8e | aliguori | |
66 | 4951f65b | Chris Lalancette | int unix_start_incoming_migration(const char *path); |
67 | 4951f65b | Chris Lalancette | |
68 | 07af4452 | Juan Quintela | int unix_start_outgoing_migration(MigrationState *s, const char *path); |
69 | 4951f65b | Chris Lalancette | |
70 | 5ac1fad3 | Paolo Bonzini | int fd_start_incoming_migration(const char *path); |
71 | 5ac1fad3 | Paolo Bonzini | |
72 | 07af4452 | Juan Quintela | int fd_start_outgoing_migration(MigrationState *s, const char *fdname); |
73 | 5ac1fad3 | Paolo Bonzini | |
74 | 22f00a44 | Juan Quintela | void migrate_fd_error(MigrationState *s);
|
75 | 065e2813 | aliguori | |
76 | 22f00a44 | Juan Quintela | void migrate_fd_connect(MigrationState *s);
|
77 | 065e2813 | aliguori | |
78 | 99a0db9b | Gerd Hoffmann | void add_migration_state_change_notifier(Notifier *notify);
|
79 | 99a0db9b | Gerd Hoffmann | void remove_migration_state_change_notifier(Notifier *notify);
|
80 | afe2df69 | Gerd Hoffmann | bool migration_is_active(MigrationState *);
|
81 | 7073693b | Juan Quintela | bool migration_has_finished(MigrationState *);
|
82 | afe2df69 | Gerd Hoffmann | bool migration_has_failed(MigrationState *);
|
83 | 99a0db9b | Gerd Hoffmann | |
84 | adc56dda | Blue Swirl | uint64_t ram_bytes_remaining(void);
|
85 | adc56dda | Blue Swirl | uint64_t ram_bytes_transferred(void);
|
86 | adc56dda | Blue Swirl | uint64_t ram_bytes_total(void);
|
87 | adc56dda | Blue Swirl | |
88 | adc56dda | Blue Swirl | int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque); |
89 | adc56dda | Blue Swirl | int ram_load(QEMUFile *f, void *opaque, int version_id); |
90 | adc56dda | Blue Swirl | |
91 | adc56dda | Blue Swirl | extern int incoming_expected; |
92 | adc56dda | Blue Swirl | |
93 | fa2756b7 | Anthony Liguori | /**
|
94 | fa2756b7 | Anthony Liguori | * @migrate_add_blocker - prevent migration from proceeding
|
95 | fa2756b7 | Anthony Liguori | *
|
96 | fa2756b7 | Anthony Liguori | * @reason - an error to be returned whenever migration is attempted
|
97 | fa2756b7 | Anthony Liguori | */
|
98 | fa2756b7 | Anthony Liguori | void migrate_add_blocker(Error *reason);
|
99 | fa2756b7 | Anthony Liguori | |
100 | fa2756b7 | Anthony Liguori | /**
|
101 | fa2756b7 | Anthony Liguori | * @migrate_del_blocker - remove a blocking error from migration
|
102 | fa2756b7 | Anthony Liguori | *
|
103 | fa2756b7 | Anthony Liguori | * @reason - the error blocking migration
|
104 | fa2756b7 | Anthony Liguori | */
|
105 | fa2756b7 | Anthony Liguori | void migrate_del_blocker(Error *reason);
|
106 | fa2756b7 | Anthony Liguori | |
107 | 5bb7910a | aliguori | #endif |