1 /* 2 * QEMU backup 3 * 4 * Copyright (c) 2013 Proxmox Server Solutions 5 * Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. 6 * Copyright (c) 2016 Intel Corporation 7 * Copyright (c) 2016 FUJITSU LIMITED 8 * 9 * Authors: 10 * Dietmar Maurer <dietmar@proxmox.com> 11 * Changlong Xie <xiecl.fnst@cn.fujitsu.com> 12 * 13 * This work is licensed under the terms of the GNU GPL, version 2 or later. 14 * See the COPYING file in the top-level directory. 15 * 16 */ 17 18 #ifndef BLOCK_BACKUP_H 19 #define BLOCK_BACKUP_H 20 21 #include "block/block_int.h" 22 23 typedef struct CowRequest { 24 int64_t start; 25 int64_t end; 26 QLIST_ENTRY(CowRequest) list; 27 CoQueue wait_queue; /* coroutines blocked on this request */ 28 } CowRequest; 29 30 void backup_wait_for_overlapping_requests(BlockJob *job, int64_t sector_num, 31 int nb_sectors); 32 void backup_cow_request_begin(CowRequest *req, BlockJob *job, 33 int64_t sector_num, 34 int nb_sectors); 35 void backup_cow_request_end(CowRequest *req); 36 37 void backup_do_checkpoint(BlockJob *job, Error **errp); 38 39 #endif 40