This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin 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]

[newlib-cygwin] Move fd_stuff from sys/types.h to sys/select.h


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=08184b362e8eeb2af0d03d169b852769d1d66f53

commit 08184b362e8eeb2af0d03d169b852769d1d66f53
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Wed Nov 18 22:13:31 2015 +0100

    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>

Diff:
---
 newlib/ChangeLog                   |  7 +++
 newlib/libc/include/sys/param.h    |  7 +++
 newlib/libc/include/sys/select.h   | 87 ++++++++++++++++++++++++++++++++++++++
 newlib/libc/include/sys/types.h    | 46 --------------------
 winsup/cygwin/ChangeLog            | 11 +++++
 winsup/cygwin/include/sys/select.h | 41 ------------------
 winsup/cygwin/libc/rexec.cc        |  1 +
 winsup/cygwin/poll.cc              |  4 +-
 winsup/cygwin/select.h             |  4 ++
 winsup/cygwin/uname.cc             |  2 +
 winsup/cygwin/winsup.h             |  8 ----
 11 files changed, 122 insertions(+), 96 deletions(-)

diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 35b8b21..e8d7ee7 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -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>
 
 	* libc/stdlib/strtodg.c: Add ifdef to check _HAVE_LONG_DOUBLE and
diff --git a/newlib/libc/include/sys/param.h b/newlib/libc/include/sys/param.h
index ef203d3..9a6f115 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 0000000..ffe8900
--- /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 d8d6fdc..5dd6c75 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
 
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 7213075..f378f16 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,16 @@
 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>
+
 	* dcrt0.cc: Semi-revert commit 12743c2d5d2721f3a80b4d7671a349be03c1f520.
 	(dll_crt0_0): Drop setting wow64_needs_stack_adjustment on 64 bit.
 	(_dll_crt0): Split out 64 bit code again and always create new main
diff --git a/winsup/cygwin/include/sys/select.h b/winsup/cygwin/include/sys/select.h
deleted file mode 100644
index 9cc6c1e..0000000
--- a/winsup/cygwin/include/sys/select.h
+++ /dev/null
@@ -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 */
diff --git a/winsup/cygwin/libc/rexec.cc b/winsup/cygwin/libc/rexec.cc
index f9be223..a796e97 100644
--- a/winsup/cygwin/libc/rexec.cc
+++ b/winsup/cygwin/libc/rexec.cc
@@ -63,6 +63,7 @@ static char sccsid[] = "@(#)rexec.c	8.1 (Berkeley) 6/4/93";
 extern "C" {
   int cygwin_accept (int, 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 *);
   void cygwin_herror (const char *);
   int cygwin_listen (int, int);
diff --git a/winsup/cygwin/poll.cc b/winsup/cygwin/poll.cc
index 2b6f8a9..52745b1 100644
--- a/winsup/cygwin/poll.cc
+++ b/winsup/cygwin/poll.cc
@@ -1,7 +1,7 @@
 /* poll.cc. Implements poll(2) via usage of select(2) call.
 
    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.
 
@@ -12,6 +12,7 @@
 #define FD_SETSIZE 16384		// lots of fds
 #include "winsup.h"
 #include <sys/poll.h>
+#include <sys/param.h>
 #include <stdlib.h>
 #define USE_SYS_TYPES_FD_SET
 #include "cygerrno.h"
@@ -21,6 +22,7 @@
 #include "cygheap.h"
 #include "pinfo.h"
 #include "sigproc.h"
+#include "select.h"
 
 extern "C" int
 poll (struct pollfd *fds, nfds_t nfds, int timeout)
diff --git a/winsup/cygwin/select.h b/winsup/cygwin/select.h
index 5ce0924..0035820 100644
--- a/winsup/cygwin/select.h
+++ b/winsup/cygwin/select.h
@@ -107,4 +107,8 @@ public:
 		   device_specific_serial (NULL),
 		   device_specific_mailslot (NULL) {}
 };
+
+extern "C" int cygwin_select (int , fd_set *, fd_set *, fd_set *,
+			      struct timeval *to);
+
 #endif /* _SELECT_H_ */
diff --git a/winsup/cygwin/uname.cc b/winsup/cygwin/uname.cc
index 1aa7f73..cd19cd4 100644
--- a/winsup/cygwin/uname.cc
+++ b/winsup/cygwin/uname.cc
@@ -16,6 +16,8 @@ details. */
 #include "cygwin_version.h"
 #include "cygtls.h"
 
+extern "C" int cygwin_gethostname (char *__name, size_t __len);
+
 /* uname: POSIX 4.4.1.1 */
 extern "C" int
 uname (struct utsname *name)
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h
index b2c8602..d7f7350 100644
--- a/winsup/cygwin/winsup.h
+++ b/winsup/cygwin/winsup.h
@@ -260,14 +260,6 @@ extern inline bool flush_file_buffers (HANDLE h)
 /* Make sure that regular ExitThread is never called */
 #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 ******************************/
 
 #define WM_ASYNCIO	0x8000		// WM_APP


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