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 "qemu-common.h" 17 #include "migration/migration.h" 18 #include "qemu/coroutine_int.h" 19 #include "qemu/thread.h" 20 #include "qemu/main-loop.h" 21 22 bool colo_supported(void); 23 void colo_info_init(void); 24 25 void migrate_start_colo_process(MigrationState *s); 26 bool migration_in_colo_state(void); 27 28 /* loadvm */ 29 bool migration_incoming_enable_colo(void); 30 void migration_incoming_exit_colo(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(MigrationState *s); 38 39 void colo_checkpoint_notify(void *opaque); 40 #endif 41