/* * QEMU backup * * Copyright (c) 2013 Proxmox Server Solutions * Copyright (c) 2016 HUAWEI TECHNOLOGIES CO., LTD. * Copyright (c) 2016 Intel Corporation * Copyright (c) 2016 FUJITSU LIMITED * * Authors: * Dietmar Maurer * Changlong Xie * * This work is licensed under the terms of the GNU GPL, version 2 or later. * See the COPYING file in the top-level directory. * */ #ifndef BLOCK_BACKUP_H #define BLOCK_BACKUP_H #include "block/block_int.h" typedef struct CowRequest { int64_t start_byte; int64_t end_byte; QLIST_ENTRY(CowRequest) list; CoQueue wait_queue; /* coroutines blocked on this request */ } CowRequest; void backup_wait_for_overlapping_requests(BlockJob *job, int64_t offset, uint64_t bytes); void backup_cow_request_begin(CowRequest *req, BlockJob *job, int64_t offset, uint64_t bytes); void backup_cow_request_end(CowRequest *req); void backup_do_checkpoint(BlockJob *job, Error **errp); #endif