]>
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); |
20a519a0 JQ |
34 | void qemu_savevm_state_header(QEMUFile *f); |
35 | int qemu_savevm_state_iterate(QEMUFile *f, bool postcopy); | |
36 | void qemu_savevm_state_cleanup(void); | |
37 | void qemu_savevm_state_complete_postcopy(QEMUFile *f); | |
a1fbe750 FZ |
38 | int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only, |
39 | bool inactivate_disks); | |
20a519a0 JQ |
40 | void qemu_savevm_state_pending(QEMUFile *f, uint64_t max_size, |
41 | uint64_t *res_non_postcopiable, | |
42 | uint64_t *res_postcopiable); | |
43 | void qemu_savevm_send_ping(QEMUFile *f, uint32_t value); | |
44 | void qemu_savevm_send_open_return_path(QEMUFile *f); | |
45 | int qemu_savevm_send_packaged(QEMUFile *f, const uint8_t *buf, size_t len); | |
46 | void qemu_savevm_send_postcopy_advise(QEMUFile *f); | |
47 | void qemu_savevm_send_postcopy_listen(QEMUFile *f); | |
48 | void qemu_savevm_send_postcopy_run(QEMUFile *f); | |
49 | ||
50 | void qemu_savevm_send_postcopy_ram_discard(QEMUFile *f, const char *name, | |
51 | uint16_t len, | |
52 | uint64_t *start_list, | |
53 | uint64_t *length_list); | |
54 | ||
55 | int qemu_loadvm_state(QEMUFile *f); | |
acb5ea86 | 56 | void qemu_loadvm_state_cleanup(void); |
20a519a0 JQ |
57 | |
58 | #endif |