qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 3/8] hw: replace hw/i386/pc.h with a header just for the i


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v2 3/8] hw: replace hw/i386/pc.h with a header just for the i8259
Date: Thu, 12 Dec 2019 20:03:58 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2

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 <address@hidden>
---
  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"





reply via email to

[Prev in Thread] Current Thread [Next in Thread]