summaryrefslogtreecommitdiff
path: root/include/block
diff options
context:
space:
mode:
authorPeter Lieven <pl@kamp.de>2013-10-24 12:06:56 +0200
committerKevin Wolf <kwolf@redhat.com>2013-11-28 10:30:51 +0100
commitfe81c2cca6dc69a5e423f6d8b235606b7f3ca7b7 (patch)
treefcf2ef9be5eb4b58e4d530375acdbd4a887c49eb /include/block
parent186d4f2b1deaae5c404798959bfbdb781e762045 (diff)
downloadqemu-fe81c2cca6dc69a5e423f6d8b235606b7f3ca7b7.tar.gz
block: add BlockLimits structure to BlockDriverState
this patch adds BlockLimits which introduces discard and write_zeroes limits and alignment information to the BlockDriverState. Signed-off-by: Peter Lieven <pl@kamp.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r--include/block/block_int.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/block/block_int.h b/include/block/block_int.h
index d798208aff..95140b6ccf 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -230,6 +230,20 @@ struct BlockDriver {
QLIST_ENTRY(BlockDriver) list;
};
+typedef struct BlockLimits {
+ /* maximum number of sectors that can be discarded at once */
+ int max_discard;
+
+ /* optimal alignment for discard requests in sectors */
+ int64_t discard_alignment;
+
+ /* maximum number of sectors that can zeroized at once */
+ int max_write_zeroes;
+
+ /* optimal alignment for write zeroes requests in sectors */
+ int64_t write_zeroes_alignment;
+} BlockLimits;
+
/*
* Note: the function bdrv_append() copies and swaps contents of
* BlockDriverStates, so if you add new fields to this struct, please
@@ -283,6 +297,9 @@ struct BlockDriverState {
uint64_t total_time_ns[BDRV_MAX_IOTYPE];
uint64_t wr_highest_sector;
+ /* I/O Limits */
+ BlockLimits bl;
+
/* Whether the disk can expand beyond total_sectors */
int growable;