qdev: add blocksize property type
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Wed, 14 Mar 2012 15:57:05 +0000 (15:57 +0000)
committerKevin Wolf <kwolf@redhat.com>
Thu, 5 Apr 2012 12:54:40 +0000 (14:54 +0200)
commit02fda01c3024463e561820afb0ba09daba4014d9
tree3b59b67aabe14e8b6757ba9d2bb8bb1129fdec81
parent41453412ca16ff1871ed2bd6ee83cb9a5c734823
qdev: add blocksize property type

Storage interfaces like virtio-blk can be configured with block size
information so that the guest can take advantage of efficient I/O
request sizes.

According to the SCSI Block Commands (SBC) standard a device's block
size is "almost always greater than one byte and may be a multiple of
512 bytes".  QEMU currently has a 512 byte minimum block size because
the block layer functions work at that granularity.  Furthermore, the
block size should be a power of 2 because QEMU calculates bitmasks from
the value.

Introduce a "blocksize" property type so devices can enforce these
constraints on block size values.  If the constraints are relaxed in the
future then this property can be updated.

Introduce the new PropertyValueNotPowerOf2 QError so QMP clients know
exactly why a block size value was rejected.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/qdev-properties.c
hw/qdev.h
qerror.c
qerror.h