Include hw/irq.h a lot less
In my "build everything" tree, changing hw/irq.h triggers a recompile
of some 5400 out of 6600 objects (not counting tests and objects that
don't depend on qemu/osdep.h).
hw/hw.h supposedly includes it for convenience. Several other headers
include it just to get qemu_irq and.or qemu_irq_handler.
Move the qemu_irq and qemu_irq_handler typedefs from hw/irq.h to
qemu/typedefs.h, and then include hw/irq.h only where it's still
needed. Touching it now recompiles only some 500 objects.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190812052359.30071-13-armbru@redhat.com>
diff --git a/hw/intc/allwinner-a10-pic.c b/hw/intc/allwinner-a10-pic.c
index 080bdd7..9df3e18 100644
--- a/hw/intc/allwinner-a10-pic.c
+++ b/hw/intc/allwinner-a10-pic.c
@@ -19,6 +19,7 @@
#include "hw/sysbus.h"
#include "sysemu/sysemu.h"
#include "hw/intc/allwinner-a10-pic.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
index 77427a4..7af591d 100644
--- a/hw/intc/arm_gic.c
+++ b/hw/intc/arm_gic.c
@@ -19,6 +19,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "gic_internal.h"
#include "qapi/error.h"
diff --git a/hw/intc/arm_gicv2m.c b/hw/intc/arm_gicv2m.c
index 05f299f..2c96d4f 100644
--- a/hw/intc/arm_gicv2m.c
+++ b/hw/intc/arm_gicv2m.c
@@ -28,6 +28,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/sysbus.h"
+#include "hw/irq.h"
#include "hw/pci/msi.h"
#include "sysemu/kvm.h"
#include "qemu/log.h"
diff --git a/hw/intc/arm_gicv3_cpuif.c b/hw/intc/arm_gicv3_cpuif.c
index 3b212d9..a254b0c 100644
--- a/hw/intc/arm_gicv3_cpuif.c
+++ b/hw/intc/arm_gicv3_cpuif.c
@@ -17,6 +17,7 @@
#include "qemu/main-loop.h"
#include "trace.h"
#include "gicv3_internal.h"
+#include "hw/irq.h"
#include "cpu.h"
void gicv3_set_gicv3state(CPUState *cpu, GICv3CPUState *s)
diff --git a/hw/intc/armv7m_nvic.c b/hw/intc/armv7m_nvic.c
index 9f8f0d3..69670a2 100644
--- a/hw/intc/armv7m_nvic.c
+++ b/hw/intc/armv7m_nvic.c
@@ -16,6 +16,7 @@
#include "hw/sysbus.h"
#include "qemu/timer.h"
#include "hw/intc/armv7m_nvic.h"
+#include "hw/irq.h"
#include "target/arm/cpu.h"
#include "exec/exec-all.h"
#include "qemu/log.h"
diff --git a/hw/intc/aspeed_vic.c b/hw/intc/aspeed_vic.c
index 266a309..e17343c 100644
--- a/hw/intc/aspeed_vic.c
+++ b/hw/intc/aspeed_vic.c
@@ -29,6 +29,7 @@
#include "qemu/osdep.h"
#include "hw/intc/aspeed_vic.h"
+#include "hw/irq.h"
#include "qemu/bitops.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/bcm2835_ic.c b/hw/intc/bcm2835_ic.c
index 61d3764..20db52b 100644
--- a/hw/intc/bcm2835_ic.c
+++ b/hw/intc/bcm2835_ic.c
@@ -14,6 +14,7 @@
#include "qemu/osdep.h"
#include "hw/intc/bcm2835_ic.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/bcm2836_control.c b/hw/intc/bcm2836_control.c
index 66417c8..a983fe5 100644
--- a/hw/intc/bcm2836_control.c
+++ b/hw/intc/bcm2836_control.c
@@ -17,6 +17,7 @@
#include "qemu/osdep.h"
#include "hw/intc/bcm2836_control.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/etraxfs_pic.c b/hw/intc/etraxfs_pic.c
index 20e1391..dc72dd5 100644
--- a/hw/intc/etraxfs_pic.c
+++ b/hw/intc/etraxfs_pic.c
@@ -26,6 +26,7 @@
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "hw/hw.h"
+#include "hw/irq.h"
//#include "pc.h"
//#include "etraxfs.h"
diff --git a/hw/intc/exynos4210_combiner.c b/hw/intc/exynos4210_combiner.c
index 6fed0e8..ed55811 100644
--- a/hw/intc/exynos4210_combiner.c
+++ b/hw/intc/exynos4210_combiner.c
@@ -32,6 +32,7 @@
#include "qemu/module.h"
#include "hw/arm/exynos4210.h"
+#include "hw/irq.h"
//#define DEBUG_COMBINER
diff --git a/hw/intc/heathrow_pic.c b/hw/intc/heathrow_pic.c
index c282ac4..ac1f7c0 100644
--- a/hw/intc/heathrow_pic.c
+++ b/hw/intc/heathrow_pic.c
@@ -28,6 +28,7 @@
#include "hw/ppc/mac.h"
#include "qemu/module.h"
#include "hw/intc/heathrow_pic.h"
+#include "hw/irq.h"
#include "trace.h"
static inline int heathrow_check_irq(HeathrowPICState *pic)
diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c
index 76f3d87..e581e6b 100644
--- a/hw/intc/i8259.c
+++ b/hw/intc/i8259.c
@@ -21,9 +21,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "qemu/osdep.h"
#include "hw/hw.h"
#include "hw/i386/pc.h"
+#include "hw/irq.h"
#include "hw/isa/isa.h"
#include "qemu/timer.h"
#include "qemu/log.h"
diff --git a/hw/intc/imx_avic.c b/hw/intc/imx_avic.c
index 83a4101..022ed05 100644
--- a/hw/intc/imx_avic.c
+++ b/hw/intc/imx_avic.c
@@ -17,6 +17,7 @@
#include "qemu/osdep.h"
#include "hw/intc/imx_avic.h"
+#include "hw/irq.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/lm32_pic.c b/hw/intc/lm32_pic.c
index 170fa7a..c133d30 100644
--- a/hw/intc/lm32_pic.c
+++ b/hw/intc/lm32_pic.c
@@ -26,6 +26,7 @@
#include "trace.h"
#include "hw/lm32/lm32_pic.h"
#include "hw/intc/intc.h"
+#include "hw/irq.h"
#define TYPE_LM32_PIC "lm32-pic"
#define LM32_PIC(obj) OBJECT_CHECK(LM32PicState, (obj), TYPE_LM32_PIC)
diff --git a/hw/intc/mips_gic.c b/hw/intc/mips_gic.c
index e27e333..166eb6e 100644
--- a/hw/intc/mips_gic.c
+++ b/hw/intc/mips_gic.c
@@ -21,6 +21,7 @@
#include "sysemu/reset.h"
#include "kvm_mips.h"
#include "hw/intc/mips_gic.h"
+#include "hw/irq.h"
static void mips_gic_set_vp_irq(MIPSGICState *gic, int vp, int pin)
{
diff --git a/hw/intc/nios2_iic.c b/hw/intc/nios2_iic.c
index 7329434..3a5d86c 100644
--- a/hw/intc/nios2_iic.c
+++ b/hw/intc/nios2_iic.c
@@ -22,6 +22,7 @@
#include "qemu/module.h"
#include "qapi/error.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "cpu.h"
diff --git a/hw/intc/omap_intc.c b/hw/intc/omap_intc.c
index 053e67c..4b3ddc0 100644
--- a/hw/intc/omap_intc.c
+++ b/hw/intc/omap_intc.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/arm/omap.h"
#include "hw/sysbus.h"
#include "qemu/error-report.h"
diff --git a/hw/intc/ompic.c b/hw/intc/ompic.c
index 9cb310a..31004ac 100644
--- a/hw/intc/ompic.c
+++ b/hw/intc/ompic.c
@@ -11,6 +11,7 @@
#include "qemu/module.h"
#include "qapi/error.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "exec/memory.h"
diff --git a/hw/intc/openpic.c b/hw/intc/openpic.c
index 9b4fc6c..49d64bc 100644
--- a/hw/intc/openpic.c
+++ b/hw/intc/openpic.c
@@ -36,6 +36,7 @@
#include "qemu/osdep.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/ppc/mac.h"
#include "hw/pci/pci.h"
#include "hw/ppc/openpic.h"
diff --git a/hw/intc/pl190.c b/hw/intc/pl190.c
index b4f31ef..1a5e760 100644
--- a/hw/intc/pl190.c
+++ b/hw/intc/pl190.c
@@ -8,6 +8,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#include "qemu/log.h"
#include "qemu/module.h"
diff --git a/hw/intc/puv3_intc.c b/hw/intc/puv3_intc.c
index e2f6d98..e018955 100644
--- a/hw/intc/puv3_intc.c
+++ b/hw/intc/puv3_intc.c
@@ -10,6 +10,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/irq.h"
#include "hw/sysbus.h"
#undef DEBUG_PUV3
diff --git a/hw/intc/realview_gic.c b/hw/intc/realview_gic.c
index 9955754..ac22a2a 100644
--- a/hw/intc/realview_gic.c
+++ b/hw/intc/realview_gic.c
@@ -11,6 +11,7 @@
#include "qapi/error.h"
#include "qemu/module.h"
#include "hw/intc/realview_gic.h"
+#include "hw/irq.h"
static void realview_gic_set_irq(void *opaque, int irq, int level)
{
diff --git a/hw/intc/sh_intc.c b/hw/intc/sh_intc.c
index bac7886..6252150 100644
--- a/hw/intc/sh_intc.c
+++ b/hw/intc/sh_intc.c
@@ -12,6 +12,7 @@
#include "cpu.h"
#include "hw/sh4/sh_intc.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#include "hw/sh4/sh.h"
//#define DEBUG_INTC
diff --git a/hw/intc/slavio_intctl.c b/hw/intc/slavio_intctl.c
index ca52875..e97afca 100644
--- a/hw/intc/slavio_intctl.c
+++ b/hw/intc/slavio_intctl.c
@@ -27,6 +27,7 @@
#include "qemu/module.h"
#include "hw/sysbus.h"
#include "hw/intc/intc.h"
+#include "hw/irq.h"
#include "trace.h"
//#define DEBUG_IRQ_COUNT
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index 9ed224c..beb37b1 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -37,6 +37,7 @@
#include "qapi/visitor.h"
#include "monitor/monitor.h"
#include "hw/intc/intc.h"
+#include "hw/irq.h"
#include "sysemu/kvm.h"
#include "sysemu/reset.h"
diff --git a/hw/intc/xilinx_intc.c b/hw/intc/xilinx_intc.c
index d5363e9..baf5353 100644
--- a/hw/intc/xilinx_intc.c
+++ b/hw/intc/xilinx_intc.c
@@ -26,6 +26,7 @@
#include "hw/sysbus.h"
#include "qemu/module.h"
#include "hw/hw.h"
+#include "hw/irq.h"
#define D(x)
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index f30bd68..9dcbe8b 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -17,6 +17,7 @@
#include "sysemu/reset.h"
#include "hw/qdev-properties.h"
#include "monitor/monitor.h"
+#include "hw/irq.h"
#include "hw/ppc/xive.h"
#include "hw/ppc/xive_regs.h"
diff --git a/hw/intc/xlnx-pmu-iomod-intc.c b/hw/intc/xlnx-pmu-iomod-intc.c
index 0b8ff89..9fcd17c 100644
--- a/hw/intc/xlnx-pmu-iomod-intc.c
+++ b/hw/intc/xlnx-pmu-iomod-intc.c
@@ -31,6 +31,7 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/intc/xlnx-pmu-iomod-intc.h"
+#include "hw/irq.h"
#ifndef XLNX_PMU_IO_INTC_ERR_DEBUG
#define XLNX_PMU_IO_INTC_ERR_DEBUG 0
diff --git a/hw/intc/xlnx-zynqmp-ipi.c b/hw/intc/xlnx-zynqmp-ipi.c
index 0dad6c0..43a1b789 100644
--- a/hw/intc/xlnx-zynqmp-ipi.c
+++ b/hw/intc/xlnx-zynqmp-ipi.c
@@ -32,6 +32,7 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "hw/intc/xlnx-zynqmp-ipi.h"
+#include "hw/irq.h"
#ifndef XLNX_ZYNQMP_IPI_ERR_DEBUG
#define XLNX_ZYNQMP_IPI_ERR_DEBUG 0