]>
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 <[email protected]> | |
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); |
9907e842 | 33 | void qemu_savevm_state_setup(QEMUFile *f); |
c7e0acd5 JF |
34 | int qemu_savevm_nr_failover_devices(void); |
35 | bool qemu_savevm_state_guest_unplug_pending(void); | |
d1b8eadb | 36 | int qemu_savevm_state_resume_prepare(MigrationState *s); |
20a519a0 JQ |
37 | void qemu_savevm_state_header(QEMUFile *f); |
38 | int qemu_savevm_state_iterate(QEMUFile *f, bool postcopy); | |
39 | void qemu_savevm_state_cleanup(void); | |
40 | void qemu_savevm_state_complete_postcopy(QEMUFile *f); | |
a1fbe750 FZ |
41 | int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only, |
42 | bool inactivate_disks); | |
20a519a0 | 43 | void qemu_savevm_state_pending(QEMUFile *f, uint64_t max_size, |
47995026 VSO |
44 | uint64_t *res_precopy_only, |
45 | uint64_t *res_compatible, | |
46 | uint64_t *res_postcopy_only); | |
20a519a0 JQ |
47 | void qemu_savevm_send_ping(QEMUFile *f, uint32_t value); |
48 | void qemu_savevm_send_open_return_path(QEMUFile *f); | |
49 | int qemu_savevm_send_packaged(QEMUFile *f, const uint8_t *buf, size_t len); | |
50 | void qemu_savevm_send_postcopy_advise(QEMUFile *f); | |
51 | void qemu_savevm_send_postcopy_listen(QEMUFile *f); | |
52 | void qemu_savevm_send_postcopy_run(QEMUFile *f); | |
3f5875ec | 53 | void qemu_savevm_send_postcopy_resume(QEMUFile *f); |
f25d4225 | 54 | void qemu_savevm_send_recv_bitmap(QEMUFile *f, char *block_name); |
20a519a0 JQ |
55 | |
56 | void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, const char *name, | |
57 | uint16_t len, | |
58 | uint64_t *start_list, | |
59 | uint64_t *length_list); | |
aad555c2 | 60 | void qemu_savevm_send_colo_enable(QEMUFile *f); |
3f6df99d ZC |
61 | void qemu_savevm_live_state(QEMUFile *f); |
62 | int qemu_save_device_state(QEMUFile *f); | |
20a519a0 JQ |
63 | |
64 | int qemu_loadvm_state(QEMUFile *f); | |
acb5ea86 | 65 | void qemu_loadvm_state_cleanup(void); |
3f6df99d ZC |
66 | int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis); |
67 | int qemu_load_device_state(QEMUFile *f); | |
20a519a0 JQ |
68 | |
69 | #endif |