Message ID | 1576171754-45138-4-git-send-email-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Series | x86: allow building without PC machine types | expand |
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
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"
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