Commit 031ffd9a authored by Roman Kagan's avatar Roman Kagan Committed by Kevin Wolf
Browse files

qdev-properties: add getter for size32 and blocksize



Add getter for size32, and use it for blocksize, too.

In its human-readable branch, it reports approximate size in
human-readable units next to the exact byte value, like the getter for
64bit size does.

Adjust the expected test output accordingly.

Signed-off-by: default avatarRoman Kagan <rvkagan@yandex-team.ru>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Message-Id: <20200528225516.1676602-8-rvkagan@yandex-team.ru>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 4f44bbc5
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -730,6 +730,17 @@ const PropertyInfo qdev_prop_pci_devfn = {

/* --- 32bit unsigned int 'size' type --- */

static void get_size32(Object *obj, Visitor *v, const char *name, void *opaque,
                       Error **errp)
{
    DeviceState *dev = DEVICE(obj);
    Property *prop = opaque;
    uint32_t *ptr = qdev_get_prop_ptr(dev, prop);
    uint64_t value = *ptr;

    visit_type_size(v, name, &value, errp);
}

static void set_size32(Object *obj, Visitor *v, const char *name, void *opaque,
                       Error **errp)
{
@@ -763,7 +774,7 @@ static void set_size32(Object *obj, Visitor *v, const char *name, void *opaque,

const PropertyInfo qdev_prop_size32 = {
    .name  = "size",
    .get = get_uint32,
    .get = get_size32,
    .set = set_size32,
    .set_default_value = set_default_value_uint,
};
@@ -821,7 +832,7 @@ const PropertyInfo qdev_prop_blocksize = {
    .name  = "size",
    .description = "A power of two between " MIN_BLOCK_SIZE_STR
                   " and " MAX_BLOCK_SIZE_STR,
    .get   = get_uint32,
    .get   = get_size32,
    .set   = set_blocksize,
    .set_default_value = set_default_value_uint,
};
+265 −265

File changed.

Preview size limit exceeded, changes collapsed.