root / migration.h @ 5bc89ef6
History | View | Annotate | Download (2.9 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 | 376253ec | aliguori | |
20 | 5bb7910a | aliguori | #define MIG_STATE_ERROR -1 |
21 | 5bb7910a | aliguori | #define MIG_STATE_COMPLETED 0 |
22 | 5bb7910a | aliguori | #define MIG_STATE_CANCELLED 1 |
23 | 5bb7910a | aliguori | #define MIG_STATE_ACTIVE 2 |
24 | 5bb7910a | aliguori | |
25 | 5bb7910a | aliguori | typedef struct MigrationState MigrationState; |
26 | 5bb7910a | aliguori | |
27 | 5bb7910a | aliguori | struct MigrationState
|
28 | 5bb7910a | aliguori | { |
29 | 5bb7910a | aliguori | /* FIXME: add more accessors to print migration info */
|
30 | 5bb7910a | aliguori | void (*cancel)(MigrationState *s);
|
31 | 5bb7910a | aliguori | int (*get_status)(MigrationState *s);
|
32 | 5bb7910a | aliguori | void (*release)(MigrationState *s);
|
33 | 5bb7910a | aliguori | }; |
34 | 5bb7910a | aliguori | |
35 | 065e2813 | aliguori | typedef struct FdMigrationState FdMigrationState; |
36 | 065e2813 | aliguori | |
37 | 065e2813 | aliguori | struct FdMigrationState
|
38 | 065e2813 | aliguori | { |
39 | 065e2813 | aliguori | MigrationState mig_state; |
40 | 065e2813 | aliguori | int64_t bandwidth_limit; |
41 | 065e2813 | aliguori | QEMUFile *file; |
42 | 065e2813 | aliguori | int fd;
|
43 | 731b0364 | aliguori | Monitor *mon_resume; |
44 | 065e2813 | aliguori | int state;
|
45 | 065e2813 | aliguori | int (*get_error)(struct FdMigrationState*); |
46 | 065e2813 | aliguori | int (*close)(struct FdMigrationState*); |
47 | 065e2813 | aliguori | int (*write)(struct FdMigrationState*, const void *, size_t); |
48 | 065e2813 | aliguori | void *opaque;
|
49 | 065e2813 | aliguori | }; |
50 | 065e2813 | aliguori | |
51 | 5bb7910a | aliguori | void qemu_start_incoming_migration(const char *uri); |
52 | 5bb7910a | aliguori | |
53 | f18c16de | Luiz Capitulino | void do_migrate(Monitor *mon, const QDict *qdict); |
54 | 5bb7910a | aliguori | |
55 | f96fc8a0 | Luiz Capitulino | void do_migrate_cancel(Monitor *mon, const QDict *qdict); |
56 | 5bb7910a | aliguori | |
57 | d54908a5 | Luiz Capitulino | void do_migrate_set_speed(Monitor *mon, const QDict *qdict); |
58 | 5bb7910a | aliguori | |
59 | a0a3fd60 | Glauber Costa | uint64_t migrate_max_downtime(void);
|
60 | a0a3fd60 | Glauber Costa | |
61 | d54908a5 | Luiz Capitulino | void do_migrate_set_downtime(Monitor *mon, const QDict *qdict); |
62 | 2ea42952 | Glauber Costa | |
63 | 376253ec | aliguori | void do_info_migrate(Monitor *mon);
|
64 | 5bb7910a | aliguori | |
65 | 065e2813 | aliguori | int exec_start_incoming_migration(const char *host_port); |
66 | 065e2813 | aliguori | |
67 | 065e2813 | aliguori | MigrationState *exec_start_outgoing_migration(const char *host_port, |
68 | 065e2813 | aliguori | int64_t bandwidth_limit, |
69 | 065e2813 | aliguori | int detach);
|
70 | 065e2813 | aliguori | |
71 | 34c9dd8e | aliguori | int tcp_start_incoming_migration(const char *host_port); |
72 | 34c9dd8e | aliguori | |
73 | 34c9dd8e | aliguori | MigrationState *tcp_start_outgoing_migration(const char *host_port, |
74 | 34c9dd8e | aliguori | int64_t bandwidth_limit, |
75 | 34c9dd8e | aliguori | int detach);
|
76 | 34c9dd8e | aliguori | |
77 | 4951f65b | Chris Lalancette | int unix_start_incoming_migration(const char *path); |
78 | 4951f65b | Chris Lalancette | |
79 | 4951f65b | Chris Lalancette | MigrationState *unix_start_outgoing_migration(const char *path, |
80 | 4951f65b | Chris Lalancette | int64_t bandwidth_limit, |
81 | 4951f65b | Chris Lalancette | int detach);
|
82 | 4951f65b | Chris Lalancette | |
83 | 5ac1fad3 | Paolo Bonzini | int fd_start_incoming_migration(const char *path); |
84 | 5ac1fad3 | Paolo Bonzini | |
85 | 5ac1fad3 | Paolo Bonzini | MigrationState *fd_start_outgoing_migration(Monitor *mon, |
86 | 5ac1fad3 | Paolo Bonzini | const char *fdname, |
87 | 5ac1fad3 | Paolo Bonzini | int64_t bandwidth_limit, |
88 | 5ac1fad3 | Paolo Bonzini | int detach);
|
89 | 5ac1fad3 | Paolo Bonzini | |
90 | 731b0364 | aliguori | void migrate_fd_monitor_suspend(FdMigrationState *s);
|
91 | 731b0364 | aliguori | |
92 | 065e2813 | aliguori | void migrate_fd_error(FdMigrationState *s);
|
93 | 065e2813 | aliguori | |
94 | 065e2813 | aliguori | void migrate_fd_cleanup(FdMigrationState *s);
|
95 | 065e2813 | aliguori | |
96 | 065e2813 | aliguori | void migrate_fd_put_notify(void *opaque); |
97 | 065e2813 | aliguori | |
98 | 065e2813 | aliguori | ssize_t migrate_fd_put_buffer(void *opaque, const void *data, size_t size); |
99 | 065e2813 | aliguori | |
100 | 065e2813 | aliguori | void migrate_fd_connect(FdMigrationState *s);
|
101 | 065e2813 | aliguori | |
102 | 065e2813 | aliguori | void migrate_fd_put_ready(void *opaque); |
103 | 065e2813 | aliguori | |
104 | 065e2813 | aliguori | int migrate_fd_get_status(MigrationState *mig_state);
|
105 | 065e2813 | aliguori | |
106 | 065e2813 | aliguori | void migrate_fd_cancel(MigrationState *mig_state);
|
107 | 065e2813 | aliguori | |
108 | 065e2813 | aliguori | void migrate_fd_release(MigrationState *mig_state);
|
109 | 065e2813 | aliguori | |
110 | 065e2813 | aliguori | void migrate_fd_wait_for_unfreeze(void *opaque); |
111 | 065e2813 | aliguori | |
112 | 065e2813 | aliguori | int migrate_fd_close(void *opaque); |
113 | 065e2813 | aliguori | |
114 | 065e2813 | aliguori | static inline FdMigrationState *migrate_to_fms(MigrationState *mig_state) |
115 | 065e2813 | aliguori | { |
116 | 065e2813 | aliguori | return container_of(mig_state, FdMigrationState, mig_state);
|
117 | 065e2813 | aliguori | } |
118 | 065e2813 | aliguori | |
119 | 5bb7910a | aliguori | #endif |