qemu/migration/savevm.h
<<
>>
Prefs
   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
  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
  32bool qemu_savevm_state_blocked(Error **errp);
  33void qemu_savevm_non_migratable_list(strList **reasons);
  34void qemu_savevm_state_setup(QEMUFile *f);
  35bool qemu_savevm_state_guest_unplug_pending(void);
  36int qemu_savevm_state_resume_prepare(MigrationState *s);
  37void qemu_savevm_state_header(QEMUFile *f);
  38int qemu_savevm_state_iterate(QEMUFile *f, bool postcopy);
  39void qemu_savevm_state_cleanup(void);
  40void qemu_savevm_state_complete_postcopy(QEMUFile *f);
  41int qemu_savevm_state_complete_precopy(QEMUFile *f, bool iterable_only,
  42                                       bool inactivate_disks);
  43void qemu_savevm_state_pending(QEMUFile *f, uint64_t max_size,
  44                               uint64_t *res_precopy_only,
  45                               uint64_t *res_compatible,
  46                               uint64_t *res_postcopy_only);
  47void qemu_savevm_send_ping(QEMUFile *f, uint32_t value);
  48void qemu_savevm_send_open_return_path(QEMUFile *f);
  49int qemu_savevm_send_packaged(QEMUFile *f, const uint8_t *buf, size_t len);
  50void qemu_savevm_send_postcopy_advise(QEMUFile *f);
  51void qemu_savevm_send_postcopy_listen(QEMUFile *f);
  52void qemu_savevm_send_postcopy_run(QEMUFile *f);
  53void qemu_savevm_send_postcopy_resume(QEMUFile *f);
  54void qemu_savevm_send_recv_bitmap(QEMUFile *f, char *block_name);
  55
  56void 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);
  60void qemu_savevm_send_colo_enable(QEMUFile *f);
  61void qemu_savevm_live_state(QEMUFile *f);
  62int qemu_save_device_state(QEMUFile *f);
  63
  64int qemu_loadvm_state(QEMUFile *f);
  65void qemu_loadvm_state_cleanup(void);
  66int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis);
  67int qemu_load_device_state(QEMUFile *f);
  68int qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f,
  69        bool in_postcopy, bool inactivate_disks);
  70
  71#endif
  72