qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

lance: replace PROP_PTR with PROP_LINK

The device remains non-user creatable since it is a sysbus device.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

+5 -6
+1 -1
hw/dma/sparc32_dma.c
··· 346 346 d = qdev_create(NULL, TYPE_LANCE); 347 347 object_property_add_child(OBJECT(dev), "lance", OBJECT(d), errp); 348 348 qdev_set_nic_properties(d, nd); 349 - qdev_prop_set_ptr(d, "dma", dev); 349 + object_property_set_link(OBJECT(d), OBJECT(dev), "dma", errp); 350 350 qdev_init_nofail(d); 351 351 } 352 352
+2 -3
hw/net/lance.c
··· 138 138 } 139 139 140 140 static Property lance_properties[] = { 141 - DEFINE_PROP_PTR("dma", SysBusPCNetState, state.dma_opaque), 141 + DEFINE_PROP_LINK("dma", SysBusPCNetState, state.dma_opaque, 142 + TYPE_DEVICE, DeviceState *), 142 143 DEFINE_NIC_PROPERTIES(SysBusPCNetState, state.conf), 143 144 DEFINE_PROP_END_OF_LIST(), 144 145 }; ··· 153 154 dc->reset = lance_reset; 154 155 dc->vmsd = &vmstate_lance; 155 156 dc->props = lance_properties; 156 - /* Reason: pointer property "dma" */ 157 - dc->user_creatable = false; 158 157 } 159 158 160 159 static const TypeInfo lance_info = {
+1 -1
hw/net/pcnet-pci.c
··· 231 231 s->irq = pci_allocate_irq(pci_dev); 232 232 s->phys_mem_read = pci_physical_memory_read; 233 233 s->phys_mem_write = pci_physical_memory_write; 234 - s->dma_opaque = pci_dev; 234 + s->dma_opaque = DEVICE(pci_dev); 235 235 236 236 pcnet_common_init(DEVICE(pci_dev), s, &net_pci_pcnet_info); 237 237 }
+1 -1
hw/net/pcnet.h
··· 50 50 uint8_t *buf, int len, int do_bswap); 51 51 void (*phys_mem_write)(void *dma_opaque, hwaddr addr, 52 52 uint8_t *buf, int len, int do_bswap); 53 - void *dma_opaque; 53 + DeviceState *dma_opaque; 54 54 int tx_busy; 55 55 int looptest; 56 56 };