xref: /qemu/include/migration/snapshot.h (revision c8193acc078e297fd46b6229e02b819b65c6702e)
15e22479aSJuan Quintela /*
25e22479aSJuan Quintela  * QEMU snapshots
35e22479aSJuan Quintela  *
45e22479aSJuan Quintela  * Copyright (c) 2004-2008 Fabrice Bellard
55e22479aSJuan Quintela  * Copyright (c) 2009-2015 Red Hat Inc
65e22479aSJuan Quintela  *
75e22479aSJuan Quintela  * Authors:
85e22479aSJuan Quintela  *  Juan Quintela <quintela@redhat.com>
95e22479aSJuan Quintela  *
105e22479aSJuan Quintela  *
115e22479aSJuan Quintela  * This work is licensed under the terms of the GNU GPL, version 2 or later.
125e22479aSJuan Quintela  * See the COPYING file in the top-level directory.
135e22479aSJuan Quintela  */
145e22479aSJuan Quintela 
155e22479aSJuan Quintela #ifndef QEMU_MIGRATION_SNAPSHOT_H
165e22479aSJuan Quintela #define QEMU_MIGRATION_SNAPSHOT_H
175e22479aSJuan Quintela 
18f1a9fcddSDaniel P. Berrangé #include "qapi/qapi-builtin-types.h"
19*58b10570SSteve Sistare #include "qapi/qapi-types-run-state.h"
20f1a9fcddSDaniel P. Berrangé 
217ea14df2SPhilippe Mathieu-Daudé /**
227ea14df2SPhilippe Mathieu-Daudé  * save_snapshot: Save an internal snapshot.
237ea14df2SPhilippe Mathieu-Daudé  * @name: name of internal snapshot
24f781f841SDaniel P. Berrangé  * @overwrite: replace existing snapshot with @name
25f1a9fcddSDaniel P. Berrangé  * @vmstate: blockdev node name to store VM state in
26f1a9fcddSDaniel P. Berrangé  * @has_devices: whether to use explicit device list
27f1a9fcddSDaniel P. Berrangé  * @devices: explicit device list to snapshot
287ea14df2SPhilippe Mathieu-Daudé  * @errp: pointer to error object
297ea14df2SPhilippe Mathieu-Daudé  * On success, return %true.
307ea14df2SPhilippe Mathieu-Daudé  * On failure, store an error through @errp and return %false.
317ea14df2SPhilippe Mathieu-Daudé  */
32f1a9fcddSDaniel P. Berrangé bool save_snapshot(const char *name, bool overwrite,
33f1a9fcddSDaniel P. Berrangé                    const char *vmstate,
34f1a9fcddSDaniel P. Berrangé                    bool has_devices, strList *devices,
35f1a9fcddSDaniel P. Berrangé                    Error **errp);
36f61fe11aSDaniel P. Berrangé 
37f61fe11aSDaniel P. Berrangé /**
38f61fe11aSDaniel P. Berrangé  * load_snapshot: Load an internal snapshot.
39f61fe11aSDaniel P. Berrangé  * @name: name of internal snapshot
40f1a9fcddSDaniel P. Berrangé  * @vmstate: blockdev node name to load VM state from
41f1a9fcddSDaniel P. Berrangé  * @has_devices: whether to use explicit device list
42f1a9fcddSDaniel P. Berrangé  * @devices: explicit device list to snapshot
43f61fe11aSDaniel P. Berrangé  * @errp: pointer to error object
44f61fe11aSDaniel P. Berrangé  * On success, return %true.
45f61fe11aSDaniel P. Berrangé  * On failure, store an error through @errp and return %false.
46f61fe11aSDaniel P. Berrangé  */
47f1a9fcddSDaniel P. Berrangé bool load_snapshot(const char *name,
48f1a9fcddSDaniel P. Berrangé                    const char *vmstate,
49f1a9fcddSDaniel P. Berrangé                    bool has_devices, strList *devices,
50f1a9fcddSDaniel P. Berrangé                    Error **errp);
515e22479aSJuan Quintela 
52bef7e9e2SDaniel P. Berrangé /**
53bef7e9e2SDaniel P. Berrangé  * delete_snapshot: Delete a snapshot.
54bef7e9e2SDaniel P. Berrangé  * @name: path to snapshot
55bef7e9e2SDaniel P. Berrangé  * @has_devices: whether to use explicit device list
56bef7e9e2SDaniel P. Berrangé  * @devices: explicit device list to snapshot
57bef7e9e2SDaniel P. Berrangé  * @errp: pointer to error object
58bef7e9e2SDaniel P. Berrangé  * On success, return %true.
59bef7e9e2SDaniel P. Berrangé  * On failure, store an error through @errp and return %false.
60bef7e9e2SDaniel P. Berrangé  */
61bef7e9e2SDaniel P. Berrangé bool delete_snapshot(const char *name,
62bef7e9e2SDaniel P. Berrangé                     bool has_devices, strList *devices,
63bef7e9e2SDaniel P. Berrangé                     Error **errp);
64bef7e9e2SDaniel P. Berrangé 
65*58b10570SSteve Sistare /**
66*58b10570SSteve Sistare  * load_snapshot_resume: Restore runstate after loading snapshot.
67*58b10570SSteve Sistare  * @state: state to restore
68*58b10570SSteve Sistare  */
69*58b10570SSteve Sistare void load_snapshot_resume(RunState state);
70*58b10570SSteve Sistare 
715e22479aSJuan Quintela #endif
72