xref: /qemu/include/migration/snapshot.h (revision 2f3e5e4c08c43daeec144adeeae9138176039b60)
1  /*
2   * QEMU snapshots
3   *
4   * Copyright (c) 2004-2008 Fabrice Bellard
5   * Copyright (c) 2009-2015 Red Hat Inc
6   *
7   * Authors:
8   *  Juan Quintela <quintela@redhat.com>
9   *
10   *
11   * This work is licensed under the terms of the GNU GPL, version 2 or later.
12   * See the COPYING file in the top-level directory.
13   */
14  
15  #ifndef QEMU_MIGRATION_SNAPSHOT_H
16  #define QEMU_MIGRATION_SNAPSHOT_H
17  
18  #include "qapi/qapi-builtin-types.h"
19  #include "qapi/qapi-types-run-state.h"
20  
21  /**
22   * save_snapshot: Save an internal snapshot.
23   * @name: name of internal snapshot
24   * @overwrite: replace existing snapshot with @name
25   * @vmstate: blockdev node name to store VM state in
26   * @has_devices: whether to use explicit device list
27   * @devices: explicit device list to snapshot
28   * @errp: pointer to error object
29   * On success, return %true.
30   * On failure, store an error through @errp and return %false.
31   */
32  bool save_snapshot(const char *name, bool overwrite,
33                     const char *vmstate,
34                     bool has_devices, strList *devices,
35                     Error **errp);
36  
37  /**
38   * load_snapshot: Load an internal snapshot.
39   * @name: name of internal snapshot
40   * @vmstate: blockdev node name to load VM state from
41   * @has_devices: whether to use explicit device list
42   * @devices: explicit device list to snapshot
43   * @errp: pointer to error object
44   * On success, return %true.
45   * On failure, store an error through @errp and return %false.
46   */
47  bool load_snapshot(const char *name,
48                     const char *vmstate,
49                     bool has_devices, strList *devices,
50                     Error **errp);
51  
52  /**
53   * delete_snapshot: Delete a snapshot.
54   * @name: path to snapshot
55   * @has_devices: whether to use explicit device list
56   * @devices: explicit device list to snapshot
57   * @errp: pointer to error object
58   * On success, return %true.
59   * On failure, store an error through @errp and return %false.
60   */
61  bool delete_snapshot(const char *name,
62                      bool has_devices, strList *devices,
63                      Error **errp);
64  
65  /**
66   * load_snapshot_resume: Restore runstate after loading snapshot.
67   * @state: state to restore
68   */
69  void load_snapshot_resume(RunState state);
70  
71  #endif
72