qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: malc <av1474@comtv.ru>
Cc: Isaku Yamahata <yamahata@valinux.co.jp>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 4/9] pci: use uint64_t for bar addr and size instead of uint32_t.
Date: Thu, 1 Oct 2009 14:26:52 +0200	[thread overview]
Message-ID: <20091001122650.GA9781@redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0910011613470.2148@linmac.oyster.ru>

On Thu, Oct 01, 2009 at 04:15:59PM +0400, malc wrote:
> On Thu, 1 Oct 2009, Michael S. Tsirkin wrote:
> 
> > On Wed, Sep 30, 2009 at 09:59:11PM +0400, malc wrote:
> > > On Wed, 30 Sep 2009, Michael S. Tsirkin wrote:
> > > 
> 
> [..snip..]
> 
> > > > > 
> > > > > _t suffix is reserved by POSIX.
> > > > 
> > > > There's still no better naming for scalars.  Worst case some platform
> > > > will fail to compile, and we'll rename.
> > > > 
> > > 
> > > Not good enough, if you are using something you have to abide the
> > > constraints.
> > 
> > So, posix does not reserve all of *_t namespace, it would negate years
> > of C code. It simply says posix implementations can add only symbols
> > ending with _t in the headers: this is a constraint on posix headers,
> > not on applications that use them.  Thus you have to find some other
> > means to avoid conflict if you have symbols ending with _t. Using your
> > module name as a prefix is a classical way to do this, for pci prefixing
> > type name with pci_ should be enough to prevent any issues.
> 
> I don't understand this at all. POSIX says that if you include any of
> it's headers be prepared to deal with it, i.e. any of your own
> typedefs that end with _t are potentially clashing with what's defined
> there,

In practice I don't expect any posix header to clash with
michael_s_tsirkin_t even though in theory it might.

So you can choose not to use any types that end with _t and have a
guarantee that you won't clash with posix, and just name types sanely so
they don't clash with posix in practice, on any platform people care
about, like 99% of the world does.

> similarly identifiers that start with 'str', 'E', double
> underscore and underscore followed by a capital letter are reserved by
> C, you just don't go there.

I agree, double underscores look ugly enough to avoid them without a special
reason, but for everyone reading C, *_t means "scalar type"
and this benefit of using it outweights, IMO, the danger of
potential clash with a header on a non-existing platform.

> -- 
> mailto:av1474@comtv.ru

  reply	other threads:[~2009-10-01 12:29 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-15 11:15 [Qemu-devel] [PATCH 0/9] pci: pcie host and mmcfg support Isaku Yamahata
2009-07-15 11:15 ` [Qemu-devel] [PATCH 1/9] pci: fix PCI_DPRINTF() wrt variadic macro Isaku Yamahata
2009-09-30 11:36   ` Michael S. Tsirkin
2009-07-15 11:15 ` [Qemu-devel] [PATCH 2/9] pci.c: use appropriate PRIs in PCI_DPRINTF() Isaku Yamahata
2009-09-30 11:37   ` Michael S. Tsirkin
2009-09-30 11:58   ` Michael S. Tsirkin
2009-07-15 11:15 ` [Qemu-devel] [PATCH 3/9] pci: define a constant to represent a unmapped bar and use it Isaku Yamahata
2009-09-30 11:37   ` Michael S. Tsirkin
2009-07-15 11:15 ` [Qemu-devel] [PATCH 4/9] pci: use uint64_t for bar addr and size instead of uint32_t Isaku Yamahata
2009-09-30 11:41   ` Michael S. Tsirkin
2009-09-30 15:25     ` malc
2009-09-30 16:15       ` Michael S. Tsirkin
2009-09-30 16:51         ` malc
2009-09-30 17:26           ` Michael S. Tsirkin
2009-09-30 17:59             ` malc
2009-10-01  5:33               ` Michael S. Tsirkin
2009-10-01 12:15                 ` malc
2009-10-01 12:26                   ` Michael S. Tsirkin [this message]
2009-10-01 12:45                     ` malc
2009-10-01 13:54                   ` Anthony Liguori
2009-10-01 18:46                     ` malc
2009-10-01 23:41                   ` Jamie Lokier
2009-10-01  3:44     ` Isaku Yamahata
2009-07-15 11:15 ` [Qemu-devel] [PATCH 5/9] pci: 64bit bar support Isaku Yamahata
2009-09-30 11:43   ` Michael S. Tsirkin
2009-10-06  9:33   ` Michael S. Tsirkin
2009-07-15 11:15 ` [Qemu-devel] [PATCH 6/9] pci.c: factor out while(bus) bus->next loop logic into pci_find_bus_from() Isaku Yamahata
2009-09-30 11:45   ` Michael S. Tsirkin
2009-10-01  3:29     ` Isaku Yamahata
2009-10-01  6:28       ` Michael S. Tsirkin
2009-10-01  7:00         ` Isaku Yamahata
2009-10-01  7:14           ` Michael S. Tsirkin
2009-10-01 11:24         ` Gerd Hoffmann
2009-07-15 11:15 ` [Qemu-devel] [PATCH 7/9] pci: factor out the logic to get pci device from address Isaku Yamahata
2009-09-30 11:30   ` Michael S. Tsirkin
2009-10-01  3:59     ` Isaku Yamahata
2009-07-15 11:15 ` [Qemu-devel] [PATCH 8/9] pci_host.h: split non-inline static function in pci_host.h into pci_host_c.h Isaku Yamahata
2009-09-30 11:47   ` Michael S. Tsirkin
2009-10-01  4:13     ` Isaku Yamahata
2009-07-15 11:15 ` [Qemu-devel] [PATCH 9/9] [RFC] pci: pcie host and mmcfg support Isaku Yamahata
2009-10-06  9:32   ` Michael S. Tsirkin

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=20091001122650.GA9781@redhat.com \
    --to=mst@redhat.com \
    --cc=av1474@comtv.ru \
    --cc=qemu-devel@nongnu.org \
    --cc=yamahata@valinux.co.jp \
    /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).