1#ifndef HW_LM32_H 2#define HW_LM32_H 3 4#include "hw/char/lm32_juart.h" 5 6static inline DeviceState *lm32_pic_init(qemu_irq cpu_irq) 7{ 8 DeviceState *dev; 9 SysBusDevice *d; 10 11 dev = qdev_create(NULL, "lm32-pic"); 12 qdev_init_nofail(dev); 13 d = SYS_BUS_DEVICE(dev); 14 sysbus_connect_irq(d, 0, cpu_irq); 15 16 return dev; 17} 18 19static inline DeviceState *lm32_juart_init(Chardev *chr) 20{ 21 DeviceState *dev; 22 23 dev = qdev_create(NULL, TYPE_LM32_JUART); 24 qdev_prop_set_chr(dev, "chardev", chr); 25 qdev_init_nofail(dev); 26 27 return dev; 28} 29 30static inline DeviceState *lm32_uart_create(hwaddr addr, 31 qemu_irq irq, 32 Chardev *chr) 33{ 34 DeviceState *dev; 35 SysBusDevice *s; 36 37 dev = qdev_create(NULL, "lm32-uart"); 38 s = SYS_BUS_DEVICE(dev); 39 qdev_prop_set_chr(dev, "chardev", chr); 40 qdev_init_nofail(dev); 41 sysbus_mmio_map(s, 0, addr); 42 sysbus_connect_irq(s, 0, irq); 43 return dev; 44} 45 46#endif 47