All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Lennart Sorensen <lsorense@csclub.uwaterloo.ca>
Cc: Xenomai Mailing List <xenomai@xenomai.org>
Subject: Re: [Xenomai] Why does mqueue.h define mqd_t as unsigned
Date: Fri, 10 Apr 2015 00:29:14 +0200	[thread overview]
Message-ID: <20150409222914.GJ20752@hermes.click-hack.org> (raw)
In-Reply-To: <20150409221718.GI20752@hermes.click-hack.org>

On Fri, Apr 10, 2015 at 12:17:18AM +0200, Gilles Chanteperdrix wrote:
> On Thu, Apr 09, 2015 at 06:09:56PM -0400, Lennart Sorensen wrote:
> > On Thu, Apr 09, 2015 at 02:11:53PM -0700, Paul Janzen wrote:
> > > Phil Mitchell <p.mitch@gmail.com> writes:
> > > 
> > > > mqueue.h defines mqd_t as an unsigned long. The function mq_open returns
> > > > type mqd_t and states that -1 is returned in case of error.
> > > >
> > > > Is mqd_t defined incorrectly or am I missing something?
> > > 
> > > The man page says mq_open returns (mqd_t)(-1) on error. If you include
> > > that cast when you test the return value it works, even if mqd_t is
> > > unsigned.  (Or a pointer.)
> > 
> > Yuck!
> > 
> > Some of us try to avoid explicit casts since they are a great way to
> > hide bugs in ways the compiler can't help you find.
> > 
> > Making a cast required by design seems like a major design bug that
> > ought to be fixed.
> 
> This design is specified by POSIX. This looks like a "fighting the
> windmill" case.

I think the upside of this design is that it allows mqd_t being
implemented as a pointer or as an integer, this gives freedom to the
implementer by making the type opaque.

-- 
					    Gilles.


  reply	other threads:[~2015-04-09 22:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-09 20:52 [Xenomai] Why does mqueue.h define mqd_t as unsigned Phil Mitchell
2015-04-09 21:07 ` Gilles Chanteperdrix
2015-04-10 18:55   ` Gilles Chanteperdrix
2015-04-09 21:11 ` Paul Janzen
2015-04-09 22:09   ` Lennart Sorensen
2015-04-09 22:17     ` Gilles Chanteperdrix
2015-04-09 22:29       ` Gilles Chanteperdrix [this message]
2015-04-09 23:17         ` Lowell Gilbert
2015-04-10 14:44       ` Lennart Sorensen
2015-04-10 14:50         ` Gilles Chanteperdrix

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=20150409222914.GJ20752@hermes.click-hack.org \
    --to=gilles.chanteperdrix@xenomai.org \
    --cc=lsorense@csclub.uwaterloo.ca \
    --cc=xenomai@xenomai.org \
    /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.