version 1.1.1.1, 2018/04/24 16:47:31
|
version 1.1.1.2, 2018/04/24 16:50:51
|
Line 1
|
Line 1
|
#ifndef BLOCK_H |
#ifndef BLOCK_H |
#define BLOCK_H |
#define BLOCK_H |
|
|
|
#include "qemu-aio.h" |
|
#include "qemu-common.h" |
|
|
/* block.c */ |
/* block.c */ |
typedef struct BlockDriver BlockDriver; |
typedef struct BlockDriver BlockDriver; |
|
|
Line 16 extern BlockDriver bdrv_vpc;
|
Line 19 extern BlockDriver bdrv_vpc;
|
extern BlockDriver bdrv_vvfat; |
extern BlockDriver bdrv_vvfat; |
extern BlockDriver bdrv_qcow2; |
extern BlockDriver bdrv_qcow2; |
extern BlockDriver bdrv_parallels; |
extern BlockDriver bdrv_parallels; |
|
extern BlockDriver bdrv_nbd; |
|
|
typedef struct BlockDriverInfo { |
typedef struct BlockDriverInfo { |
/* in bytes, 0 if irrelevant */ |
/* in bytes, 0 if irrelevant */ |
int cluster_size; |
int cluster_size; |
/* offset at which the VM state can be saved (0 if not possible) */ |
/* offset at which the VM state can be saved (0 if not possible) */ |
int64_t vm_state_offset; |
int64_t vm_state_offset; |
|
int64_t highest_alloc; /* highest allocated block offset (in bytes) */ |
|
int64_t num_free_bytes; /* below highest_alloc */ |
} BlockDriverInfo; |
} BlockDriverInfo; |
|
|
typedef struct QEMUSnapshotInfo { |
typedef struct QEMUSnapshotInfo { |
Line 44 typedef struct QEMUSnapshotInfo {
|
Line 50 typedef struct QEMUSnapshotInfo {
|
use a disk image format on top of |
use a disk image format on top of |
it (default for |
it (default for |
bdrv_file_open()) */ |
bdrv_file_open()) */ |
#define BDRV_O_DIRECT 0x0020 |
#define BDRV_O_NOCACHE 0x0020 /* do not use the host page cache */ |
|
#define BDRV_O_CACHE_WB 0x0040 /* use write-back caching */ |
|
#define BDRV_O_CACHE_DEF 0x0080 /* use default caching */ |
|
|
|
#define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_CACHE_WB | BDRV_O_CACHE_DEF) |
|
|
#ifndef QEMU_IMG |
|
void bdrv_info(void); |
void bdrv_info(void); |
void bdrv_info_stats(void); |
void bdrv_info_stats(void); |
#endif |
|
|
|
void bdrv_init(void); |
void bdrv_init(void); |
BlockDriver *bdrv_find_format(const char *format_name); |
BlockDriver *bdrv_find_format(const char *format_name); |
Line 74 int bdrv_pwrite(BlockDriverState *bs, in
|
Line 82 int bdrv_pwrite(BlockDriverState *bs, in
|
int bdrv_truncate(BlockDriverState *bs, int64_t offset); |
int bdrv_truncate(BlockDriverState *bs, int64_t offset); |
int64_t bdrv_getlength(BlockDriverState *bs); |
int64_t bdrv_getlength(BlockDriverState *bs); |
void bdrv_get_geometry(BlockDriverState *bs, uint64_t *nb_sectors_ptr); |
void bdrv_get_geometry(BlockDriverState *bs, uint64_t *nb_sectors_ptr); |
|
void bdrv_guess_geometry(BlockDriverState *bs, int *pcyls, int *pheads, int *psecs); |
int bdrv_commit(BlockDriverState *bs); |
int bdrv_commit(BlockDriverState *bs); |
void bdrv_set_boot_sector(BlockDriverState *bs, const uint8_t *data, int size); |
|
/* async block I/O */ |
/* async block I/O */ |
typedef struct BlockDriverAIOCB BlockDriverAIOCB; |
typedef struct BlockDriverAIOCB BlockDriverAIOCB; |
typedef void BlockDriverCompletionFunc(void *opaque, int ret); |
typedef void BlockDriverCompletionFunc(void *opaque, int ret); |
|
|
|
BlockDriverAIOCB *bdrv_aio_readv(BlockDriverState *bs, int64_t sector_num, |
|
QEMUIOVector *iov, int nb_sectors, |
|
BlockDriverCompletionFunc *cb, void *opaque); |
|
BlockDriverAIOCB *bdrv_aio_writev(BlockDriverState *bs, int64_t sector_num, |
|
QEMUIOVector *iov, int nb_sectors, |
|
BlockDriverCompletionFunc *cb, void *opaque); |
|
|
BlockDriverAIOCB *bdrv_aio_read(BlockDriverState *bs, int64_t sector_num, |
BlockDriverAIOCB *bdrv_aio_read(BlockDriverState *bs, int64_t sector_num, |
uint8_t *buf, int nb_sectors, |
uint8_t *buf, int nb_sectors, |
BlockDriverCompletionFunc *cb, void *opaque); |
BlockDriverCompletionFunc *cb, void *opaque); |
Line 88 BlockDriverAIOCB *bdrv_aio_write(BlockDr
|
Line 103 BlockDriverAIOCB *bdrv_aio_write(BlockDr
|
BlockDriverCompletionFunc *cb, void *opaque); |
BlockDriverCompletionFunc *cb, void *opaque); |
void bdrv_aio_cancel(BlockDriverAIOCB *acb); |
void bdrv_aio_cancel(BlockDriverAIOCB *acb); |
|
|
void qemu_aio_init(void); |
|
void qemu_aio_poll(void); |
|
void qemu_aio_flush(void); |
|
void qemu_aio_wait_start(void); |
|
void qemu_aio_wait(void); |
|
void qemu_aio_wait_end(void); |
|
|
|
int qemu_key_check(BlockDriverState *bs, const char *name); |
int qemu_key_check(BlockDriverState *bs, const char *name); |
|
|
/* Ensure contents are flushed to disk. */ |
/* Ensure contents are flushed to disk. */ |
void bdrv_flush(BlockDriverState *bs); |
void bdrv_flush(BlockDriverState *bs); |
|
void bdrv_flush_all(void); |
|
|
|
int bdrv_is_allocated(BlockDriverState *bs, int64_t sector_num, int nb_sectors, |
|
int *pnum); |
|
|
#define BDRV_TYPE_HD 0 |
#define BDRV_TYPE_HD 0 |
#define BDRV_TYPE_CDROM 1 |
#define BDRV_TYPE_CDROM 1 |