qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>, qemu-devel@nongnu.org
Cc: slp@redhat.com
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	[thread overview]
Message-ID: <d58b507e-9d68-d112-0f6c-6f9dfb153a93@redhat.com> (raw)
In-Reply-To: <1576171754-45138-4-git-send-email-pbonzini@redhat.com>

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"
> 



  reply	other threads:[~2019-12-12 19:07 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-12 17:29 [PATCH v2 0/8] x86: allow building without PC machine types Paolo Bonzini
2019-12-12 17:29 ` [PATCH v2 1/8] i386: conditionally compile more files Paolo Bonzini
2019-12-12 17:29 ` [PATCH v2 2/8] fw_cfg: allow building without other devices Paolo Bonzini
2019-12-12 17:29 ` [PATCH v2 3/8] hw: replace hw/i386/pc.h with a header just for the i8259 Paolo Bonzini
2019-12-12 19:03   ` Philippe Mathieu-Daudé [this message]
2019-12-12 20:05     ` Paolo Bonzini
2019-12-13  9:43       ` Philippe Mathieu-Daudé
2019-12-13 14:56         ` Paolo Bonzini
2019-12-12 17:29 ` [PATCH v2 4/8] pci-stub: add more MSI functions Paolo Bonzini
2019-12-12 19:49   ` Philippe Mathieu-Daudé
2019-12-12 17:29 ` [PATCH v2 5/8] x86: move SMM property to X86MachineState Paolo Bonzini
2019-12-13 14:50   ` Philippe Mathieu-Daudé
2019-12-12 17:29 ` [PATCH v2 6/8] x86: move more x86-generic functions out of PC files Paolo Bonzini
2020-01-08  8:03   ` Gerd Hoffmann
2020-01-08  8:19     ` Paolo Bonzini
2019-12-12 17:29 ` [PATCH v2 7/8] acpi: move PC stubs out of stubs/ Paolo Bonzini
2019-12-12 17:29 ` [PATCH v2 8/8] pc: stubify x86 iommu Paolo Bonzini
2020-01-07 14:26   ` Thomas Huth
2020-01-07 14:59     ` Thomas Huth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d58b507e-9d68-d112-0f6c-6f9dfb153a93@redhat.com \
    --to=philmd@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=slp@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).