* THE SOFTWARE.
*/
+#ifndef HW_EXTRAXFS_H
+#define HW_EXTRAXFS_H 1
+
+#include "net/net.h"
#include "etraxfs_dma.h"
-struct etraxfs_pic
+qemu_irq *cris_pic_init_cpu(CPUCRISState *env);
+
+/* Instantiate an ETRAXFS Ethernet MAC. */
+static inline DeviceState *
+etraxfs_eth_init(NICInfo *nd, hwaddr base, int phyaddr,
+ void *dma_out, void *dma_in)
{
- qemu_irq *irq;
- qemu_irq *nmi;
- qemu_irq *guru;
+ DeviceState *dev;
+ qemu_check_nic_model(nd, "fseth");
- void *internal;
-};
+ 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;
+}
-struct etraxfs_pic *etraxfs_pic_init(CPUState *env, target_phys_addr_t base);
-void etraxfs_timer_init(CPUState *env, qemu_irq *irqs, qemu_irq *nmi,
- target_phys_addr_t base);
-void *etraxfs_eth_init(NICInfo *nd, CPUState *env,
- qemu_irq *irq, target_phys_addr_t base, int phyaddr);
-void etraxfs_ser_init(CPUState *env, qemu_irq *irq, CharDriverState *chr,
- target_phys_addr_t base);
+#endif