]>
Commit | Line | Data |
---|---|---|
20a519a0 JQ |
1 | /* |
2 | * QEMU save vm functions | |
3 | * | |
4 | * Copyright (c) 2003-2008 Fabrice Bellard | |
5 | * Copyright (c) 2009-2017 Red Hat Inc | |
6 | * | |
7 | * Authors: | |
8 | * Juan Quintela <quintela@redhat.com> | |
9 | * | |
10 | * This work is licensed under the terms of the GNU GPL, version 2 or later. | |
11 | * See the COPYING file in the top-level directory. | |
12 | */ | |
13 | ||
14 | #ifndef MIGRATION_SAVEVM_H | |
15 | #define MIGRATION_SAVEVM_H | |
16 | ||
c3d2e2e7 JQ |
17 | #define QEMU_VM_FILE_MAGIC 0x5145564d |
18 | #define QEMU_VM_FILE_VERSION_COMPAT 0x00000002 | |
19 | #define QEMU_VM_FILE_VERSION 0x00000003 | |
20 | ||
21 | #define QEMU_VM_EOF 0x00 | |
22 | #define QEMU_VM_SECTION_START 0x01 | |
23 | #define QEMU_VM_SECTION_PART 0x02 | |
24 | #define QEMU_VM_SECTION_END 0x03 | |
25 | #define QEMU_VM_SECTION_FULL 0x04 | |
26 | #define QEMU_VM_SUBSECTION 0x05 | |
27 | #define QEMU_VM_VMDESCRIPTION 0x06 | |
28 | #define QEMU_VM_CONFIGURATION 0x07 | |
29 | #define QEMU_VM_COMMAND 0x08 | |
30 | #define QEMU_VM_SECTION_FOOTER 0x7e | |
31 | ||
20a519a0 | 32 | bool qemu_savevm_state_blocked(Error **errp); |
3af8554b | 33 | void qemu_savevm_non_migratable_list(strList **reasons); |
08fc4cb5 | 34 | int qemu_savevm_state_prepare(Error **errp); |
9907e842 | 35 | void qemu_savevm_state_setup(QEMUFile *f); |
c7e0acd5 | 36 | bool qemu_savevm_state_guest_unplug_pending(void); |
d1b8eadb | 37 | int qemu_savevm_state_resume_prepare(MigrationState *s); |
20a519a0 JQ |
38 | void qemu_savevm_state_header(QEMUFile *f); |
39 | int qemu_savevm_state_iterate(QEMUFile *f, bool postcopy); | |
40 | void qemu_savevm_state_cleanup(void); | |
41 | void qemu_savevm_state_complete_postcopy(QEMUFile *f); | |
a1fbe750 FZ |
42 | int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only, |
43 | bool inactivate_disks); | |
24beea4e JQ |
44 | void qemu_savevm_state_pending_exact(uint64_t *must_precopy, |
45 | uint64_t *can_postcopy); | |
46 | void qemu_savevm_state_pending_estimate(uint64_t *must_precopy, | |
47 | uint64_t *can_postcopy); | |
20a519a0 JQ |
48 | void qemu_savevm_send_ping(QEMUFile *f, uint32_t value); |
49 | void qemu_savevm_send_open_return_path(QEMUFile *f); | |
50 | int qemu_savevm_send_packaged(QEMUFile *f, const uint8_t *buf, size_t len); | |
51 | void qemu_savevm_send_postcopy_advise(QEMUFile *f); | |
52 | void qemu_savevm_send_postcopy_listen(QEMUFile *f); | |
53 | void qemu_savevm_send_postcopy_run(QEMUFile *f); | |
3f5875ec | 54 | void qemu_savevm_send_postcopy_resume(QEMUFile *f); |
f25d4225 | 55 | void qemu_savevm_send_recv_bitmap(QEMUFile *f, char *block_name); |
20a519a0 JQ |
56 | |
57 | void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, const char *name, | |
58 | uint16_t len, | |
59 | uint64_t *start_list, | |
60 | uint64_t *length_list); | |
aad555c2 | 61 | void qemu_savevm_send_colo_enable(QEMUFile *f); |
3f6df99d ZC |
62 | void qemu_savevm_live_state(QEMUFile *f); |
63 | int qemu_save_device_state(QEMUFile *f); | |
20a519a0 JQ |
64 | |
65 | int qemu_loadvm_state(QEMUFile *f); | |
acb5ea86 | 66 | void qemu_loadvm_state_cleanup(void); |
3f6df99d ZC |
67 | int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis); |
68 | int qemu_load_device_state(QEMUFile *f); | |
1b4adb10 | 69 | int qemu_loadvm_approve_switchover(void); |
8518278a AG |
70 | int qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f, |
71 | bool in_postcopy, bool inactivate_disks); | |
20a519a0 JQ |
72 | |
73 | #endif |