Cygwin off_t, dev_t, uid_t and gid_t definitions

Sebastian Huber sebastian.huber@embedded-brains.de
Wed Apr 13 06:19:00 GMT 2016


Hello,

we have currently an exception for Cygwin in the <sys/types.h> header:

#ifndef __CYGWIN__    /* which defines these types in it's own types.h. */
typedef _off_t    off_t;
typedef __dev_t dev_t;
typedef __uid_t uid_t;
typedef __gid_t gid_t;
#endif

Cygwin defines these types in "winsup/cygwin/include/cygwin/types.h":

#ifndef __off_t_defined
#define __off_t_defined
/* Based on the newlib definitions. */
#if __WORDSIZE == 64
typedef _off_t off_t;
#else
typedef _off64_t off_t;
#endif
#endif /*__off_t_defined*/

#ifndef __dev_t_defined
#define __dev_t_defined
typedef __int16_t __dev16_t;
typedef __uint32_t dev_t;
#endif /*__dev_t_defined*/

#ifndef __uid_t_defined
#define __uid_t_defined
typedef unsigned short __uid16_t;
typedef __uint32_t uid_t;
#endif /*__uid_t_defined*/

#ifndef __gid_t_defined
#define __gid_t_defined
typedef unsigned short __gid16_t;
typedef __uint32_t gid_t;
#endif /*__gid_t_defined*/

I think this is misleading since it may conflict with the internal types 
defined by <sys/_types.h>. Maybe Cygwin should define __dev_t, __uid_t 
and __gid_t in <machine/_types.h> (where to place this file?).

Since the default _off_t definition is

#ifndef __off_t_defined
typedef long _off_t;
#endif

The off_t definition could be probably simply

typedef _off_t off_t;

-- 
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@embedded-brains.de
PGP     : Public key available on request.

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



More information about the Newlib mailing list