Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2015-11-19 00:13:31 +0300
committerCorinna Vinschen <corinna@vinschen.de>2015-12-07 18:28:22 +0300
commit08184b362e8eeb2af0d03d169b852769d1d66f53 (patch)
tree1bad4b1ab454d1de4fd5389f73e52fde4a5d4960 /newlib/libc
parente753e4129ad0843859e97a4c56962b5395f390b6 (diff)
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>
Diffstat (limited to 'newlib/libc')
-rw-r--r--newlib/libc/include/sys/param.h7
-rw-r--r--newlib/libc/include/sys/select.h87
-rw-r--r--newlib/libc/include/sys/types.h46
3 files changed, 94 insertions, 46 deletions
diff --git a/newlib/libc/include/sys/param.h b/newlib/libc/include/sys/param.h
index ef203d3ec..9a6f115a6 100644
--- a/newlib/libc/include/sys/param.h
+++ b/newlib/libc/include/sys/param.h
@@ -10,6 +10,9 @@
#include <machine/endian.h>
#include <machine/param.h>
+#ifndef NBBY
+# define NBBY 8 /* number of bits in a byte */
+#endif
#ifndef HZ
# define HZ (60)
#endif
@@ -25,4 +28,8 @@
#define MAX(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
diff --git a/newlib/libc/include/sys/select.h b/newlib/libc/include/sys/select.h
new file mode 100644
index 000000000..ffe890049
--- /dev/null
+++ b/newlib/libc/include/sys/select.h
@@ -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 */
diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
index d8d6fdcb2..5dd6c75fe 100644
--- a/newlib/libc/include/sys/types.h
+++ b/newlib/libc/include/sys/types.h
@@ -208,52 +208,6 @@ typedef unsigned int mode_t _ST_INT32;
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 _ST_INT32