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