// creates VIC
sysbus_create_varargs("pl190", 0x10140000, ARM_CPU_IRQ, ARM_CPU_FIQ)
qdev_create
pl190_init
// input GPIO, 32 inputs, set input handler
qdev_init_gpio_in(..,pl190_set_irq,32)
// output GPIO, 2 outputs
sysbus_init_irq(... &s->irq)
sysbus_init_irq(... &s->frq)
// connect pl190 GPIO out to CPU GPIO in
sysbus_connect_irq(n, IRQ or FIO)
pl190_set_irq will be called if any input GPIO were raised.
// PL190's interrupt handler
pl190_set_irq,
pl190_update
// raise the GPIO output, which connects to CPU's GPIO input
qemu_set_irq(s->irq, ...)
qemu_set_irq(s->frq, ...)
// CPU's interrupt handler
arm_cpu_set_irq
cpu_interrupt
tcg_handle_interrupt