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 169af23989SMarkus Armbruster #include "qapi/qapi-types-migration.h" 1735a6ed4fSzhanghailiang 180ffcece3SZhang Chen enum colo_event { 190ffcece3SZhang Chen COLO_EVENT_NONE, 200ffcece3SZhang Chen COLO_EVENT_CHECKPOINT, 210ffcece3SZhang Chen COLO_EVENT_FAILOVER, 220ffcece3SZhang Chen }; 230ffcece3SZhang Chen 240b827d5eSzhanghailiang void migrate_start_colo_process(MigrationState *s); 250b827d5eSzhanghailiang bool migration_in_colo_state(void); 260b827d5eSzhanghailiang 2725d0c16fSzhanghailiang /* loadvm */ 2818b1d3c9SDavid Hildenbrand int migration_incoming_enable_colo(void); 29aad555c2SZhang Chen void migration_incoming_disable_colo(void); 30aad555c2SZhang Chen bool migration_incoming_colo_enabled(void); 3125d0c16fSzhanghailiang void *colo_process_incoming_thread(void *opaque); 3225d0c16fSzhanghailiang bool migration_incoming_in_colo_state(void); 33d89e666eSzhanghailiang 34d89e666eSzhanghailiang COLOMode get_colo_mode(void); 35b3f7f0c5Szhanghailiang 36b3f7f0c5Szhanghailiang /* failover */ 37c0913d1dSZhang Chen void colo_do_failover(void); 38479125d5Szhanghailiang 39*4332ffcdSVladimir Sementsov-Ogievskiy /* 40*4332ffcdSVladimir Sementsov-Ogievskiy * colo_checkpoint_delay_set 41*4332ffcdSVladimir Sementsov-Ogievskiy * 42*4332ffcdSVladimir Sementsov-Ogievskiy * Handles change of x-checkpoint-delay migration parameter, called from 43*4332ffcdSVladimir Sementsov-Ogievskiy * migrate_params_apply() to notify COLO module about the change. 44*4332ffcdSVladimir Sementsov-Ogievskiy */ 45*4332ffcdSVladimir Sementsov-Ogievskiy void colo_checkpoint_delay_set(void); 46*4332ffcdSVladimir Sementsov-Ogievskiy 47795969abSRao, Lei void colo_shutdown(void); 4835a6ed4fSzhanghailiang #endif 49