hw/core/split-irq: Device that splits IRQ lines
commit5edb1b3fa93217cf7adc50725a69ab0cefcea973
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 2 Mar 2018 10:45:38 +0000 (2 10:45 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 2 Mar 2018 11:03:45 +0000 (2 11:03 +0000)
tree0cce7bbddb09998b7162d7da5fcb6e2c31c7811d
parent4a151677a8ea80e65f519fed1df92c0db6350a02
hw/core/split-irq: Device that splits IRQ lines

In some board or SoC models it is necessary to split a qemu_irq line
so that one input can feed multiple outputs.  We currently have
qemu_irq_split() for this, but that has several deficiencies:
 * it can only handle splitting a line into two
 * it unavoidably leaks memory, so it can't be used
   in a device that can be deleted

Implement a qdev device that encapsulates splitting of IRQs, with a
configurable number of outputs.  (This is in some ways the inverse of
the TYPE_OR_IRQ device.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180220180325.29818-13-peter.maydell@linaro.org
hw/core/Makefile.objs
hw/core/split-irq.c [new file with mode: 0644]
include/hw/core/split-irq.h [new file with mode: 0644]
include/hw/irq.h