Move fd_stuff from sys/types.h to sys/select.h
* libc/include/sys/types.h: Move definitions of NBBY and howmany to sys/param.h. Move definitions of select(2) macros to sys/select.h. * libc/include/sys/param.h: See above. * libc/include/sys/select.h: Move Cygwin's sys/select.h here. * include/sys/select.h: Move select(2) macros from newlib's sys/types.h here. Rename howmany to _howmany to unclutter namespace. Move file to newlib. * libc/rexex.cc: Add declaration for cygwin_gethostname. * poll.cc: Include sys/param.h and locale select.h. * select.h (cygwin_select): Declare. * uname.cc: Declare cygwin_gethostname. * winsup.h: Drop declarations of cygwin_select and cygwin_gethostname. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
e753e4129a
commit
08184b362e
|
@ -1,3 +1,10 @@
|
||||||
|
2015-12-07 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* libc/include/sys/types.h: Move definitions of NBBY and howmany to
|
||||||
|
sys/param.h. Move definitions of select(2) macros to sys/select.h.
|
||||||
|
* libc/include/sys/param.h: See above.
|
||||||
|
* libc/include/sys/select.h: Move Cygwin's sys/select.h here.
|
||||||
|
|
||||||
2015-11-26 Corinna Vinschen <corinna@vinschen.de>
|
2015-11-26 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* libc/stdlib/strtodg.c: Add ifdef to check _HAVE_LONG_DOUBLE and
|
* libc/stdlib/strtodg.c: Add ifdef to check _HAVE_LONG_DOUBLE and
|
||||||
|
|
|
@ -10,6 +10,9 @@
|
||||||
#include <machine/endian.h>
|
#include <machine/endian.h>
|
||||||
#include <machine/param.h>
|
#include <machine/param.h>
|
||||||
|
|
||||||
|
#ifndef NBBY
|
||||||
|
# define NBBY 8 /* number of bits in a byte */
|
||||||
|
#endif
|
||||||
#ifndef HZ
|
#ifndef HZ
|
||||||
# define HZ (60)
|
# define HZ (60)
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,4 +28,8 @@
|
||||||
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||||
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||||
|
|
||||||
|
#ifndef howmany
|
||||||
|
#define howmany(x, y) (((x)+((y)-1))/(y))
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
/* select.h
|
||||||
|
Copyright 1998, 1999, 2000, 2001, 2005, 2009 Red Hat, Inc.
|
||||||
|
|
||||||
|
Written by Geoffrey Noer <noer@cygnus.com>
|
||||||
|
|
||||||
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
This software is a copyrighted work licensed under the terms of the
|
||||||
|
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
||||||
|
details. */
|
||||||
|
|
||||||
|
#ifndef _SYS_SELECT_H
|
||||||
|
#define _SYS_SELECT_H
|
||||||
|
|
||||||
|
/* We don't define fd_set and friends if we are compiling POSIX
|
||||||
|
source, or if we have included (or may include as indicated
|
||||||
|
by __USE_W32_SOCKETS) the W32api winsock[2].h header which
|
||||||
|
defines Windows versions of them. Note that a program which
|
||||||
|
includes the W32api winsock[2].h header must know what it is doing;
|
||||||
|
it must not call the Cygwin select function.
|
||||||
|
*/
|
||||||
|
# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
|
||||||
|
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
|
||||||
|
/* Get fd_set, and macros like FD_SET */
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
/* Get definition of timeval. */
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
/* Get definition of sigset_t. */
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
# define _SYS_TYPES_FD_SET
|
||||||
|
/*
|
||||||
|
* Select uses bit masks of file descriptors in longs.
|
||||||
|
* These macros manipulate such bit fields (the filesystem macros use chars).
|
||||||
|
* FD_SETSIZE may be defined by the user, but the default here
|
||||||
|
* should be >= NOFILE (param.h).
|
||||||
|
*/
|
||||||
|
# ifndef FD_SETSIZE
|
||||||
|
# define FD_SETSIZE 64
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef unsigned long fd_mask;
|
||||||
|
# define NFDBITS (sizeof (fd_mask) * 8) /* bits per mask */
|
||||||
|
# ifndef _howmany
|
||||||
|
# define _howmany(x,y) (((x)+((y)-1))/(y))
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* We use a macro for fd_set so that including Sockets.h afterwards
|
||||||
|
can work. */
|
||||||
|
typedef struct _types_fd_set {
|
||||||
|
fd_mask fds_bits[_howmany(FD_SETSIZE, NFDBITS)];
|
||||||
|
} _types_fd_set;
|
||||||
|
|
||||||
|
#define fd_set _types_fd_set
|
||||||
|
|
||||||
|
# define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS)))
|
||||||
|
# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS)))
|
||||||
|
# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS)))
|
||||||
|
# define FD_ZERO(p) (__extension__ (void)({ \
|
||||||
|
size_t __i; \
|
||||||
|
char *__tmp = (char *)p; \
|
||||||
|
for (__i = 0; __i < sizeof (*(p)); ++__i) \
|
||||||
|
*__tmp++ = 0; \
|
||||||
|
}))
|
||||||
|
|
||||||
|
#if !defined (__INSIDE_CYGWIN_NET__)
|
||||||
|
|
||||||
|
__BEGIN_DECLS
|
||||||
|
|
||||||
|
int select __P ((int __n, fd_set *__readfds, fd_set *__writefds,
|
||||||
|
fd_set *__exceptfds, struct timeval *__timeout));
|
||||||
|
int pselect __P ((int __n, fd_set *__readfds, fd_set *__writefds,
|
||||||
|
fd_set *__exceptfds, const struct timespec *__timeout,
|
||||||
|
const sigset_t *__set));
|
||||||
|
|
||||||
|
__END_DECLS
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !_POSIX_SOURCE, !__INSIDE_CYGWIN_NET__ */
|
||||||
|
|
||||||
|
#endif /* sys/select.h */
|
|
@ -208,52 +208,6 @@ typedef unsigned int mode_t _ST_INT32;
|
||||||
|
|
||||||
typedef unsigned short nlink_t;
|
typedef unsigned short nlink_t;
|
||||||
|
|
||||||
/* We don't define fd_set and friends if we are compiling POSIX
|
|
||||||
source, or if we have included (or may include as indicated
|
|
||||||
by __USE_W32_SOCKETS) the W32api winsock[2].h header which
|
|
||||||
defines Windows versions of them. Note that a program which
|
|
||||||
includes the W32api winsock[2].h header must know what it is doing;
|
|
||||||
it must not call the cygwin32 select function.
|
|
||||||
*/
|
|
||||||
# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
|
|
||||||
# define _SYS_TYPES_FD_SET
|
|
||||||
# define NBBY 8 /* number of bits in a byte */
|
|
||||||
/*
|
|
||||||
* Select uses bit masks of file descriptors in longs.
|
|
||||||
* These macros manipulate such bit fields (the filesystem macros use chars).
|
|
||||||
* FD_SETSIZE may be defined by the user, but the default here
|
|
||||||
* should be >= NOFILE (param.h).
|
|
||||||
*/
|
|
||||||
# ifndef FD_SETSIZE
|
|
||||||
# define FD_SETSIZE 64
|
|
||||||
# endif
|
|
||||||
|
|
||||||
typedef long fd_mask;
|
|
||||||
# define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */
|
|
||||||
# ifndef howmany
|
|
||||||
# define howmany(x,y) (((x)+((y)-1))/(y))
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* We use a macro for fd_set so that including Sockets.h afterwards
|
|
||||||
can work. */
|
|
||||||
typedef struct _types_fd_set {
|
|
||||||
fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
|
|
||||||
} _types_fd_set;
|
|
||||||
|
|
||||||
#define fd_set _types_fd_set
|
|
||||||
|
|
||||||
# define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS)))
|
|
||||||
# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS)))
|
|
||||||
# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS)))
|
|
||||||
# define FD_ZERO(p) (__extension__ (void)({ \
|
|
||||||
size_t __i; \
|
|
||||||
char *__tmp = (char *)p; \
|
|
||||||
for (__i = 0; __i < sizeof (*(p)); ++__i) \
|
|
||||||
*__tmp++ = 0; \
|
|
||||||
}))
|
|
||||||
|
|
||||||
# endif /* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) */
|
|
||||||
|
|
||||||
#undef __MS_types__
|
#undef __MS_types__
|
||||||
#undef _ST_INT32
|
#undef _ST_INT32
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,14 @@
|
||||||
|
2015-12-07 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* include/sys/select.h: Move select(2) macros from newlib's sys/types.h
|
||||||
|
here. Rename howmany to _howmany to unclutter namespace. Move file to
|
||||||
|
newlib.
|
||||||
|
* libc/rexex.cc: Add declaration for cygwin_gethostname.
|
||||||
|
* poll.cc: Include sys/param.h and locale select.h.
|
||||||
|
* select.h (cygwin_select): Declare.
|
||||||
|
* uname.cc: Declare cygwin_gethostname.
|
||||||
|
* winsup.h: Drop declarations of cygwin_select and cygwin_gethostname.
|
||||||
|
|
||||||
2015-12-07 Corinna Vinschen <corinna@vinschen.de>
|
2015-12-07 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* dcrt0.cc: Semi-revert commit 12743c2d5d2721f3a80b4d7671a349be03c1f520.
|
* dcrt0.cc: Semi-revert commit 12743c2d5d2721f3a80b4d7671a349be03c1f520.
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
/* select.h
|
|
||||||
Copyright 1998, 1999, 2000, 2001, 2005, 2009 Red Hat, Inc.
|
|
||||||
|
|
||||||
Written by Geoffrey Noer <noer@cygnus.com>
|
|
||||||
|
|
||||||
This file is part of Cygwin.
|
|
||||||
|
|
||||||
This software is a copyrighted work licensed under the terms of the
|
|
||||||
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
|
||||||
details. */
|
|
||||||
|
|
||||||
#ifndef _SYS_SELECT_H
|
|
||||||
#define _SYS_SELECT_H
|
|
||||||
|
|
||||||
#if !defined (_POSIX_SOURCE) && !defined (__INSIDE_CYGWIN_NET__) && !defined (__USE_W32_SOCKETS)
|
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
|
|
||||||
/* Get fd_set, and macros like FD_SET */
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
/* Get definition of timeval. */
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
/* Get definition of sigset_t. */
|
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
__BEGIN_DECLS
|
|
||||||
|
|
||||||
int select __P ((int __n, fd_set *__readfds, fd_set *__writefds,
|
|
||||||
fd_set *__exceptfds, struct timeval *__timeout));
|
|
||||||
int pselect __P ((int __n, fd_set *__readfds, fd_set *__writefds,
|
|
||||||
fd_set *__exceptfds, const struct timespec *__timeout,
|
|
||||||
const sigset_t *__set));
|
|
||||||
|
|
||||||
__END_DECLS
|
|
||||||
|
|
||||||
#endif /* !_POSIX_SOURCE, !__INSIDE_CYGWIN_NET__ */
|
|
||||||
|
|
||||||
#endif /* sys/select.h */
|
|
|
@ -63,6 +63,7 @@ static char sccsid[] = "@(#)rexec.c 8.1 (Berkeley) 6/4/93";
|
||||||
extern "C" {
|
extern "C" {
|
||||||
int cygwin_accept (int, struct sockaddr *, socklen_t *);
|
int cygwin_accept (int, struct sockaddr *, socklen_t *);
|
||||||
int cygwin_connect (int, const struct sockaddr *, socklen_t);
|
int cygwin_connect (int, const struct sockaddr *, socklen_t);
|
||||||
|
int cygwin_gethostname (char *__name, size_t __len);
|
||||||
int cygwin_getsockname (int, struct sockaddr *, socklen_t *);
|
int cygwin_getsockname (int, struct sockaddr *, socklen_t *);
|
||||||
void cygwin_herror (const char *);
|
void cygwin_herror (const char *);
|
||||||
int cygwin_listen (int, int);
|
int cygwin_listen (int, int);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* poll.cc. Implements poll(2) via usage of select(2) call.
|
/* poll.cc. Implements poll(2) via usage of select(2) call.
|
||||||
|
|
||||||
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011,
|
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011,
|
||||||
2012, 2014 Red Hat, Inc.
|
2012, 2014, 2015 Red Hat, Inc.
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
||||||
#define FD_SETSIZE 16384 // lots of fds
|
#define FD_SETSIZE 16384 // lots of fds
|
||||||
#include "winsup.h"
|
#include "winsup.h"
|
||||||
#include <sys/poll.h>
|
#include <sys/poll.h>
|
||||||
|
#include <sys/param.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#define USE_SYS_TYPES_FD_SET
|
#define USE_SYS_TYPES_FD_SET
|
||||||
#include "cygerrno.h"
|
#include "cygerrno.h"
|
||||||
|
@ -21,6 +22,7 @@
|
||||||
#include "cygheap.h"
|
#include "cygheap.h"
|
||||||
#include "pinfo.h"
|
#include "pinfo.h"
|
||||||
#include "sigproc.h"
|
#include "sigproc.h"
|
||||||
|
#include "select.h"
|
||||||
|
|
||||||
extern "C" int
|
extern "C" int
|
||||||
poll (struct pollfd *fds, nfds_t nfds, int timeout)
|
poll (struct pollfd *fds, nfds_t nfds, int timeout)
|
||||||
|
|
|
@ -107,4 +107,8 @@ public:
|
||||||
device_specific_serial (NULL),
|
device_specific_serial (NULL),
|
||||||
device_specific_mailslot (NULL) {}
|
device_specific_mailslot (NULL) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern "C" int cygwin_select (int , fd_set *, fd_set *, fd_set *,
|
||||||
|
struct timeval *to);
|
||||||
|
|
||||||
#endif /* _SELECT_H_ */
|
#endif /* _SELECT_H_ */
|
||||||
|
|
|
@ -16,6 +16,8 @@ details. */
|
||||||
#include "cygwin_version.h"
|
#include "cygwin_version.h"
|
||||||
#include "cygtls.h"
|
#include "cygtls.h"
|
||||||
|
|
||||||
|
extern "C" int cygwin_gethostname (char *__name, size_t __len);
|
||||||
|
|
||||||
/* uname: POSIX 4.4.1.1 */
|
/* uname: POSIX 4.4.1.1 */
|
||||||
extern "C" int
|
extern "C" int
|
||||||
uname (struct utsname *name)
|
uname (struct utsname *name)
|
||||||
|
|
|
@ -260,14 +260,6 @@ extern inline bool flush_file_buffers (HANDLE h)
|
||||||
/* Make sure that regular ExitThread is never called */
|
/* Make sure that regular ExitThread is never called */
|
||||||
#define ExitThread exit_thread
|
#define ExitThread exit_thread
|
||||||
|
|
||||||
/**************************** Exports ******************************/
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
int cygwin_select (int , fd_set *, fd_set *, fd_set *,
|
|
||||||
struct timeval *to);
|
|
||||||
int cygwin_gethostname (char *__name, size_t __len);
|
|
||||||
};
|
|
||||||
|
|
||||||
/*************************** Unsorted ******************************/
|
/*************************** Unsorted ******************************/
|
||||||
|
|
||||||
#define WM_ASYNCIO 0x8000 // WM_APP
|
#define WM_ASYNCIO 0x8000 // WM_APP
|
||||||
|
|
Loading…
Reference in New Issue