static int lm32_juart_init(SysBusDevice *dev) { LM32JuartState *s = FROM_SYSBUS(typeof(*s), dev); s->chr = qdev_init_chardev(&dev->qdev); if (s->chr) { qemu_chr_add_handlers(s->chr, juart_can_rx, juart_rx, juart_event, s); } return 0; }
static int xilinx_uartlite_init(SysBusDevice *dev) { struct xlx_uartlite *s = FROM_SYSBUS(typeof (*s), dev); sysbus_init_irq(dev, &s->irq); uart_update_status(s); memory_region_init_io(&s->mmio, &uart_ops, s, "xilinx-uartlite", R_MAX * 4); sysbus_init_mmio(dev, &s->mmio); s->chr = qdev_init_chardev(&dev->qdev); if (s->chr) qemu_chr_add_handlers(s->chr, uart_can_rx, uart_rx, uart_event, s); return 0; }
static int etraxfs_ser_init(SysBusDevice *dev) { struct etrax_serial *s = FROM_SYSBUS(typeof (*s), dev); sysbus_init_irq(dev, &s->irq); memory_region_init_io(&s->mmio, &ser_ops, s, "etraxfs-serial", R_MAX * 4); sysbus_init_mmio(dev, &s->mmio); s->chr = qdev_init_chardev(&dev->qdev); if (s->chr) qemu_chr_add_handlers(s->chr, serial_can_receive, serial_receive, serial_event, s); return 0; }
static int etraxfs_ser_init(SysBusDevice *dev) { struct etrax_serial *s = FROM_SYSBUS(typeof (*s), dev); int ser_regs; sysbus_init_irq(dev, &s->irq); ser_regs = cpu_register_io_memory(ser_read, ser_write, s, DEVICE_NATIVE_ENDIAN); sysbus_init_mmio(dev, R_MAX * 4, ser_regs); s->chr = qdev_init_chardev(&dev->qdev); if (s->chr) qemu_chr_add_handlers(s->chr, serial_can_receive, serial_receive, serial_event, s); return 0; }
static int milkymist_uart_init(SysBusDevice *dev) { MilkymistUartState *s = FROM_SYSBUS(typeof(*s), dev); sysbus_init_irq(dev, &s->irq); memory_region_init_io(&s->regs_region, &uart_mmio_ops, s, "milkymist-uart", R_MAX * 4); sysbus_init_mmio(dev, &s->regs_region); s->chr = qdev_init_chardev(&dev->qdev); if (s->chr) { qemu_chr_add_handlers(s->chr, uart_can_rx, uart_rx, uart_event, s); } return 0; }
static int xilinx_uartlite_init(SysBusDevice *dev) { struct xlx_uartlite *s = FROM_SYSBUS(typeof (*s), dev); int uart_regs; sysbus_init_irq(dev, &s->irq); uart_update_status(s); uart_regs = cpu_register_io_memory(uart_read, uart_write, s, DEVICE_NATIVE_ENDIAN); sysbus_init_mmio(dev, R_MAX * 4, uart_regs); s->chr = qdev_init_chardev(&dev->qdev); if (s->chr) qemu_chr_add_handlers(s->chr, uart_can_rx, uart_rx, uart_event, s); return 0; }
VirtIODevice *virtio_console_init(DeviceState *dev) { VirtIOConsole *s; s = (VirtIOConsole *)virtio_common_init("virtio-console", VIRTIO_ID_CONSOLE, 0, sizeof(VirtIOConsole)); s->vdev.get_features = virtio_console_get_features; s->ivq = virtio_add_queue(&s->vdev, 128, virtio_console_handle_input); s->ovq = virtio_add_queue(&s->vdev, 128, virtio_console_handle_output); s->chr = qdev_init_chardev(dev); qemu_chr_add_handlers(s->chr, vcon_can_read, vcon_read, vcon_event, s); register_savevm("virtio-console", -1, 1, virtio_console_save, virtio_console_load, s); return &s->vdev; }
static int lm32_uart_init(SysBusDevice *dev) { LM32UartState *s = FROM_SYSBUS(typeof(*s), dev); int uart_regs; sysbus_init_irq(dev, &s->irq); uart_regs = cpu_register_io_memory(uart_read_fn, uart_write_fn, s, DEVICE_NATIVE_ENDIAN); sysbus_init_mmio(dev, R_MAX * 4, uart_regs); s->chr = qdev_init_chardev(&dev->qdev); if (s->chr) { qemu_chr_add_handlers(s->chr, uart_can_rx, uart_rx, uart_event, s); } return 0; }
static void etraxfs_ser_init(SysBusDevice *dev) { struct etrax_serial *s = FROM_SYSBUS(typeof (*s), dev); int ser_regs; /* transmitter begins ready and idle. */ s->regs[RS_STAT_DIN] |= (1 << STAT_TR_RDY); s->regs[RS_STAT_DIN] |= (1 << STAT_TR_IDLE); sysbus_init_irq(dev, &s->irq); ser_regs = cpu_register_io_memory(ser_read, ser_write, s); sysbus_init_mmio(dev, R_MAX * 4, ser_regs); s->chr = qdev_init_chardev(&dev->qdev); if (s->chr) qemu_chr_add_handlers(s->chr, serial_can_receive, serial_receive, serial_event, s); }
static int stm32_button_init(SysBusDevice *dev, const char* id) { stm32_button_state *s = FROM_SYSBUS(stm32_button_state, dev); //Initialisation de la pin de sortie //Initialisation of the output pin qdev_init_gpio_out(&dev->qdev, &s->gpio_out, 1); //Initialisation du Chardev s->chr = qdev_init_chardev(&dev->qdev); s->chr = qemu_chr_find(id); if (s->chr) { qemu_chr_add_handlers(s->chr, stm32_can_receive, stm32_receive, stm32_event, s); } stm32_button_reset(s); vmstate_register(&dev->qdev, -1, &vmstate_stm32_button, s); return 0; }
static int stm32_led_init(SysBusDevice *dev, const char* id) { stm32_led_state *s = FROM_SYSBUS(stm32_led_state, dev); //Initialisation des pins d'entrées qdev_init_gpio_in(&dev->qdev, stm32_led_recvirq, 1); //Initialiser le chardev s->chr = qdev_init_chardev(&dev->qdev); s->chr = qemu_chr_find(id); if (s->chr) { qemu_chr_add_handlers(s->chr, stm32_can_receive, stm32_receive, stm32_event, s); } stm32_led_reset(s); vmstate_register(&dev->qdev, -1, &vmstate_stm32_led, s); return 0; }