Drop usage of old-age BSD types in generically used Cygwin headers

u_char, u_short, u_int, u_long are BSD-only types.  Remove them from
Cygwin headers which are supposed to be used in a non-BSD scenario.
Drop special Cygwin handling of those types in sys/types.h.

newlib:
	* libc/include/sys/types.h (u_char,u_short,u_int,u_long): Drop
	Cygwin exception.

cygwin:
	* fhandler_socket.cc (fhandler_socket::ioctl): Accommodate change
	in include/asm/socket.h.  Continue using u_long since that's the
	MS type here.
	* include/asm/socket.h: Since the type given in _IOR/_IOW macros
	is only used for its sizeof, replace u_long with equivalent long.
	* netdb.h (getnetbyaddr): Fix prototype.
	* netinet/ip.h: Replace old BSD-only types with generically defined
	old BSD types (u_char -> u_int8_t, etc).
	* netinet/tcp.h: Ditto.
	* netinet/udp.h: Ditto.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2016-03-24 14:03:40 +01:00
parent db5bfdbd8a
commit b1b46d4580
7 changed files with 48 additions and 49 deletions

View File

@ -87,8 +87,7 @@ typedef quad_t * qaddr_t;
# define quad quad_t # define quad quad_t
#endif #endif
/* These types are required by netinet/ *.h on Cygwin */ #if __MISC_VISIBLE
#if __MISC_VISIBLE || defined(__CYGWIN__)
#ifndef _BSDTYPES_DEFINED #ifndef _BSDTYPES_DEFINED
/* also defined in mingw/gmon.h and in w32api/winsock[2].h */ /* also defined in mingw/gmon.h and in w32api/winsock[2].h */
#ifndef __u_char_defined #ifndef __u_char_defined

View File

@ -2248,7 +2248,7 @@ fhandler_socket::ioctl (unsigned int cmd, void *p)
use a type of the expected size. Hopefully. */ use a type of the expected size. Hopefully. */
case FIOASYNC: case FIOASYNC:
#ifdef __x86_64__ #ifdef __x86_64__
case _IOW('f', 125, unsigned long): case _IOW('f', 125, u_long):
#endif #endif
res = WSAAsyncSelect (get_socket (), winmsg, WM_ASYNCIO, res = WSAAsyncSelect (get_socket (), winmsg, WM_ASYNCIO,
*(int *) p ? ASYNC_MASK : 0); *(int *) p ? ASYNC_MASK : 0);
@ -2261,7 +2261,7 @@ fhandler_socket::ioctl (unsigned int cmd, void *p)
break; break;
case FIONREAD: case FIONREAD:
#ifdef __x86_64__ #ifdef __x86_64__
case _IOR('f', 127, unsigned long): case _IOR('f', 127, u_long):
#endif #endif
res = ioctlsocket (get_socket (), FIONREAD, (u_long *) p); res = ioctlsocket (get_socket (), FIONREAD, (u_long *) p);
if (res == SOCKET_ERROR) if (res == SOCKET_ERROR)

View File

@ -22,15 +22,15 @@ details. */
#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) #define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) #define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
#define SIOCATMARK _IOR('s', 7, u_long) /* at oob mark? */ #define SIOCATMARK _IOR('s', 7, long) /* at oob mark? */
#define FIONREAD _IOR('f', 127, u_long) /* get # bytes to read */ #define FIONREAD _IOR('f', 127, long) /* get # bytes to read */
#define FIONBIO 0x8004667e /* To be compatible with termiost version */ #define FIONBIO 0x8004667e /* To be compatible with termiost version */
#define REAL_FIONBIO _IOW('f', 126, u_long) /* set/clear non-blocking i/o */ #define REAL_FIONBIO _IOW('f', 126, long) /* set/clear non-blocking i/o */
#define FIOASYNC _IOW('f', 125, u_long) /* set/clear async i/o */ #define FIOASYNC _IOW('f', 125, long) /* set/clear async i/o */
#define SIOCSHIWAT _IOW('s', 0, u_long) /* set high watermark */ #define SIOCSHIWAT _IOW('s', 0, long) /* set high watermark */
#define SIOCGHIWAT _IOR('s', 1, u_long) /* get high watermark */ #define SIOCGHIWAT _IOR('s', 1, long) /* get high watermark */
#define SIOCSLOWAT _IOW('s', 2, u_long) /* set low watermark */ #define SIOCSLOWAT _IOW('s', 2, long) /* set low watermark */
#define SIOCGLOWAT _IOR('s', 3, u_long) /* get low watermark */ #define SIOCGLOWAT _IOR('s', 3, long) /* get low watermark */
/* Needed for if queries */ /* Needed for if queries */
#define SIOCGIFCONF _IOW('s', 100, struct ifconf) /* get if list */ #define SIOCGIFCONF _IOW('s', 100, struct ifconf) /* get if list */
@ -57,7 +57,7 @@ details. */
#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */ #define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */
#define SO_LINGER 0x0080 /* linger on close if data present */ #define SO_LINGER 0x0080 /* linger on close if data present */
#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */ #define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
#define SO_DONTLINGER (u_int)(~SO_LINGER) #define SO_DONTLINGER (unsigned int)(~SO_LINGER)
#define SO_PEERCRED 0x0200 /* same as getpeereid */ #define SO_PEERCRED 0x0200 /* same as getpeereid */
/* /*

View File

@ -218,7 +218,7 @@ struct hostent *gethostbyaddr (const char *, int, int);
struct hostent *gethostbyname (const char *); struct hostent *gethostbyname (const char *);
struct hostent *gethostbyname2 (const char *, int); struct hostent *gethostbyname2 (const char *, int);
struct hostent *gethostent (void); struct hostent *gethostent (void);
struct netent *getnetbyaddr (long, int); /* u_long? */ struct netent *getnetbyaddr (uint32_t, int);
struct netent *getnetbyname (const char *); struct netent *getnetbyname (const char *);
struct netent *getnetent (void); struct netent *getnetent (void);
struct protoent *getprotobyname (const char *); struct protoent *getprotobyname (const char *);

View File

@ -52,28 +52,28 @@
*/ */
struct ip { struct ip {
#ifdef _IP_VHL #ifdef _IP_VHL
u_char ip_vhl; /* version << 4 | header length >> 2 */ u_int8_t ip_vhl; /* version << 4 | header length >> 2 */
#else #else
#if __BYTE_ORDER == __LITTLE_ENDIAN #if __BYTE_ORDER == __LITTLE_ENDIAN
u_int ip_hl:4, /* header length */ unsigned int ip_hl:4, /* header length */
ip_v:4; /* version */ ip_v:4; /* version */
#endif #endif
#if __BYTE_ORDER == __BIG_ENDIAN #if __BYTE_ORDER == __BIG_ENDIAN
u_int ip_v:4, /* version */ unsigned int ip_v:4, /* version */
ip_hl:4; /* header length */ ip_hl:4; /* header length */
#endif #endif
#endif /* not _IP_VHL */ #endif /* not _IP_VHL */
u_char ip_tos; /* type of service */ u_int_8 ip_tos; /* type of service */
u_short ip_len; /* total length */ u_int16_t ip_len; /* total length */
u_short ip_id; /* identification */ u_int16_t ip_id; /* identification */
u_short ip_off; /* fragment offset field */ u_int16_t ip_off; /* fragment offset field */
#define IP_RF 0x8000 /* reserved fragment flag */ #define IP_RF 0x8000 /* reserved fragment flag */
#define IP_DF 0x4000 /* dont fragment flag */ #define IP_DF 0x4000 /* dont fragment flag */
#define IP_MF 0x2000 /* more fragments flag */ #define IP_MF 0x2000 /* more fragments flag */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ #define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
u_char ip_ttl; /* time to live */ u_int8_t ip_ttl; /* time to live */
u_char ip_p; /* protocol */ u_int8_t ip_p; /* protocol */
u_short ip_sum; /* checksum */ u_int16_t ip_sum; /* checksum */
struct in_addr ip_src,ip_dst; /* source and dest address */ struct in_addr ip_src,ip_dst; /* source and dest address */
}; };
@ -208,15 +208,15 @@ struct ip {
* Time stamp option structure. * Time stamp option structure.
*/ */
struct ip_timestamp { struct ip_timestamp {
u_char ipt_code; /* IPOPT_TS */ u_int8_t ipt_code; /* IPOPT_TS */
u_char ipt_len; /* size of structure (variable) */ u_int8_t ipt_len; /* size of structure (variable) */
u_char ipt_ptr; /* index of current entry */ u_int8_t ipt_ptr; /* index of current entry */
#if __BYTE_ORDER == __LITTLE_ENDIAN #if __BYTE_ORDER == __LITTLE_ENDIAN
u_int ipt_flg:4, /* flags, see below */ unsigned int ipt_flg:4, /* flags, see below */
ipt_oflw:4; /* overflow counter */ ipt_oflw:4; /* overflow counter */
#endif #endif
#if __BYTE_ORDER == __BIG_ENDIAN #if __BYTE_ORDER == __BIG_ENDIAN
u_int ipt_oflw:4, /* overflow counter */ unsigned int ipt_oflw:4, /* overflow counter */
ipt_flg:4; /* flags, see below */ ipt_flg:4; /* flags, see below */
#endif #endif
union ipt_timestamp { union ipt_timestamp {

View File

@ -50,19 +50,19 @@ typedef u_int32_t tcp_cc; /* connection count per rfc1644 */
* Per RFC 793, September, 1981. * Per RFC 793, September, 1981.
*/ */
struct tcphdr { struct tcphdr {
u_short th_sport; /* source port */ u_int16_t th_sport; /* source port */
u_short th_dport; /* destination port */ u_int16_t th_dport; /* destination port */
tcp_seq th_seq; /* sequence number */ tcp_seq th_seq; /* sequence number */
tcp_seq th_ack; /* acknowledgement number */ tcp_seq th_ack; /* acknowledgement number */
#if __BYTE_ORDER == __LITTLE_ENDIAN #if __BYTE_ORDER == __LITTLE_ENDIAN
u_int th_x2:4, /* (unused) */ unsigned int th_x2:4, /* (unused) */
th_off:4; /* data offset */ th_off:4; /* data offset */
#endif #endif
#if __BYTE_ORDER == __BIG_ENDIAN #if __BYTE_ORDER == __BIG_ENDIAN
u_int th_off:4, /* data offset */ unsigned int th_off:4, /* data offset */
th_x2:4; /* (unused) */ th_x2:4; /* (unused) */
#endif #endif
u_char th_flags; u_int8_t th_flags;
#define TH_FIN 0x01 #define TH_FIN 0x01
#define TH_SYN 0x02 #define TH_SYN 0x02
#define TH_RST 0x04 #define TH_RST 0x04
@ -71,9 +71,9 @@ struct tcphdr {
#define TH_URG 0x20 #define TH_URG 0x20
#define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG) #define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG)
u_short th_win; /* window */ u_int16_t th_win; /* window */
u_short th_sum; /* checksum */ u_int16_t th_sum; /* checksum */
u_short th_urp; /* urgent pointer */ u_int16_t th_urp; /* urgent pointer */
}; };
#define TCPOPT_EOL 0 #define TCPOPT_EOL 0

View File

@ -42,10 +42,10 @@
* Per RFC 768, September, 1981. * Per RFC 768, September, 1981.
*/ */
struct udphdr { struct udphdr {
u_short uh_sport; /* source port */ u_int16_t uh_sport; /* source port */
u_short uh_dport; /* destination port */ u_int16_t uh_dport; /* destination port */
u_short uh_ulen; /* udp length */ u_int16_t uh_ulen; /* udp length */
u_short uh_sum; /* udp checksum */ u_int16_t uh_sum; /* udp checksum */
}; };
#endif #endif