From: Stefan Weil <sw@weilnetz.de>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, jan.kiszka@siemens.com, mjt@tls.msk.ru,
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,
Igor Mammedov <imammedo@redhat.com>,
lcapitulino@redhat.com, rth@twiddle.net, kwolf@redhat.com,
aliguori@us.ibm.com, mtosatti@redhat.com, pbonzini@redhat.com,
afaerber@suse.de
Subject: [Qemu-devel] [RFC] How should QEMU code handle include statements (was: Re: [PATCH 0/5 v2] cpu: make a child of DeviceState)
Date: Mon, 20 Aug 2012 22:07:31 +0200 [thread overview]
Message-ID: <50329903.8000608@weilnetz.de> (raw)
In-Reply-To: <20120820134739.08bf6de4@thinkpad.mammed.net>
Am 20.08.2012 13:47, schrieb Igor Mammedov:
> On Mon, 20 Aug 2012 06:52:51 +0200
> Stefan Weil<sw@weilnetz.de> wrote:
>> I'd prefer if you could keep the following simple pattern:
>>
>> * Start includes in *.c files with config.h (optionally)
>> and qemu-common.h.
> Can't agree with you on this. I'd say that every header should be be self
> sufficient, include other headers if it uses types from them and NOT depend on
> the position where it's included, it should provide all its own deps.
>> * Don't include standard include files which are already
>> included in qemu-common.h
> Probably initially qemu-common.h was intended to simplify inclusion
> of standard headers and glue stuff in multi-os build environment. but it seems
> to be become misused. It includes now a lot of stuff that is not common to
> every file it's included in.
> Perhaps we should split out of it std includes and glue layer into something
> like std/host-common.h and case on case basis move out other type
> definitions that are not common into there appropriate places. Like with
> qemu_irq.
There are several possible strategies regarding include statements:
1. Each header file which represents some public interface must include
any header file which it depends on, so applications which include
xxx.h can rely on the fact that they won't need anything else to
compile xxx.h.
To minimize dependencies, this rule can be extended: each header
file must not include unneeded header files.
Usually header files in /usr/include are built according to these rules.
2. There is one header file (or a small set of header files) which includes
a basic set of features which normal code needs. Any C code file starts
by including this header file.
Other header files can rely on the fact that the basic set of features
are already available.
3. In a modification of (2), each header file can include the basic
header file(s).
4. The status quo of QEMU is a wild mixture of those strategies.
IMHO, there should be a consensus about the strategy which is used
for QEMU code.
While I personally prefer (1) and used it for my first contributions,
QEMU introduced qemu-common.h. I had the impression that from then on
QEMU preferred strategy (2). Obviously not everybody shares that
impression.
Which strategy / rule do we want to use for QEMU code?
Regards,
Stefan Weil
next prev parent reply other threads:[~2012-08-20 20:07 UTC|newest]
Thread overview: 19+ 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 ` [Qemu-devel] [PATCH 1/5] move qemu_irq typedef out of cpu-common.h Igor Mammedov
2012-08-20 4:41 ` Stefan Weil
2012-08-20 11:13 ` Igor Mammedov
2012-08-20 19:46 ` Blue Swirl
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 ` [Qemu-devel] [PATCH 3/5] qapi-types.h doesn't really need to include qemu-common.h Igor Mammedov
2012-08-20 15:22 ` Luiz Capitulino
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-20 15:28 ` Luiz Capitulino
2012-08-20 20:00 ` [Qemu-devel] [Xen-devel] " Igor Mammedov
2012-08-19 23:39 ` [Qemu-devel] [PATCH 5/5] make CPU a child of DeviceState Igor Mammedov
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 11:47 ` Igor Mammedov
2012-08-20 20:07 ` Stefan Weil [this message]
2012-08-21 10:19 ` [Qemu-devel] [RFC] How should QEMU code handle include statements 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=50329903.8000608@weilnetz.de \
--to=sw@weilnetz.de \
--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=imammedo@redhat.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=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 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).