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_byte; 25 int64_t end_byte; 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 offset, 31 uint64_t bytes); 32 void backup_cow_request_begin(CowRequest *req, BlockJob *job, 33 int64_t offset, uint64_t bytes); 34 void backup_cow_request_end(CowRequest *req); 35 36 void backup_do_checkpoint(BlockJob *job, Error **errp); 37 38 #endif 39