This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Inconsistent guards for internal and user types


----- Craig Howland <howland@LGSInnovations.com> schrieb:
> On 04/13/2016 05:32 AM, Corinna Vinschen wrote:
> > On Apr 13 10:44, Sebastian Huber wrote:
> >> Hello,
> >>
> >> Newlib defines defaults for internal types via <sys/_types.h> and uses
> >> <machine/_types.h> to let systems define their own type if necessary. For
> >> example
> >>
> >> #ifndef __dev_t_defined
> >> typedef short __dev_t;
> >> #endif
> >>
> >> However, the __*_t_defined pattern conflicts with the glibc type guard
> >> pattern for user types, e.g. dev_t in this this example. I suggest to
> >> introduce a __machine_*_t_pattern for internal types (defined by
> >> <machine/_types.h>, used by <sys/_types.h>). For example
> >>
> >> #ifndef __machine_dev_t_defined
> >> typedef short __dev_t;
> >> #endif
> > Hmm, ok.  Looks a bit longish but I can't think of anything shorter
> > and still readable either.
> >
> >
> > Corinna
> >
> How about just changing the original order, for example __defined_dev_t (exactly 
> the same length)?  It would want an explanatory comment somewhere to 
> differentiate, but that would be needed no matter how it is done, anyway.

I think this is confusing.  The prefix __machine clearly indicates that this has something to do with a machine include.  These defines are only used in <sys/_types.h>, so the length shouldn't be a big deal.


-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschÃftliche Mitteilung im Sinne des EHUG.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]