sparc32-ledma: use object_initialize_child() for lance child object
Store the child object directly within the sparc32-ledma object rather than using link properties. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20200926140216.7368-3-mark.cave-ayland@ilande.co.uk> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
parent
1f10fd53cb
commit
bce83ed998
|
@ -331,24 +331,26 @@ static const TypeInfo sparc32_espdma_device_info = {
|
||||||
static void sparc32_ledma_device_init(Object *obj)
|
static void sparc32_ledma_device_init(Object *obj)
|
||||||
{
|
{
|
||||||
DMADeviceState *s = SPARC32_DMA_DEVICE(obj);
|
DMADeviceState *s = SPARC32_DMA_DEVICE(obj);
|
||||||
|
LEDMADeviceState *ls = SPARC32_LEDMA_DEVICE(obj);
|
||||||
|
|
||||||
memory_region_init_io(&s->iomem, OBJECT(s), &dma_mem_ops, s,
|
memory_region_init_io(&s->iomem, OBJECT(s), &dma_mem_ops, s,
|
||||||
"ledma-mmio", DMA_SIZE);
|
"ledma-mmio", DMA_SIZE);
|
||||||
|
|
||||||
|
object_initialize_child(obj, "lance", &ls->lance, TYPE_LANCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sparc32_ledma_device_realize(DeviceState *dev, Error **errp)
|
static void sparc32_ledma_device_realize(DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
DeviceState *d;
|
LEDMADeviceState *s = SPARC32_LEDMA_DEVICE(dev);
|
||||||
|
SysBusPCNetState *lance = SYSBUS_PCNET(&s->lance);
|
||||||
NICInfo *nd = &nd_table[0];
|
NICInfo *nd = &nd_table[0];
|
||||||
|
|
||||||
/* FIXME use qdev NIC properties instead of nd_table[] */
|
/* FIXME use qdev NIC properties instead of nd_table[] */
|
||||||
qemu_check_nic_model(nd, TYPE_LANCE);
|
qemu_check_nic_model(nd, TYPE_LANCE);
|
||||||
|
|
||||||
d = qdev_new(TYPE_LANCE);
|
qdev_set_nic_properties(DEVICE(lance), nd);
|
||||||
object_property_add_child(OBJECT(dev), "lance", OBJECT(d));
|
object_property_set_link(OBJECT(lance), "dma", OBJECT(dev), &error_abort);
|
||||||
qdev_set_nic_properties(d, nd);
|
sysbus_realize(SYS_BUS_DEVICE(lance), &error_fatal);
|
||||||
object_property_set_link(OBJECT(d), "dma", OBJECT(dev), &error_abort);
|
|
||||||
sysbus_realize_and_unref(SYS_BUS_DEVICE(d), &error_fatal);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sparc32_ledma_device_class_init(ObjectClass *klass, void *data)
|
static void sparc32_ledma_device_class_init(ObjectClass *klass, void *data)
|
||||||
|
|
|
@ -37,7 +37,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(LEDMADeviceState, SPARC32_LEDMA_DEVICE)
|
||||||
struct LEDMADeviceState {
|
struct LEDMADeviceState {
|
||||||
DMADeviceState parent_obj;
|
DMADeviceState parent_obj;
|
||||||
|
|
||||||
SysBusPCNetState *lance;
|
SysBusPCNetState lance;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TYPE_SPARC32_DMA "sparc32-dma"
|
#define TYPE_SPARC32_DMA "sparc32-dma"
|
||||||
|
|
Loading…
Reference in a new issue