xref: /qemu/include/migration/colo.h (revision 9af2398977a78d37bf184d6ff6bd04c72bfbf006)
135a6ed4fSzhanghailiang /*
235a6ed4fSzhanghailiang  * COarse-grain LOck-stepping Virtual Machines for Non-stop Service (COLO)
335a6ed4fSzhanghailiang  * (a.k.a. Fault Tolerance or Continuous Replication)
435a6ed4fSzhanghailiang  *
535a6ed4fSzhanghailiang  * Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD.
635a6ed4fSzhanghailiang  * Copyright (c) 2016 FUJITSU LIMITED
735a6ed4fSzhanghailiang  * Copyright (c) 2016 Intel Corporation
835a6ed4fSzhanghailiang  *
935a6ed4fSzhanghailiang  * This work is licensed under the terms of the GNU GPL, version 2 or
1035a6ed4fSzhanghailiang  * later.  See the COPYING file in the top-level directory.
1135a6ed4fSzhanghailiang  */
1235a6ed4fSzhanghailiang 
1335a6ed4fSzhanghailiang #ifndef QEMU_COLO_H
1435a6ed4fSzhanghailiang #define QEMU_COLO_H
1535a6ed4fSzhanghailiang 
1635a6ed4fSzhanghailiang #include "qemu-common.h"
17*9af23989SMarkus Armbruster #include "qapi/qapi-types-migration.h"
1835a6ed4fSzhanghailiang 
195821ebf9Szhanghailiang void colo_info_init(void);
2035a6ed4fSzhanghailiang 
210b827d5eSzhanghailiang void migrate_start_colo_process(MigrationState *s);
220b827d5eSzhanghailiang bool migration_in_colo_state(void);
230b827d5eSzhanghailiang 
2425d0c16fSzhanghailiang /* loadvm */
2525d0c16fSzhanghailiang bool migration_incoming_enable_colo(void);
2625d0c16fSzhanghailiang void migration_incoming_exit_colo(void);
2725d0c16fSzhanghailiang void *colo_process_incoming_thread(void *opaque);
2825d0c16fSzhanghailiang bool migration_incoming_in_colo_state(void);
29d89e666eSzhanghailiang 
30d89e666eSzhanghailiang COLOMode get_colo_mode(void);
31b3f7f0c5Szhanghailiang 
32b3f7f0c5Szhanghailiang /* failover */
33b3f7f0c5Szhanghailiang void colo_do_failover(MigrationState *s);
34479125d5Szhanghailiang 
35479125d5Szhanghailiang void colo_checkpoint_notify(void *opaque);
3635a6ed4fSzhanghailiang #endif
37