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" 179af23989SMarkus Armbruster #include "qapi/qapi-types-migration.h" 1835a6ed4fSzhanghailiang 190ffcece3SZhang Chen enum colo_event { 200ffcece3SZhang Chen COLO_EVENT_NONE, 210ffcece3SZhang Chen COLO_EVENT_CHECKPOINT, 220ffcece3SZhang Chen COLO_EVENT_FAILOVER, 230ffcece3SZhang Chen }; 240ffcece3SZhang Chen 255821ebf9Szhanghailiang void colo_info_init(void); 2635a6ed4fSzhanghailiang 270b827d5eSzhanghailiang void migrate_start_colo_process(MigrationState *s); 280b827d5eSzhanghailiang bool migration_in_colo_state(void); 290b827d5eSzhanghailiang 3025d0c16fSzhanghailiang /* loadvm */ 31*aad555c2SZhang Chen void migration_incoming_enable_colo(void); 32*aad555c2SZhang Chen void migration_incoming_disable_colo(void); 33*aad555c2SZhang Chen bool migration_incoming_colo_enabled(void); 3425d0c16fSzhanghailiang void *colo_process_incoming_thread(void *opaque); 3525d0c16fSzhanghailiang bool migration_incoming_in_colo_state(void); 36d89e666eSzhanghailiang 37d89e666eSzhanghailiang COLOMode get_colo_mode(void); 38b3f7f0c5Szhanghailiang 39b3f7f0c5Szhanghailiang /* failover */ 40b3f7f0c5Szhanghailiang void colo_do_failover(MigrationState *s); 41479125d5Szhanghailiang 42479125d5Szhanghailiang void colo_checkpoint_notify(void *opaque); 4335a6ed4fSzhanghailiang #endif 44