]> Git Repo - qemu.git/blob - include/migration/register.h
migration: Rename save_live_setup() to save_setup()
[qemu.git] / include / migration / register.h
1 /*
2  * QEMU migration vmstate registration
3  *
4  * Copyright IBM, Corp. 2008
5  *
6  * Authors:
7  *  Anthony Liguori   <[email protected]>
8  *
9  * This work is licensed under the terms of the GNU GPL, version 2.  See
10  * the COPYING file in the top-level directory.
11  *
12  */
13
14 #ifndef MIGRATION_REGISTER_H
15 #define MIGRATION_REGISTER_H
16
17 typedef struct SaveVMHandlers {
18     /* This runs inside the iothread lock.  */
19     SaveStateHandler *save_state;
20
21     void (*cleanup)(void *opaque);
22     int (*save_live_complete_postcopy)(QEMUFile *f, void *opaque);
23     int (*save_live_complete_precopy)(QEMUFile *f, void *opaque);
24
25     /* This runs both outside and inside the iothread lock.  */
26     bool (*is_active)(void *opaque);
27
28     /* This runs outside the iothread lock in the migration case, and
29      * within the lock in the savevm case.  The callback had better only
30      * use data that is local to the migration thread or protected
31      * by other locks.
32      */
33     int (*save_live_iterate)(QEMUFile *f, void *opaque);
34
35     /* This runs outside the iothread lock!  */
36     int (*save_setup)(QEMUFile *f, void *opaque);
37     void (*save_live_pending)(QEMUFile *f, void *opaque,
38                               uint64_t threshold_size,
39                               uint64_t *non_postcopiable_pending,
40                               uint64_t *postcopiable_pending);
41     LoadStateHandler *load_state;
42 } SaveVMHandlers;
43
44 int register_savevm_live(DeviceState *dev,
45                          const char *idstr,
46                          int instance_id,
47                          int version_id,
48                          SaveVMHandlers *ops,
49                          void *opaque);
50
51 void unregister_savevm(DeviceState *dev, const char *idstr, void *opaque);
52
53 #endif
This page took 0.025891 seconds and 4 git commands to generate.