From: Igor Mammedov <imammedo@redhat.com>
To: Stefan Weil <sw@weilnetz.de>
Cc: peter.maydell@linaro.org, jan.kiszka@siemens.com, mjt@tls.msk.ru,
qemu-devel@nongnu.org, armbru@redhat.com, blauwirbel@gmail.com,
kraxel@redhat.com, xen-devel@lists.xensource.com,
i.mitsyanko@samsung.com, mdroth@linux.vnet.ibm.com,
avi@redhat.com, anthony.perard@citrix.com, lersek@redhat.com,
stefanha@linux.vnet.ibm.com, stefano.stabellini@eu.citrix.com,
lcapitulino@redhat.com, rth@twiddle.net, kwolf@redhat.com,
aliguori@us.ibm.com, mtosatti@redhat.com, pbonzini@redhat.com,
afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH 1/5] move qemu_irq typedef out of cpu-common.h
Date: Mon, 20 Aug 2012 13:13:26 +0200 [thread overview]
Message-ID: <20120820131326.22ea454f@thinkpad.mammed.net> (raw)
In-Reply-To: <5031BFE0.1070909@weilnetz.de>
On Mon, 20 Aug 2012 06:41:04 +0200
Stefan Weil <sw@weilnetz.de> wrote:
> Am 20.08.2012 01:39, schrieb Igor Mammedov:
> > it's necessary for making CPU child of DEVICE without
> > causing circular header deps.
> >
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > hw/arm-misc.h | 1 +
> > hw/bt.h | 2 ++
> > hw/devices.h | 2 ++
> > hw/irq.h | 2 ++
> > hw/omap.h | 1 +
> > hw/soc_dma.h | 1 +
> > hw/xen.h | 1 +
> > qemu-common.h | 1 -
> > sysemu.h | 1 +
> > 9 files changed, 11 insertions(+), 1 deletions(-)
> >
> > diff --git a/hw/arm-misc.h b/hw/arm-misc.h
> > index bdd8fec..b13aa59 100644
> > --- a/hw/arm-misc.h
> > +++ b/hw/arm-misc.h
> > @@ -12,6 +12,7 @@
> > #define ARM_MISC_H 1
> >
> > #include "memory.h"
> > +#include "hw/irq.h"
> >
> > /* The CPU is also modeled as an interrupt controller. */
> > #define ARM_PIC_CPU_IRQ 0
> > diff --git a/hw/bt.h b/hw/bt.h
> > index a48b8d4..ebf6a37 100644
> > --- a/hw/bt.h
> > +++ b/hw/bt.h
> > @@ -23,6 +23,8 @@
> > * along with this program; if not, see <http://www.gnu.org/licenses/>.
> > */
> >
> > +#include "hw/irq.h"
> > +
> > /* BD Address */
> > typedef struct {
> > uint8_t b[6];
> > diff --git a/hw/devices.h b/hw/devices.h
> > index 1a55c1e..c60bcab 100644
> > --- a/hw/devices.h
> > +++ b/hw/devices.h
> > @@ -1,6 +1,8 @@
> > #ifndef QEMU_DEVICES_H
> > #define QEMU_DEVICES_H
> >
> > +#include "hw/irq.h"
> > +
> > /* ??? Not all users of this file can include cpu-common.h. */
> > struct MemoryRegion;
> >
> > diff --git a/hw/irq.h b/hw/irq.h
> > index 56c55f0..1339a3a 100644
> > --- a/hw/irq.h
> > +++ b/hw/irq.h
> > @@ -3,6 +3,8 @@
> >
> > /* Generic IRQ/GPIO pin infrastructure. */
> >
> > +typedef struct IRQState *qemu_irq;
> > +
> > typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
> >
> > void qemu_set_irq(qemu_irq irq, int level);
> > diff --git a/hw/omap.h b/hw/omap.h
> > index 413851b..8b08462 100644
> > --- a/hw/omap.h
> > +++ b/hw/omap.h
> > @@ -19,6 +19,7 @@
> > #ifndef hw_omap_h
> > #include "memory.h"
> > # define hw_omap_h "omap.h"
> > +#include "hw/irq.h"
> >
> > # define OMAP_EMIFS_BASE 0x00000000
> > # define OMAP2_Q0_BASE 0x00000000
> > diff --git a/hw/soc_dma.h b/hw/soc_dma.h
> > index 904b26c..e386ace 100644
> > --- a/hw/soc_dma.h
> > +++ b/hw/soc_dma.h
> > @@ -19,6 +19,7 @@
> > */
> >
> > #include "memory.h"
> > +#include "hw/irq.h"
> >
> > struct soc_dma_s;
> > struct soc_dma_ch_s;
> > diff --git a/hw/xen.h b/hw/xen.h
> > index e5926b7..ff11dfd 100644
> > --- a/hw/xen.h
> > +++ b/hw/xen.h
> > @@ -8,6 +8,7 @@
> > */
> > #include <inttypes.h>
> >
> > +#include "hw/irq.h"
> > #include "qemu-common.h"
> >
> > /* xen-machine.c */
> > diff --git a/qemu-common.h b/qemu-common.h
> > index e5c2bcd..6677a30 100644
> > --- a/qemu-common.h
> > +++ b/qemu-common.h
> > @@ -273,7 +273,6 @@ typedef struct PCIEPort PCIEPort;
> > typedef struct PCIESlot PCIESlot;
> > typedef struct MSIMessage MSIMessage;
> > typedef struct SerialState SerialState;
> > -typedef struct IRQState *qemu_irq;
> > typedef struct PCMCIACardState PCMCIACardState;
> > typedef struct MouseTransformInfo MouseTransformInfo;
> > typedef struct uWireSlave uWireSlave;
>
> Just move the declaration of qemu_irq to the beginning of qemu-common.h
> and leave the rest of files untouched. That also fixes the circular
> dependency.
>
> I already have a patch that does this, so you can integrate it in your
> series
> instead of this one.
No doubt it's more simpler way, but IMHO It's more of a hack than fixing
problem.
It works for now but doesn't alleviate problem with header nightmare in qemu,
where everything is included in qemu-common.h and everything includes it as
well.
Any way if majority prefer simple move, I'll drop this patch in favor of yours.
>
>
> > diff --git a/sysemu.h b/sysemu.h
> > index 65552ac..f765821 100644
> > --- a/sysemu.h
> > +++ b/sysemu.h
> > @@ -9,6 +9,7 @@
> > #include "qapi-types.h"
> > #include "notify.h"
> > #include "main-loop.h"
> > +#include "hw/irq.h"
> >
> > /* vl.c */
> >
>
--
Regards,
Igor
WARNING: multiple messages have this Message-ID (diff)
From: Igor Mammedov <imammedo@redhat.com>
To: Stefan Weil <sw@weilnetz.de>
Cc: peter.maydell@linaro.org, jan.kiszka@siemens.com, mjt@tls.msk.ru,
qemu-devel@nongnu.org, armbru@redhat.com, blauwirbel@gmail.com,
kraxel@redhat.com, xen-devel@lists.xensource.com,
i.mitsyanko@samsung.com, mdroth@linux.vnet.ibm.com,
avi@redhat.com, anthony.perard@citrix.com, lersek@redhat.com,
stefanha@linux.vnet.ibm.com, stefano.stabellini@eu.citrix.com,
lcapitulino@redhat.com, rth@twiddle.net, kwolf@redhat.com,
aliguori@us.ibm.com, mtosatti@redhat.com, pbonzini@redhat.com,
afaerber@suse.de
Subject: Re: [PATCH 1/5] move qemu_irq typedef out of cpu-common.h
Date: Mon, 20 Aug 2012 13:13:26 +0200 [thread overview]
Message-ID: <20120820131326.22ea454f@thinkpad.mammed.net> (raw)
In-Reply-To: <5031BFE0.1070909@weilnetz.de>
On Mon, 20 Aug 2012 06:41:04 +0200
Stefan Weil <sw@weilnetz.de> wrote:
> Am 20.08.2012 01:39, schrieb Igor Mammedov:
> > it's necessary for making CPU child of DEVICE without
> > causing circular header deps.
> >
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > ---
> > hw/arm-misc.h | 1 +
> > hw/bt.h | 2 ++
> > hw/devices.h | 2 ++
> > hw/irq.h | 2 ++
> > hw/omap.h | 1 +
> > hw/soc_dma.h | 1 +
> > hw/xen.h | 1 +
> > qemu-common.h | 1 -
> > sysemu.h | 1 +
> > 9 files changed, 11 insertions(+), 1 deletions(-)
> >
> > diff --git a/hw/arm-misc.h b/hw/arm-misc.h
> > index bdd8fec..b13aa59 100644
> > --- a/hw/arm-misc.h
> > +++ b/hw/arm-misc.h
> > @@ -12,6 +12,7 @@
> > #define ARM_MISC_H 1
> >
> > #include "memory.h"
> > +#include "hw/irq.h"
> >
> > /* The CPU is also modeled as an interrupt controller. */
> > #define ARM_PIC_CPU_IRQ 0
> > diff --git a/hw/bt.h b/hw/bt.h
> > index a48b8d4..ebf6a37 100644
> > --- a/hw/bt.h
> > +++ b/hw/bt.h
> > @@ -23,6 +23,8 @@
> > * along with this program; if not, see <http://www.gnu.org/licenses/>.
> > */
> >
> > +#include "hw/irq.h"
> > +
> > /* BD Address */
> > typedef struct {
> > uint8_t b[6];
> > diff --git a/hw/devices.h b/hw/devices.h
> > index 1a55c1e..c60bcab 100644
> > --- a/hw/devices.h
> > +++ b/hw/devices.h
> > @@ -1,6 +1,8 @@
> > #ifndef QEMU_DEVICES_H
> > #define QEMU_DEVICES_H
> >
> > +#include "hw/irq.h"
> > +
> > /* ??? Not all users of this file can include cpu-common.h. */
> > struct MemoryRegion;
> >
> > diff --git a/hw/irq.h b/hw/irq.h
> > index 56c55f0..1339a3a 100644
> > --- a/hw/irq.h
> > +++ b/hw/irq.h
> > @@ -3,6 +3,8 @@
> >
> > /* Generic IRQ/GPIO pin infrastructure. */
> >
> > +typedef struct IRQState *qemu_irq;
> > +
> > typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
> >
> > void qemu_set_irq(qemu_irq irq, int level);
> > diff --git a/hw/omap.h b/hw/omap.h
> > index 413851b..8b08462 100644
> > --- a/hw/omap.h
> > +++ b/hw/omap.h
> > @@ -19,6 +19,7 @@
> > #ifndef hw_omap_h
> > #include "memory.h"
> > # define hw_omap_h "omap.h"
> > +#include "hw/irq.h"
> >
> > # define OMAP_EMIFS_BASE 0x00000000
> > # define OMAP2_Q0_BASE 0x00000000
> > diff --git a/hw/soc_dma.h b/hw/soc_dma.h
> > index 904b26c..e386ace 100644
> > --- a/hw/soc_dma.h
> > +++ b/hw/soc_dma.h
> > @@ -19,6 +19,7 @@
> > */
> >
> > #include "memory.h"
> > +#include "hw/irq.h"
> >
> > struct soc_dma_s;
> > struct soc_dma_ch_s;
> > diff --git a/hw/xen.h b/hw/xen.h
> > index e5926b7..ff11dfd 100644
> > --- a/hw/xen.h
> > +++ b/hw/xen.h
> > @@ -8,6 +8,7 @@
> > */
> > #include <inttypes.h>
> >
> > +#include "hw/irq.h"
> > #include "qemu-common.h"
> >
> > /* xen-machine.c */
> > diff --git a/qemu-common.h b/qemu-common.h
> > index e5c2bcd..6677a30 100644
> > --- a/qemu-common.h
> > +++ b/qemu-common.h
> > @@ -273,7 +273,6 @@ typedef struct PCIEPort PCIEPort;
> > typedef struct PCIESlot PCIESlot;
> > typedef struct MSIMessage MSIMessage;
> > typedef struct SerialState SerialState;
> > -typedef struct IRQState *qemu_irq;
> > typedef struct PCMCIACardState PCMCIACardState;
> > typedef struct MouseTransformInfo MouseTransformInfo;
> > typedef struct uWireSlave uWireSlave;
>
> Just move the declaration of qemu_irq to the beginning of qemu-common.h
> and leave the rest of files untouched. That also fixes the circular
> dependency.
>
> I already have a patch that does this, so you can integrate it in your
> series
> instead of this one.
No doubt it's more simpler way, but IMHO It's more of a hack than fixing
problem.
It works for now but doesn't alleviate problem with header nightmare in qemu,
where everything is included in qemu-common.h and everything includes it as
well.
Any way if majority prefer simple move, I'll drop this patch in favor of yours.
>
>
> > diff --git a/sysemu.h b/sysemu.h
> > index 65552ac..f765821 100644
> > --- a/sysemu.h
> > +++ b/sysemu.h
> > @@ -9,6 +9,7 @@
> > #include "qapi-types.h"
> > #include "notify.h"
> > #include "main-loop.h"
> > +#include "hw/irq.h"
> >
> > /* vl.c */
> >
>
--
Regards,
Igor
next prev parent reply other threads:[~2012-08-20 11:13 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-19 23:39 [Qemu-devel] [PATCH 0/5 v2] cpu: make a child of DeviceState Igor Mammedov
2012-08-19 23:39 ` Igor Mammedov
2012-08-19 23:39 ` [Qemu-devel] [PATCH 1/5] move qemu_irq typedef out of cpu-common.h Igor Mammedov
2012-08-19 23:39 ` Igor Mammedov
2012-08-20 4:41 ` [Qemu-devel] " Stefan Weil
2012-08-20 4:41 ` Stefan Weil
2012-08-20 11:13 ` Igor Mammedov [this message]
2012-08-20 11:13 ` Igor Mammedov
2012-08-20 19:46 ` [Qemu-devel] " Blue Swirl
2012-08-20 19:46 ` Blue Swirl
2012-08-20 20:14 ` [Qemu-devel] " Anthony Liguori
2012-08-20 20:14 ` Anthony Liguori
2012-08-19 23:39 ` [Qemu-devel] [PATCH 2/5] qdev: split up header so it can be used in cpu.h Igor Mammedov
2012-08-19 23:39 ` Igor Mammedov
2012-08-19 23:39 ` [Qemu-devel] [PATCH 3/5] qapi-types.h doesn't really need to include qemu-common.h Igor Mammedov
2012-08-19 23:39 ` Igor Mammedov
2012-08-20 15:22 ` [Qemu-devel] " Luiz Capitulino
2012-08-20 15:22 ` Luiz Capitulino
2012-08-20 19:59 ` [Qemu-devel] " Igor Mammedov
2012-08-20 19:59 ` Igor Mammedov
2012-08-19 23:39 ` [Qemu-devel] [PATCH 4/5] cleanup error.h, included qapi-types.h aready has stdbool.h Igor Mammedov
2012-08-19 23:39 ` Igor Mammedov
2012-08-20 15:28 ` [Qemu-devel] " Luiz Capitulino
2012-08-20 15:28 ` Luiz Capitulino
2012-08-20 20:00 ` [Qemu-devel] [Xen-devel] " Igor Mammedov
2012-08-20 20:00 ` Igor Mammedov
2012-08-19 23:39 ` [Qemu-devel] [PATCH 5/5] make CPU a child of DeviceState Igor Mammedov
2012-08-19 23:39 ` Igor Mammedov
2012-08-21 14:03 ` [Qemu-devel] " Eduardo Habkost
2012-08-21 14:03 ` Eduardo Habkost
2012-08-20 4:52 ` [Qemu-devel] [PATCH 0/5 v2] cpu: make " Stefan Weil
2012-08-20 4:52 ` Stefan Weil
2012-08-20 11:47 ` [Qemu-devel] " Igor Mammedov
2012-08-20 11:47 ` Igor Mammedov
2012-08-20 20:07 ` [Qemu-devel] [RFC] How should QEMU code handle include statements (was: Re: [PATCH 0/5 v2] cpu: make a child of DeviceState) Stefan Weil
2012-08-20 20:07 ` Stefan Weil
2012-08-21 10:19 ` [Qemu-devel] [RFC] How should QEMU code handle include statements Avi Kivity
2012-08-21 10:19 ` Avi Kivity
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=20120820131326.22ea454f@thinkpad.mammed.net \
--to=imammedo@redhat.com \
--cc=afaerber@suse.de \
--cc=aliguori@us.ibm.com \
--cc=anthony.perard@citrix.com \
--cc=armbru@redhat.com \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=i.mitsyanko@samsung.com \
--cc=jan.kiszka@siemens.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=lersek@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mjt@tls.msk.ru \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=stefanha@linux.vnet.ibm.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=sw@weilnetz.de \
--cc=xen-devel@lists.xensource.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.