Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging
[qemu.git] / include / migration / snapshot.h
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
20 /**
21 * save_snapshot: Save an internal snapshot.
22 * @name: name of internal snapshot
23 * @overwrite: replace existing snapshot with @name
24 * @vmstate: blockdev node name to store VM state in
25 * @has_devices: whether to use explicit device list
26 * @devices: explicit device list to snapshot
27 * @errp: pointer to error object
28 * On success, return %true.
29 * On failure, store an error through @errp and return %false.
30 */
31 bool save_snapshot(const char *name, bool overwrite,
32 const char *vmstate,
33 bool has_devices, strList *devices,
34 Error **errp);
35
36 /**
37 * load_snapshot: Load an internal snapshot.
38 * @name: name of internal snapshot
39 * @vmstate: blockdev node name to load VM state from
40 * @has_devices: whether to use explicit device list
41 * @devices: explicit device list to snapshot
42 * @errp: pointer to error object
43 * On success, return %true.
44 * On failure, store an error through @errp and return %false.
45 */
46 bool load_snapshot(const char *name,
47 const char *vmstate,
48 bool has_devices, strList *devices,
49 Error **errp);
50
51 /**
52 * delete_snapshot: Delete a snapshot.
53 * @name: path to snapshot
54 * @has_devices: whether to use explicit device list
55 * @devices: explicit device list to snapshot
56 * @errp: pointer to error object
57 * On success, return %true.
58 * On failure, store an error through @errp and return %false.
59 */
60 bool delete_snapshot(const char *name,
61 bool has_devices, strList *devices,
62 Error **errp);
63
64 #endif