diff options
Diffstat (limited to 'hw/etraxfs.h')
-rw-r--r-- | hw/etraxfs.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/hw/etraxfs.h b/hw/etraxfs.h index 5c61f1b41b..1554b0b8e8 100644 --- a/hw/etraxfs.h +++ b/hw/etraxfs.h @@ -25,6 +25,21 @@ #include "etraxfs_dma.h" qemu_irq *cris_pic_init_cpu(CPUState *env); -void etraxfs_eth_init(NICInfo *nd, target_phys_addr_t base, int phyaddr, - struct etraxfs_dma_client *dma_out, - struct etraxfs_dma_client *dma_in); + +/* Instantiate an ETRAXFS Ethernet MAC. */ +static inline DeviceState * +etraxfs_eth_init(NICInfo *nd, target_phys_addr_t base, int phyaddr, + void *dma_out, void *dma_in) +{ + DeviceState *dev; + qemu_check_nic_model(nd, "fseth"); + + dev = qdev_create(NULL, "etraxfs-eth"); + qdev_set_nic_properties(dev, nd); + qdev_prop_set_uint32(dev, "phyaddr", phyaddr); + qdev_prop_set_ptr(dev, "dma_out", dma_out); + qdev_prop_set_ptr(dev, "dma_in", dma_in); + qdev_init_nofail(dev); + sysbus_mmio_map(sysbus_from_qdev(dev), 0, base); + return dev; +} |