[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 32/43] qdev-properties: blocksize: use same limits in code and des
From: |
Kevin Wolf |
Subject: |
[PULL 32/43] qdev-properties: blocksize: use same limits in code and description |
Date: |
Wed, 17 Jun 2020 16:48:58 +0200 |
From: Roman Kagan <rvkagan@yandex-team.ru>
Make it easier (more visible) to maintain the limits on the blocksize
properties in sync with the respective description, by using macros both
in the code and in the description.
Signed-off-by: Roman Kagan <rvkagan@yandex-team.ru>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200528225516.1676602-4-rvkagan@yandex-team.ru>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
hw/core/qdev-properties.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index cc924815da..249dc69bd8 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -729,6 +729,13 @@ const PropertyInfo qdev_prop_pci_devfn = {
/* --- blocksize --- */
+/* lower limit is sector size */
+#define MIN_BLOCK_SIZE 512
+#define MIN_BLOCK_SIZE_STR stringify(MIN_BLOCK_SIZE)
+/* upper limit is the max power of 2 that fits in uint16_t */
+#define MAX_BLOCK_SIZE 32768
+#define MAX_BLOCK_SIZE_STR stringify(MAX_BLOCK_SIZE)
+
static void set_blocksize(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
@@ -736,8 +743,6 @@ static void set_blocksize(Object *obj, Visitor *v, const
char *name,
Property *prop = opaque;
uint16_t value, *ptr = qdev_get_prop_ptr(dev, prop);
Error *local_err = NULL;
- const int64_t min = 512;
- const int64_t max = 32768;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
@@ -750,9 +755,12 @@ static void set_blocksize(Object *obj, Visitor *v, const
char *name,
return;
}
/* value of 0 means "unset" */
- if (value && (value < min || value > max)) {
- error_setg(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE,
- dev->id ? : "", name, (int64_t)value, min, max);
+ if (value && (value < MIN_BLOCK_SIZE || value > MAX_BLOCK_SIZE)) {
+ error_setg(errp,
+ "Property %s.%s doesn't take value %" PRIu16
+ " (minimum: " MIN_BLOCK_SIZE_STR
+ ", maximum: " MAX_BLOCK_SIZE_STR ")",
+ dev->id ? : "", name, value);
return;
}
@@ -769,7 +777,8 @@ static void set_blocksize(Object *obj, Visitor *v, const
char *name,
const PropertyInfo qdev_prop_blocksize = {
.name = "uint16",
- .description = "A power of two between 512 and 32768",
+ .description = "A power of two between " MIN_BLOCK_SIZE_STR
+ " and " MAX_BLOCK_SIZE_STR,
.get = get_uint16,
.set = set_blocksize,
.set_default_value = set_default_value_uint,
--
2.25.4
- [PULL 19/43] hw/block/nvme: add namespace helpers, (continued)
- [PULL 19/43] hw/block/nvme: add namespace helpers, Kevin Wolf, 2020/06/17
- [PULL 20/43] hw/block/nvme: factor out namespace setup, Kevin Wolf, 2020/06/17
- [PULL 22/43] hw/block/nvme: factor out cmb setup, Kevin Wolf, 2020/06/17
- [PULL 25/43] hw/block/nvme: factor out controller identify setup, Kevin Wolf, 2020/06/17
- [PULL 21/43] hw/block/nvme: factor out pci setup, Kevin Wolf, 2020/06/17
- [PULL 23/43] hw/block/nvme: factor out pmr setup, Kevin Wolf, 2020/06/17
- [PULL 24/43] hw/block/nvme: do cmb/pmr init as part of pci init, Kevin Wolf, 2020/06/17
- [PULL 26/43] hw/block/nvme: Verify msix_vector_use() returned value, Kevin Wolf, 2020/06/17
- [PULL 28/43] hw/block/nvme: verify msix_init_exclusive_bar() return value, Kevin Wolf, 2020/06/17
- [PULL 30/43] virtio-blk: store opt_io_size with correct size, Kevin Wolf, 2020/06/17
- [PULL 32/43] qdev-properties: blocksize: use same limits in code and description,
Kevin Wolf <=
- [PULL 27/43] hw/block/nvme: add msix_qsize parameter, Kevin Wolf, 2020/06/17
- [PULL 31/43] block: consolidate blocksize properties consistency checks, Kevin Wolf, 2020/06/17
- [PULL 29/43] .gitignore: Ignore storage-daemon files, Kevin Wolf, 2020/06/17
- [PULL 34/43] qdev-properties: make blocksize accept size suffixes, Kevin Wolf, 2020/06/17
- [PULL 33/43] qdev-properties: add size32 property type, Kevin Wolf, 2020/06/17
- [PULL 35/43] block: make BlockConf size props 32bit and accept size suffixes, Kevin Wolf, 2020/06/17
- [PULL 36/43] qdev-properties: add getter for size32 and blocksize, Kevin Wolf, 2020/06/17
- [PULL 38/43] iotests.py: Add skip_for_formats() decorator, Kevin Wolf, 2020/06/17
- [PULL 40/43] iotests/292: data_file is unsupported, Kevin Wolf, 2020/06/17
- [PULL 37/43] block: lift blocksize property limit to 2 MiB, Kevin Wolf, 2020/06/17