Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-3.0-20180703' into staging
[qemu/ar7.git] / include / block / block_backup.h
blob994a3bd2ec8799c8defacb7e027e8a715532081c
1 /*
2 * QEMU backup
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
9 * Authors:
10 * Dietmar Maurer <dietmar@proxmox.com>
11 * Changlong Xie <xiecl.fnst@cn.fujitsu.com>
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.
18 #ifndef BLOCK_BACKUP_H
19 #define BLOCK_BACKUP_H
21 #include "block/block_int.h"
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;
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);
36 void backup_do_checkpoint(BlockJob *job, Error **errp);
38 #endif