1 | /* |
2 | * COarse-grain LOck-stepping Virtual Machines for Non-stop Service (COLO) |
3 | * (a.k.a. Fault Tolerance or Continuous Replication) |
4 | * |
5 | * Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. |
6 | * Copyright (c) 2016 FUJITSU LIMITED |
7 | * Copyright (c) 2016 Intel Corporation |
8 | * |
9 | * This work is licensed under the terms of the GNU GPL, version 2 or |
10 | * later. See the COPYING file in the top-level directory. |
11 | */ |
12 | |
13 | #ifndef QEMU_COLO_H |
14 | #define QEMU_COLO_H |
15 | |
16 | #include "qapi/qapi-types-migration.h" |
17 | |
18 | enum colo_event { |
19 | COLO_EVENT_NONE, |
20 | COLO_EVENT_CHECKPOINT, |
21 | COLO_EVENT_FAILOVER, |
22 | }; |
23 | |
24 | void migrate_start_colo_process(MigrationState *s); |
25 | bool migration_in_colo_state(void); |
26 | |
27 | /* loadvm */ |
28 | void migration_incoming_enable_colo(void); |
29 | void migration_incoming_disable_colo(void); |
30 | bool migration_incoming_colo_enabled(void); |
31 | void *colo_process_incoming_thread(void *opaque); |
32 | bool migration_incoming_in_colo_state(void); |
33 | |
34 | COLOMode get_colo_mode(void); |
35 | |
36 | /* failover */ |
37 | void colo_do_failover(void); |
38 | |
39 | void colo_checkpoint_notify(void *opaque); |
40 | #endif |
41 | |