Remove the need to include i386/pc.h to get to the i8259 functions.
This is enough to remove the inclusion of hw/i386/pc.h from all non-x86
files.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/alpha/alpha_sys.h | 3 ++-
hw/alpha/dp264.c | 1 +
hw/hppa/hppa_sys.h | 3 ++-
hw/hppa/machine.c | 1 +
hw/i386/kvm/i8259.c | 1 +
hw/i386/microvm.c | 1 +
hw/i386/pc.c | 1 +
hw/i386/x86.c | 1 +
hw/input/pckbd.c | 1 -
hw/intc/Kconfig | 2 ++
hw/intc/apic.c | 2 +-
hw/intc/i8259.c | 2 +-
hw/intc/i8259_common.c | 2 +-
hw/intc/ioapic.c | 3 ++-
hw/isa/i82378.c | 2 +-
hw/isa/lpc_ich9.c | 1 -
hw/isa/piix4.c | 2 +-
hw/mips/gt64xxx_pci.c | 2 +-
hw/mips/mips_fulong2e.c | 2 +-
hw/mips/mips_jazz.c | 2 +-
hw/mips/mips_r4k.c | 2 +-
hw/pci-host/bonito.c | 1 -
hw/pci-host/prep.c | 2 +-
include/hw/i386/pc.h | 8 --------
include/hw/intc/i8259.h | 12 ++++++++++++
include/hw/isa/i8259_internal.h | 2 +-
target/i386/monitor.c | 1 -
27 files changed, 37 insertions(+), 26 deletions(-)
create mode 100644 include/hw/intc/i8259.h
diff --git a/hw/alpha/alpha_sys.h b/hw/alpha/alpha_sys.h
index 4e127a6..95033d7 100644
--- a/hw/alpha/alpha_sys.h
+++ b/hw/alpha/alpha_sys.h
@@ -7,7 +7,8 @@
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
#include "hw/ide.h"
-#include "hw/i386/pc.h"
+#include "hw/boards.h"
+#include "hw/intc/i8259.h"
PCIBus *typhoon_init(ram_addr_t, ISABus **, qemu_irq *, AlphaCPU *[4],
diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index 4320497..5ed9a5a 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -20,6 +20,7 @@
#include "hw/timer/i8254.h"
#include "hw/isa/superio.h"
#include "hw/dma/i8257.h"
+#include "net/net.h"
#include "qemu/cutils.h"
#define MAX_IDE_BUS 2
diff --git a/hw/hppa/hppa_sys.h b/hw/hppa/hppa_sys.h
index 43d25d2..4e50196 100644
--- a/hw/hppa/hppa_sys.h
+++ b/hw/hppa/hppa_sys.h
@@ -6,7 +6,8 @@
#include "hw/pci/pci.h"
#include "hw/pci/pci_host.h"
#include "hw/ide.h"
-#include "hw/i386/pc.h"
+#include "hw/boards.h"
+#include "hw/intc/i8259.h"
#include "hppa_hardware.h"
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index b30aba6..5d0de26 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -19,6 +19,7 @@
#include "hppa_sys.h"
#include "qemu/units.h"
#include "qapi/error.h"
+#include "net/net.h"
#include "qemu/log.h"
#define MAX_IDE_BUS 2
diff --git a/hw/i386/kvm/i8259.c b/hw/i386/kvm/i8259.c
index d0c1b1d..e404fdc 100644
--- a/hw/i386/kvm/i8259.c
+++ b/hw/i386/kvm/i8259.c
@@ -12,6 +12,7 @@
#include "qemu/osdep.h"
#include "hw/isa/i8259_internal.h"
+#include "hw/intc/i8259.h"
#include "qemu/module.h"
#include "hw/i386/apic_internal.h"
#include "hw/irq.h"
diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
index def37e6..2068319 100644
--- a/hw/i386/microvm.c
+++ b/hw/i386/microvm.c
@@ -34,6 +34,7 @@
#include "hw/i386/x86.h"
#include "hw/i386/pc.h"
#include "target/i386/cpu.h"
+#include "hw/intc/i8259.h"
#include "hw/timer/i8254.h"
#include "hw/rtc/mc146818rtc.h"
#include "hw/char/serial.h"
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 3d2c5d8..fdbd2bf 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -44,6 +44,7 @@
#include "migration/vmstate.h"
#include "multiboot.h"
#include "hw/rtc/mc146818rtc.h"
+#include "hw/intc/i8259.h"
#include "hw/dma/i8257.h"
#include "hw/timer/i8254.h"
#include "hw/input/i8042.h"
diff --git a/hw/i386/x86.c b/hw/i386/x86.c
index 394edc2..3e4aee5 100644
--- a/hw/i386/x86.c
+++ b/hw/i386/x86.c
@@ -39,6 +39,7 @@
#include "target/i386/cpu.h"
#include "hw/i386/topology.h"
#include "hw/i386/fw_cfg.h"
+#include "hw/intc/i8259.h"
#include "hw/acpi/cpu_hotplug.h"
#include "hw/nmi.h"
diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index f0acfd8..2f09f78 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -26,7 +26,6 @@
#include "qemu/log.h"
#include "hw/isa/isa.h"
#include "migration/vmstate.h"
-#include "hw/i386/pc.h"
#include "hw/input/ps2.h"
#include "hw/irq.h"
#include "hw/input/i8042.h"
diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
index 5347f84..10a680b 100644
--- a/hw/intc/Kconfig
+++ b/hw/intc/Kconfig
@@ -9,6 +9,7 @@ config PL190
config IOAPIC
bool
+ select I8259
config ARM_GIC
bool
@@ -21,6 +22,7 @@ config OPENPIC
config APIC
bool
select MSI_NONBROKEN
+ select I8259
config ARM_GIC_KVM
bool
diff --git a/hw/intc/apic.c b/hw/intc/apic.c
index 2a74f7b..bd40467 100644
--- a/hw/intc/apic.c
+++ b/hw/intc/apic.c
@@ -22,10 +22,10 @@
#include "hw/i386/apic_internal.h"
#include "hw/i386/apic.h"
#include "hw/i386/ioapic.h"
+#include "hw/intc/i8259.h"
#include "hw/pci/msi.h"
#include "qemu/host-utils.h"
#include "trace.h"
-#include "hw/i386/pc.h"
#include "hw/i386/apic-msidef.h"
#include "qapi/error.h"
diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c
index 211a989..51b27f6 100644
--- a/hw/intc/i8259.c
+++ b/hw/intc/i8259.c
@@ -23,7 +23,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/i386/pc.h"
+#include "hw/intc/i8259.h"
#include "hw/irq.h"
#include "hw/isa/isa.h"
#include "qemu/timer.h"
diff --git a/hw/intc/i8259_common.c b/hw/intc/i8259_common.c
index bd37bb5..e7b1a10 100644
--- a/hw/intc/i8259_common.c
+++ b/hw/intc/i8259_common.c
@@ -24,7 +24,7 @@
*/
#include "qemu/osdep.h"
-#include "hw/i386/pc.h"
+#include "hw/intc/i8259.h"
#include "hw/isa/i8259_internal.h"
#include "hw/qdev-properties.h"
#include "migration/vmstate.h"
diff --git a/hw/intc/ioapic.c b/hw/intc/ioapic.c
index ead14e1..4f55776 100644
--- a/hw/intc/ioapic.c
+++ b/hw/intc/ioapic.c
@@ -23,10 +23,11 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "monitor/monitor.h"
-#include "hw/i386/pc.h"
#include "hw/i386/apic.h"
#include "hw/i386/ioapic.h"
#include "hw/i386/ioapic_internal.h"
+#include "hw/i386/x86.h"
+#include "hw/intc/i8259.h"
#include "hw/pci/msi.h"
#include "hw/qdev-properties.h"
#include "sysemu/kvm.h"
diff --git a/hw/isa/i82378.c b/hw/isa/i82378.c
index de276cd..dcb6b47 100644
--- a/hw/isa/i82378.c
+++ b/hw/isa/i82378.c
@@ -19,8 +19,8 @@
#include "qemu/osdep.h"
#include "hw/pci/pci.h"
-#include "hw/i386/pc.h"
#include "hw/irq.h"
+#include "hw/intc/i8259.h"
#include "hw/timer/i8254.h"
#include "migration/vmstate.h"
#include "hw/audio/pcspk.h"
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index 17c292e..170792a 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -35,7 +35,6 @@
#include "hw/isa/isa.h"
#include "hw/sysbus.h"
#include "migration/vmstate.h"
-#include "hw/i386/pc.h"
#include "hw/irq.h"
#include "hw/isa/apm.h"
#include "hw/i386/ioapic.h"
diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c
index 86678e6..7edec5e 100644
--- a/hw/isa/piix4.c
+++ b/hw/isa/piix4.c
@@ -26,11 +26,11 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "hw/irq.h"
-#include "hw/i386/pc.h"
#include "hw/southbridge/piix.h"
#include "hw/pci/pci.h"
#include "hw/isa/isa.h"
#include "hw/sysbus.h"
+#include "hw/intc/i8259.h"
#include "hw/dma/i8257.h"
#include "hw/timer/i8254.h"
#include "hw/rtc/mc146818rtc.h"
diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c
index f1af840..b2ea13f 100644
--- a/hw/mips/gt64xxx_pci.c
+++ b/hw/mips/gt64xxx_pci.c
@@ -30,7 +30,7 @@
#include "hw/pci/pci_host.h"
#include "hw/southbridge/piix.h"
#include "migration/vmstate.h"
-#include "hw/i386/pc.h"
+#include "hw/intc/i8259.h"
#include "hw/irq.h"
#include "exec/address-spaces.h"
#include "trace.h"
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index 55c143e..6199c54 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -23,7 +23,7 @@
#include "qemu/units.h"
#include "qapi/error.h"
#include "cpu.h"
-#include "hw/i386/pc.h"
+#include "hw/intc/i8259.h"
#include "hw/dma/i8257.h"
#include "hw/isa/superio.h"
#include "net/net.h"
diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
index d978bb6..c40b23f 100644
--- a/hw/mips/mips_jazz.c
+++ b/hw/mips/mips_jazz.c
@@ -26,7 +26,7 @@
#include "qemu-common.h"
#include "hw/mips/mips.h"
#include "hw/mips/cpudevs.h"
-#include "hw/i386/pc.h"
+#include "hw/intc/i8259.h"
#include "hw/dma/i8257.h"
#include "hw/char/serial.h"
#include "hw/char/parallel.h"
diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
index 7002423..fbbd59e 100644
--- a/hw/mips/mips_r4k.c
+++ b/hw/mips/mips_r4k.c
@@ -15,7 +15,7 @@
#include "cpu.h"
#include "hw/mips/mips.h"
#include "hw/mips/cpudevs.h"
-#include "hw/i386/pc.h"
+#include "hw/intc/i8259.h"
#include "hw/char/serial.h"
#include "hw/isa/isa.h"
#include "net/net.h"
diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c
index ceee463..c924007 100644
--- a/hw/pci-host/bonito.c
+++ b/hw/pci-host/bonito.c
@@ -40,7 +40,6 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
#include "hw/pci/pci.h"
-#include "hw/i386/pc.h"
#include "hw/irq.h"
#include "hw/mips/mips.h"
#include "hw/pci/pci_host.h"
diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c
index 85d7ba9..afa136d 100644
--- a/hw/pci-host/prep.c
+++ b/hw/pci-host/prep.c
@@ -32,7 +32,7 @@
#include "hw/pci/pci_host.h"
#include "hw/qdev-properties.h"
#include "migration/vmstate.h"
-#include "hw/i386/pc.h"
+#include "hw/intc/i8259.h"
#include "hw/irq.h"
#include "hw/loader.h"
#include "hw/or-irq.h"
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 1f86eba..82447f8 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -134,14 +134,6 @@ typedef struct PCMachineClass {
#define PC_MACHINE_CLASS(klass) \
OBJECT_CLASS_CHECK(PCMachineClass, (klass), TYPE_PC_MACHINE)
-/* i8259.c */
-
-extern DeviceState *isa_pic;
-qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq);
-qemu_irq *kvm_i8259_init(ISABus *bus);
-int pic_read_irq(DeviceState *d);
-int pic_get_output(DeviceState *d);
-
/* ioapic.c */
/* Global System Interrupts */
diff --git a/include/hw/intc/i8259.h b/include/hw/intc/i8259.h
new file mode 100644
index 0000000..e2b1e8c
--- /dev/null
+++ b/include/hw/intc/i8259.h
@@ -0,0 +1,12 @@
+#ifndef HW_I8259_H
+#define HW_I8259_H
+
+/* i8259.c */
+
+extern DeviceState *isa_pic;
+qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq);
+qemu_irq *kvm_i8259_init(ISABus *bus);
+int pic_get_output(DeviceState *d);
+int pic_read_irq(DeviceState *d);
+
+#endif
diff --git a/include/hw/isa/i8259_internal.h b/include/hw/isa/i8259_internal.h
index ee189e4..861d70d 100644
--- a/include/hw/isa/i8259_internal.h
+++ b/include/hw/isa/i8259_internal.h
@@ -25,9 +25,9 @@
#ifndef QEMU_I8259_INTERNAL_H
#define QEMU_I8259_INTERNAL_H
-#include "hw/i386/pc.h"
#include "hw/isa/isa.h"
#include "hw/intc/intc.h"
+#include "hw/intc/i8259.h"
typedef struct PICCommonState PICCommonState;
diff --git a/target/i386/monitor.c b/target/i386/monitor.c
index 9fb4d64..27ebfa3 100644
--- a/target/i386/monitor.c
+++ b/target/i386/monitor.c
@@ -28,7 +28,6 @@
#include "monitor/hmp-target.h"
#include "monitor/hmp.h"
#include "qapi/qmp/qdict.h"
-#include "hw/i386/pc.h"
#include "sysemu/kvm.h"
#include "sysemu/sev.h"
#include "qapi/error.h"
--
1.8.3.1
On 12/12/19 6:29 PM, Paolo Bonzini wrote:
> Remove the need to include i386/pc.h to get to the i8259 functions.
> This is enough to remove the inclusion of hw/i386/pc.h from all non-x86
> files.
Eh this is very similar to the patch I'v staged for 5.0, now than the
Malta/PC split got merged.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> hw/alpha/alpha_sys.h | 3 ++-
> hw/alpha/dp264.c | 1 +
> hw/hppa/hppa_sys.h | 3 ++-
> hw/hppa/machine.c | 1 +
> hw/i386/kvm/i8259.c | 1 +
> hw/i386/microvm.c | 1 +
> hw/i386/pc.c | 1 +
> hw/i386/x86.c | 1 +
> hw/input/pckbd.c | 1 -
> hw/intc/Kconfig | 2 ++
> hw/intc/apic.c | 2 +-
> hw/intc/i8259.c | 2 +-
> hw/intc/i8259_common.c | 2 +-
> hw/intc/ioapic.c | 3 ++-
> hw/isa/i82378.c | 2 +-
> hw/isa/lpc_ich9.c | 1 -
> hw/isa/piix4.c | 2 +-
> hw/mips/gt64xxx_pci.c | 2 +-
> hw/mips/mips_fulong2e.c | 2 +-
> hw/mips/mips_jazz.c | 2 +-
> hw/mips/mips_r4k.c | 2 +-
> hw/pci-host/bonito.c | 1 -
> hw/pci-host/prep.c | 2 +-
> include/hw/i386/pc.h | 8 --------
> include/hw/intc/i8259.h | 12 ++++++++++++
> include/hw/isa/i8259_internal.h | 2 +-
> target/i386/monitor.c | 1 -
> 27 files changed, 37 insertions(+), 26 deletions(-)
> create mode 100644 include/hw/intc/i8259.h
Can you setup QEMU scripts/git.orderfile?
>
> diff --git a/hw/alpha/alpha_sys.h b/hw/alpha/alpha_sys.h
> index 4e127a6..95033d7 100644
> --- a/hw/alpha/alpha_sys.h
> +++ b/hw/alpha/alpha_sys.h
> @@ -7,7 +7,8 @@
> #include "hw/pci/pci.h"
> #include "hw/pci/pci_host.h"
> #include "hw/ide.h"
> -#include "hw/i386/pc.h"
> +#include "hw/boards.h"
> +#include "hw/intc/i8259.h"
>
>
> PCIBus *typhoon_init(ram_addr_t, ISABus **, qemu_irq *, AlphaCPU *[4],
> diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
> index 4320497..5ed9a5a 100644
> --- a/hw/alpha/dp264.c
> +++ b/hw/alpha/dp264.c
> @@ -20,6 +20,7 @@
> #include "hw/timer/i8254.h"
> #include "hw/isa/superio.h"
> #include "hw/dma/i8257.h"
> +#include "net/net.h"
> #include "qemu/cutils.h"
>
> #define MAX_IDE_BUS 2
> diff --git a/hw/hppa/hppa_sys.h b/hw/hppa/hppa_sys.h
> index 43d25d2..4e50196 100644
> --- a/hw/hppa/hppa_sys.h
> +++ b/hw/hppa/hppa_sys.h
> @@ -6,7 +6,8 @@
> #include "hw/pci/pci.h"
> #include "hw/pci/pci_host.h"
> #include "hw/ide.h"
> -#include "hw/i386/pc.h"
> +#include "hw/boards.h"
> +#include "hw/intc/i8259.h"
>
> #include "hppa_hardware.h"
>
> diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
> index b30aba6..5d0de26 100644
> --- a/hw/hppa/machine.c
> +++ b/hw/hppa/machine.c
> @@ -19,6 +19,7 @@
> #include "hppa_sys.h"
> #include "qemu/units.h"
> #include "qapi/error.h"
> +#include "net/net.h"
> #include "qemu/log.h"
>
> #define MAX_IDE_BUS 2
> diff --git a/hw/i386/kvm/i8259.c b/hw/i386/kvm/i8259.c
> index d0c1b1d..e404fdc 100644
> --- a/hw/i386/kvm/i8259.c
> +++ b/hw/i386/kvm/i8259.c
> @@ -12,6 +12,7 @@
>
> #include "qemu/osdep.h"
> #include "hw/isa/i8259_internal.h"
> +#include "hw/intc/i8259.h"
> #include "qemu/module.h"
> #include "hw/i386/apic_internal.h"
> #include "hw/irq.h"
> diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
> index def37e6..2068319 100644
> --- a/hw/i386/microvm.c
> +++ b/hw/i386/microvm.c
> @@ -34,6 +34,7 @@
> #include "hw/i386/x86.h"
> #include "hw/i386/pc.h"
> #include "target/i386/cpu.h"
> +#include "hw/intc/i8259.h"
> #include "hw/timer/i8254.h"
> #include "hw/rtc/mc146818rtc.h"
> #include "hw/char/serial.h"
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 3d2c5d8..fdbd2bf 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -44,6 +44,7 @@
> #include "migration/vmstate.h"
> #include "multiboot.h"
> #include "hw/rtc/mc146818rtc.h"
> +#include "hw/intc/i8259.h"
> #include "hw/dma/i8257.h"
> #include "hw/timer/i8254.h"
> #include "hw/input/i8042.h"
> diff --git a/hw/i386/x86.c b/hw/i386/x86.c
> index 394edc2..3e4aee5 100644
> --- a/hw/i386/x86.c
> +++ b/hw/i386/x86.c
> @@ -39,6 +39,7 @@
> #include "target/i386/cpu.h"
> #include "hw/i386/topology.h"
> #include "hw/i386/fw_cfg.h"
> +#include "hw/intc/i8259.h"
>
> #include "hw/acpi/cpu_hotplug.h"
> #include "hw/nmi.h"
> diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
> index f0acfd8..2f09f78 100644
> --- a/hw/input/pckbd.c
> +++ b/hw/input/pckbd.c
> @@ -26,7 +26,6 @@
> #include "qemu/log.h"
> #include "hw/isa/isa.h"
> #include "migration/vmstate.h"
> -#include "hw/i386/pc.h"
> #include "hw/input/ps2.h"
> #include "hw/irq.h"
> #include "hw/input/i8042.h"
> diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
> index 5347f84..10a680b 100644
> --- a/hw/intc/Kconfig
> +++ b/hw/intc/Kconfig
> @@ -9,6 +9,7 @@ config PL190
>
> config IOAPIC
> bool
> + select I8259
>
> config ARM_GIC
> bool
> @@ -21,6 +22,7 @@ config OPENPIC
> config APIC
> bool
> select MSI_NONBROKEN
> + select I8259
>
> config ARM_GIC_KVM
> bool
> diff --git a/hw/intc/apic.c b/hw/intc/apic.c
> index 2a74f7b..bd40467 100644
> --- a/hw/intc/apic.c
> +++ b/hw/intc/apic.c
> @@ -22,10 +22,10 @@
> #include "hw/i386/apic_internal.h"
> #include "hw/i386/apic.h"
> #include "hw/i386/ioapic.h"
> +#include "hw/intc/i8259.h"
> #include "hw/pci/msi.h"
> #include "qemu/host-utils.h"
> #include "trace.h"
> -#include "hw/i386/pc.h"
> #include "hw/i386/apic-msidef.h"
> #include "qapi/error.h"
>
> diff --git a/hw/intc/i8259.c b/hw/intc/i8259.c
> index 211a989..51b27f6 100644
> --- a/hw/intc/i8259.c
> +++ b/hw/intc/i8259.c
> @@ -23,7 +23,7 @@
> */
>
> #include "qemu/osdep.h"
> -#include "hw/i386/pc.h"
> +#include "hw/intc/i8259.h"
> #include "hw/irq.h"
> #include "hw/isa/isa.h"
> #include "qemu/timer.h"
> diff --git a/hw/intc/i8259_common.c b/hw/intc/i8259_common.c
> index bd37bb5..e7b1a10 100644
> --- a/hw/intc/i8259_common.c
> +++ b/hw/intc/i8259_common.c
> @@ -24,7 +24,7 @@
> */
>
> #include "qemu/osdep.h"
> -#include "hw/i386/pc.h"
> +#include "hw/intc/i8259.h"
> #include "hw/isa/i8259_internal.h"
> #include "hw/qdev-properties.h"
> #include "migration/vmstate.h"
> diff --git a/hw/intc/ioapic.c b/hw/intc/ioapic.c
> index ead14e1..4f55776 100644
> --- a/hw/intc/ioapic.c
> +++ b/hw/intc/ioapic.c
> @@ -23,10 +23,11 @@
> #include "qemu/osdep.h"
> #include "qapi/error.h"
> #include "monitor/monitor.h"
> -#include "hw/i386/pc.h"
> #include "hw/i386/apic.h"
> #include "hw/i386/ioapic.h"
> #include "hw/i386/ioapic_internal.h"
> +#include "hw/i386/x86.h"
> +#include "hw/intc/i8259.h"
> #include "hw/pci/msi.h"
> #include "hw/qdev-properties.h"
> #include "sysemu/kvm.h"
> diff --git a/hw/isa/i82378.c b/hw/isa/i82378.c
> index de276cd..dcb6b47 100644
> --- a/hw/isa/i82378.c
> +++ b/hw/isa/i82378.c
> @@ -19,8 +19,8 @@
>
> #include "qemu/osdep.h"
> #include "hw/pci/pci.h"
> -#include "hw/i386/pc.h"
> #include "hw/irq.h"
> +#include "hw/intc/i8259.h"
> #include "hw/timer/i8254.h"
> #include "migration/vmstate.h"
> #include "hw/audio/pcspk.h"
> diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
> index 17c292e..170792a 100644
> --- a/hw/isa/lpc_ich9.c
> +++ b/hw/isa/lpc_ich9.c
> @@ -35,7 +35,6 @@
> #include "hw/isa/isa.h"
> #include "hw/sysbus.h"
> #include "migration/vmstate.h"
> -#include "hw/i386/pc.h"
> #include "hw/irq.h"
> #include "hw/isa/apm.h"
> #include "hw/i386/ioapic.h"
> diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c
> index 86678e6..7edec5e 100644
> --- a/hw/isa/piix4.c
> +++ b/hw/isa/piix4.c
> @@ -26,11 +26,11 @@
> #include "qemu/osdep.h"
> #include "qapi/error.h"
> #include "hw/irq.h"
> -#include "hw/i386/pc.h"
> #include "hw/southbridge/piix.h"
> #include "hw/pci/pci.h"
> #include "hw/isa/isa.h"
> #include "hw/sysbus.h"
> +#include "hw/intc/i8259.h"
> #include "hw/dma/i8257.h"
> #include "hw/timer/i8254.h"
> #include "hw/rtc/mc146818rtc.h"
> diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c
> index f1af840..b2ea13f 100644
> --- a/hw/mips/gt64xxx_pci.c
> +++ b/hw/mips/gt64xxx_pci.c
> @@ -30,7 +30,7 @@
> #include "hw/pci/pci_host.h"
> #include "hw/southbridge/piix.h"
> #include "migration/vmstate.h"
> -#include "hw/i386/pc.h"
> +#include "hw/intc/i8259.h"
> #include "hw/irq.h"
> #include "exec/address-spaces.h"
> #include "trace.h"
> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> index 55c143e..6199c54 100644
> --- a/hw/mips/mips_fulong2e.c
> +++ b/hw/mips/mips_fulong2e.c
> @@ -23,7 +23,7 @@
> #include "qemu/units.h"
> #include "qapi/error.h"
> #include "cpu.h"
> -#include "hw/i386/pc.h"
> +#include "hw/intc/i8259.h"
> #include "hw/dma/i8257.h"
> #include "hw/isa/superio.h"
> #include "net/net.h"
> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
> index d978bb6..c40b23f 100644
> --- a/hw/mips/mips_jazz.c
> +++ b/hw/mips/mips_jazz.c
> @@ -26,7 +26,7 @@
> #include "qemu-common.h"
> #include "hw/mips/mips.h"
> #include "hw/mips/cpudevs.h"
> -#include "hw/i386/pc.h"
> +#include "hw/intc/i8259.h"
> #include "hw/dma/i8257.h"
> #include "hw/char/serial.h"
> #include "hw/char/parallel.h"
> diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
> index 7002423..fbbd59e 100644
> --- a/hw/mips/mips_r4k.c
> +++ b/hw/mips/mips_r4k.c
> @@ -15,7 +15,7 @@
> #include "cpu.h"
> #include "hw/mips/mips.h"
> #include "hw/mips/cpudevs.h"
> -#include "hw/i386/pc.h"
> +#include "hw/intc/i8259.h"
> #include "hw/char/serial.h"
> #include "hw/isa/isa.h"
> #include "net/net.h"
> diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c
> index ceee463..c924007 100644
> --- a/hw/pci-host/bonito.c
> +++ b/hw/pci-host/bonito.c
> @@ -40,7 +40,6 @@
> #include "qemu/osdep.h"
> #include "qemu/error-report.h"
> #include "hw/pci/pci.h"
> -#include "hw/i386/pc.h"
> #include "hw/irq.h"
> #include "hw/mips/mips.h"
> #include "hw/pci/pci_host.h"
> diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c
> index 85d7ba9..afa136d 100644
> --- a/hw/pci-host/prep.c
> +++ b/hw/pci-host/prep.c
> @@ -32,7 +32,7 @@
> #include "hw/pci/pci_host.h"
> #include "hw/qdev-properties.h"
> #include "migration/vmstate.h"
> -#include "hw/i386/pc.h"
> +#include "hw/intc/i8259.h"
> #include "hw/irq.h"
> #include "hw/loader.h"
> #include "hw/or-irq.h"
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 1f86eba..82447f8 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -134,14 +134,6 @@ typedef struct PCMachineClass {
> #define PC_MACHINE_CLASS(klass) \
> OBJECT_CLASS_CHECK(PCMachineClass, (klass), TYPE_PC_MACHINE)
>
> -/* i8259.c */
> -
> -extern DeviceState *isa_pic;
> -qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq);
> -qemu_irq *kvm_i8259_init(ISABus *bus);
> -int pic_read_irq(DeviceState *d);
> -int pic_get_output(DeviceState *d);
> -
> /* ioapic.c */
>
> /* Global System Interrupts */
> diff --git a/include/hw/intc/i8259.h b/include/hw/intc/i8259.h
> new file mode 100644
> index 0000000..e2b1e8c
> --- /dev/null
> +++ b/include/hw/intc/i8259.h
> @@ -0,0 +1,12 @@
> +#ifndef HW_I8259_H
> +#define HW_I8259_H
> +
> +/* i8259.c */
Instead:
/*
* QEMU 8259 interrupt controller emulation
*
* Copyright (c) 2003-2004 Fabrice Bellard
*
* Permission is hereby granted, free of charge, to any person
obtaining a copy
* of this software and associated documentation files (the
"Software"), to deal
* in the Software without restriction, including without limitation
the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN
* THE SOFTWARE.
*/
> +
> +extern DeviceState *isa_pic;
> +qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq);
> +qemu_irq *kvm_i8259_init(ISABus *bus);
I moved this particular one to hw/i386/kvm/.
> +int pic_get_output(DeviceState *d);
> +int pic_read_irq(DeviceState *d);
> +
> +#endif
> diff --git a/include/hw/isa/i8259_internal.h b/include/hw/isa/i8259_internal.h
> index ee189e4..861d70d 100644
> --- a/include/hw/isa/i8259_internal.h
> +++ b/include/hw/isa/i8259_internal.h
> @@ -25,9 +25,9 @@
> #ifndef QEMU_I8259_INTERNAL_H
> #define QEMU_I8259_INTERNAL_H
>
> -#include "hw/i386/pc.h"
> #include "hw/isa/isa.h"
> #include "hw/intc/intc.h"
> +#include "hw/intc/i8259.h"
>
> typedef struct PICCommonState PICCommonState;
>
> diff --git a/target/i386/monitor.c b/target/i386/monitor.c
> index 9fb4d64..27ebfa3 100644
> --- a/target/i386/monitor.c
> +++ b/target/i386/monitor.c
> @@ -28,7 +28,6 @@
> #include "monitor/hmp-target.h"
> #include "monitor/hmp.h"
> #include "qapi/qmp/qdict.h"
> -#include "hw/i386/pc.h"
> #include "sysemu/kvm.h"
> #include "sysemu/sev.h"
> #include "qapi/error.h"
>
Il gio 12 dic 2019, 20:04 Philippe Mathieu-Daudé <philmd@redhat.com> ha scritto: > On 12/12/19 6:29 PM, Paolo Bonzini wrote: > > Remove the need to include i386/pc.h to get to the i8259 functions. > > This is enough to remove the inclusion of hw/i386/pc.h from all non-x86 > > files. > > Eh this is very similar to the patch I'v staged for 5.0, now than the > Malta/PC split got merged. > Ok, these patches are not urgent so I will just wait for yours to go in and rebase. Paolo
On 12/12/19 9:05 PM, Paolo Bonzini wrote: > Il gio 12 dic 2019, 20:04 Philippe Mathieu-Daudé <philmd@redhat.com > <mailto:philmd@redhat.com>> ha scritto: > > On 12/12/19 6:29 PM, Paolo Bonzini wrote: > > Remove the need to include i386/pc.h to get to the i8259 functions. > > This is enough to remove the inclusion of hw/i386/pc.h from all > non-x86 > > files. > > Eh this is very similar to the patch I'v staged for 5.0, now than the > Malta/PC split got merged. > > > Ok, these patches are not urgent so I will just wait for yours to go in > and rebase. Oh, I don't want to delay your series, this was more of a "comment to self" while reviewing your. The MicroVM series introduced changes that outdated my work, and since having MicroVM was more important that global cleanup, I didn't insist a that time. Now GSI and IOAPIC are more exposed so my previous work doesn't apply at all. Well, current code diverged. I'll need some time to figure out if it is worthwhile salvaging, so don't wait for that.
On 13/12/19 10:43, Philippe Mathieu-Daudé wrote: > > > The MicroVM series introduced changes that outdated my work, and since > having MicroVM was more important that global cleanup, I didn't insist a > that time. Now GSI and IOAPIC are more exposed so my previous work > doesn't apply at all. Well, current code diverged. > I'll need some time to figure out if it is worthwhile salvaging, so > don't wait for that. Can you just point me to it? (Patchew URL) Paolo
© 2016 - 2026 Red Hat, Inc.