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" 175821ebf9Szhanghailiang #include "migration/migration.h" 1825d0c16fSzhanghailiang #include "qemu/coroutine_int.h" 1925d0c16fSzhanghailiang #include "qemu/thread.h" 20*d89e666eSzhanghailiang #include "qemu/main-loop.h" 2135a6ed4fSzhanghailiang 2235a6ed4fSzhanghailiang bool colo_supported(void); 235821ebf9Szhanghailiang void colo_info_init(void); 2435a6ed4fSzhanghailiang 250b827d5eSzhanghailiang void migrate_start_colo_process(MigrationState *s); 260b827d5eSzhanghailiang bool migration_in_colo_state(void); 270b827d5eSzhanghailiang 2825d0c16fSzhanghailiang /* loadvm */ 2925d0c16fSzhanghailiang bool migration_incoming_enable_colo(void); 3025d0c16fSzhanghailiang void migration_incoming_exit_colo(void); 3125d0c16fSzhanghailiang void *colo_process_incoming_thread(void *opaque); 3225d0c16fSzhanghailiang bool migration_incoming_in_colo_state(void); 33*d89e666eSzhanghailiang 34*d89e666eSzhanghailiang COLOMode get_colo_mode(void); 3535a6ed4fSzhanghailiang #endif 36