From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Gerd Hoffmann" <kraxel@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Peter Crosthwaite" <crosthwaite.peter@gmail.com>,
"Xiao Guangrong" <xiaoguangrong.eric@gmail.com>,
qemu-block@nongnu.org,
"Alistair Francis" <alistair@alistair23.me>,
qemu-devel@nongnu.org, "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Greg Kurz" <groug@kaod.org>,
qemu-arm@nongnu.org, "Igor Mammedov" <imammedo@redhat.com>,
"Laszlo Ersek" <lersek@redhat.com>,
"Cédric Le Goater" <clg@kaod.org>
Subject: Re: [Qemu-devel] [PATCH 03/15] hw/ssi: Remove SSIBus from "qemu/typedefs.h"
Date: Wed, 16 Jan 2019 09:48:52 -0500 [thread overview]
Message-ID: <20190116091801-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <ad34caf3-5f1f-dffc-4aed-60bb90ba2e5f@redhat.com>
On Wed, Jan 16, 2019 at 12:49:07PM +0100, Paolo Bonzini wrote:
> On 16/01/19 12:34, Gerd Hoffmann wrote:
> > Hi,
> >
> >> typedefs.h is useful to avoid rebuilding the world too often if a type
> >> is used many times as a pointer, but rarely as a struct and rarely has
> >> functions called on its instances.
> >
> > Related: Can also be used to keep struct content private. struct
> > QemuConsole for example is private to ui/console.c, but pointers to
> > QemuConsole are passed around alot in ui/* and hw/display/* code.
>
> True, though as we switch more and more from pointers to embedded
> structs that does not work that much anymore. Another way to do that is
> to split the header in include/path/to/foo.h and path/to/foo_internal.h.
>
> Paolo
Not sure this will help since no tool checks structure isn't
actually used even though it's in internal.
If you want to go overboard it's solvable of course, e.g.
something like this will work:
E.g. in virtio.h
#ifndef VIRTIO_PRIVATE
#define VIRTIO_PRIVATE(f) (VIRTIO_PIVATE_##f)
#endif
struct VirtioPrivate {
int VIRTIO_PRIVATE(bar);
};
and in virtio.c:
#define VIRTIO_PRIVATE(f) (f)
#include <virtio.h>
--
MST
next prev parent reply other threads:[~2019-01-16 14:49 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-11 14:08 [Qemu-devel] [PATCH RESEND 00/15] typedefs: Remove scarcely used declarations Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 01/15] hw/input/ps2: Remove PS2State from "qemu/typedefs.h" Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 02/15] hw/pcmcia: Remove PCMCIACardState " Philippe Mathieu-Daudé
2019-01-14 8:39 ` Thomas Huth
2019-01-11 14:08 ` [Qemu-devel] [PATCH 03/15] hw/ssi: Remove SSIBus " Philippe Mathieu-Daudé
2019-01-14 8:44 ` Thomas Huth
2019-01-15 12:28 ` Markus Armbruster
2019-01-15 12:56 ` Thomas Huth
2019-01-15 18:02 ` Paolo Bonzini
2019-01-16 8:33 ` Markus Armbruster
2019-01-16 10:03 ` Paolo Bonzini
2019-01-16 11:34 ` Gerd Hoffmann
2019-01-16 11:49 ` Paolo Bonzini
2019-01-16 14:48 ` Michael S. Tsirkin [this message]
2019-01-17 9:01 ` Markus Armbruster
2019-01-17 9:03 ` Markus Armbruster
2019-01-15 17:57 ` Paolo Bonzini
2019-01-16 8:32 ` Markus Armbruster
2019-01-11 14:08 ` [Qemu-devel] [PATCH 04/15] hw/ide/ahci: Remove AllwinnerAHCIState " Philippe Mathieu-Daudé
2019-01-14 8:45 ` Thomas Huth
2019-01-11 14:08 ` [Qemu-devel] [PATCH 05/15] hw/nvram/fw_cfg: Remove various typedefs " Philippe Mathieu-Daudé
2019-01-11 16:26 ` Laszlo Ersek
2019-01-14 10:26 ` Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 06/15] hw/i2c/smbus: Remove SMBusDevice " Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 07/15] hw/bt: Remove HCIInfo " Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 08/15] hw/char/serial: Remove SerialState " Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 09/15] hw/i386: Remove PCMachineClass " Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 10/15] range: Remove Range " Philippe Mathieu-Daudé
2019-01-14 8:56 ` Thomas Huth
2019-01-14 10:30 ` Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 11/15] audio: Remove AudioState " Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 12/15] ui/console: Remove MouseTransformInfo from qemu/typedefs.h Philippe Mathieu-Daudé
2019-01-14 8:59 ` Thomas Huth
2019-01-14 12:59 ` Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 13/15] ui/console: Remove QemuDmaBuf from "qemu/typedefs.h" Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [PATCH 14/15] ui/console: Remove DisplayState/DisplaySurface " Philippe Mathieu-Daudé
2019-01-11 14:08 ` [Qemu-devel] [RFC PATCH 15/15] ui/console: Add "ui/pixelformat.h" to declare PixelFormat Philippe Mathieu-Daudé
2019-01-11 17:32 ` Paolo Bonzini
2019-01-14 10:24 ` Philippe Mathieu-Daudé
2019-01-14 12:35 ` Gerd Hoffmann
2019-01-14 12:41 ` Philippe Mathieu-Daudé
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=20190116091801-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=alistair@alistair23.me \
--cc=armbru@redhat.com \
--cc=clg@kaod.org \
--cc=crosthwaite.peter@gmail.com \
--cc=f4bug@amsat.org \
--cc=groug@kaod.org \
--cc=imammedo@redhat.com \
--cc=kraxel@redhat.com \
--cc=lersek@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
--cc=xiaoguangrong.eric@gmail.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).