]>
Commit | Line | Data |
---|---|---|
95ee0b66 DM |
1 | /* |
2 | * QEMU backup related definitions | |
3 | * | |
4 | * Copyright (C) 2013 Proxmox Server Solutions | |
5 | * | |
6 | * Authors: | |
7 | * Dietmar Maurer (dietmar@proxmox.com) | |
8 | * | |
9 | * This work is licensed under the terms of the GNU GPL, version 2 or later. | |
10 | * See the COPYING file in the top-level directory. | |
11 | * | |
12 | */ | |
13 | ||
14 | #ifndef QEMU_BACKUP_H | |
15 | #define QEMU_BACKUP_H | |
16 | ||
3247165e DM |
17 | #include <uuid/uuid.h> |
18 | #include "block/block.h" | |
19 | ||
95ee0b66 DM |
20 | #define BACKUP_CLUSTER_BITS 16 |
21 | #define BACKUP_CLUSTER_SIZE (1<<BACKUP_CLUSTER_BITS) | |
22 | #define BACKUP_BLOCKS_PER_CLUSTER (BACKUP_CLUSTER_SIZE/BDRV_SECTOR_SIZE) | |
23 | ||
24 | typedef int BackupDumpFunc(void *opaque, BlockDriverState *bs, | |
25 | int64_t cluster_num, unsigned char *buf); | |
26 | ||
27 | void backup_job_start(BlockDriverState *bs, bool cancel); | |
28 | ||
29 | int backup_job_create(BlockDriverState *bs, BackupDumpFunc *backup_dump_cb, | |
30 | BlockDriverCompletionFunc *backup_complete_cb, | |
31 | void *opaque, int64_t speed); | |
32 | ||
3247165e DM |
33 | typedef struct BackupDriver { |
34 | const char *format; | |
35 | void *(*open)(const char *filename, uuid_t uuid, Error **errp); | |
36 | int (*close)(void *opaque, Error **errp); | |
37 | int (*register_config)(void *opaque, const char *name, gpointer data, | |
38 | size_t data_len); | |
39 | int (*register_stream)(void *opaque, const char *devname, size_t size); | |
40 | int (*dump)(void *opaque, uint8_t dev_id, int64_t cluster_num, | |
41 | unsigned char *buf, size_t *zero_bytes); | |
42 | int (*complete)(void *opaque, uint8_t dev_id, int ret); | |
43 | } BackupDriver; | |
44 | ||
95ee0b66 | 45 | #endif /* QEMU_BACKUP_H */ |