diff options
author | Kevin Wolf <kwolf@redhat.com> | 2016-06-23 15:12:35 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2016-07-13 13:32:27 +0200 |
commit | f6166a06ffdb1cd5dd80adf2d82c35c3bda88239 (patch) | |
tree | 36aa065e263e1adcdc7a923ae55528ea3224e91b /include/hw/block | |
parent | 8daea510951dd309a44cea8de415c685c43851cf (diff) | |
download | qemu-f6166a06ffdb1cd5dd80adf2d82c35c3bda88239.zip qemu-f6166a06ffdb1cd5dd80adf2d82c35c3bda88239.tar.gz qemu-f6166a06ffdb1cd5dd80adf2d82c35c3bda88239.tar.bz2 |
block/qdev: Allow configuring WCE with qdev properties
As cache.writeback is a BlockBackend property and as such more related
to the guest device than the BlockDriverState, we already removed it
from the blockdev-add interface. This patch adds the new way to set it,
as a qdev property of the corresponding guest device.
For example: -drive if=none,file=test.img,node-name=img
-device ide-hd,drive=img,write-cache=off
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'include/hw/block')
-rw-r--r-- | include/hw/block/block.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/hw/block/block.h b/include/hw/block/block.h index 87c87ed..245ac99 100644 --- a/include/hw/block/block.h +++ b/include/hw/block/block.h @@ -25,6 +25,7 @@ typedef struct BlockConf { uint32_t discard_granularity; /* geometry, not all devices use this */ uint32_t cyls, heads, secs; + OnOffAuto wce; } BlockConf; static inline unsigned int get_physical_block_exp(BlockConf *conf) @@ -49,7 +50,8 @@ static inline unsigned int get_physical_block_exp(BlockConf *conf) DEFINE_PROP_UINT16("min_io_size", _state, _conf.min_io_size, 0), \ DEFINE_PROP_UINT32("opt_io_size", _state, _conf.opt_io_size, 0), \ DEFINE_PROP_UINT32("discard_granularity", _state, \ - _conf.discard_granularity, -1) + _conf.discard_granularity, -1), \ + DEFINE_PROP_ON_OFF_AUTO("write-cache", _state, _conf.wce, ON_OFF_AUTO_AUTO) #define DEFINE_BLOCK_CHS_PROPERTIES(_state, _conf) \ DEFINE_PROP_UINT32("cyls", _state, _conf.cyls, 0), \ @@ -63,6 +65,7 @@ void blkconf_geometry(BlockConf *conf, int *trans, unsigned cyls_max, unsigned heads_max, unsigned secs_max, Error **errp); void blkconf_blocksizes(BlockConf *conf); +void blkconf_apply_backend_options(BlockConf *conf); /* Hard disk geometry */ |