aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>2019-06-24 17:19:22 +0200
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>2020-06-09 06:59:44 +0200
commit4bbadef0e3da3f455374e83cb9249c2afe497b24 (patch)
tree577aec77535e5a214def8c40c93c2fb32811d9ef
parent6c339493c8dbb709c98f471144eebf74c4cca1ad (diff)
hw/misc/empty_slot: Convert 'size' field as qdev property
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Acked-by: Artyom Tarasenko <atar4qemu@gmail.com> Message-Id: <20200510152840.13558-4-f4bug@amsat.org>
-rw-r--r--hw/core/empty_slot.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/hw/core/empty_slot.c b/hw/core/empty_slot.c
index 5ab426e965..0df086fe98 100644
--- a/hw/core/empty_slot.c
+++ b/hw/core/empty_slot.c
@@ -12,6 +12,7 @@
#include "qemu/osdep.h"
#include "hw/sysbus.h"
#include "qemu/module.h"
+#include "hw/qdev-properties.h"
#include "hw/empty_slot.h"
//#define DEBUG_EMPTY_SLOT
@@ -57,17 +58,13 @@ void empty_slot_init(hwaddr addr, uint64_t slot_size)
if (slot_size > 0) {
/* Only empty slots larger than 0 byte need handling. */
DeviceState *dev;
- SysBusDevice *s;
- EmptySlot *e;
dev = qdev_create(NULL, TYPE_EMPTY_SLOT);
- s = SYS_BUS_DEVICE(dev);
- e = EMPTY_SLOT(dev);
- e->size = slot_size;
+ qdev_prop_set_uint64(dev, "size", slot_size);
qdev_init_nofail(dev);
- sysbus_mmio_map_overlap(s, 0, addr, -10000);
+ sysbus_mmio_map_overlap(SYS_BUS_DEVICE(dev), 0, addr, -10000);
}
}
@@ -80,11 +77,17 @@ static void empty_slot_realize(DeviceState *dev, Error **errp)
sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->iomem);
}
+static Property empty_slot_properties[] = {
+ DEFINE_PROP_UINT64("size", EmptySlot, size, 0),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
static void empty_slot_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
dc->realize = empty_slot_realize;
+ device_class_set_props(dc, empty_slot_properties);
}
static const TypeInfo empty_slot_info = {