aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gsocket.h
diff options
context:
space:
mode:
authorDmitriy Anisimkov <anisimko@adacore.com>2020-08-08 18:49:27 +0600
committerPierre-Marie de Rodat <derodat@adacore.com>2020-10-23 04:25:07 -0400
commitd08d481912b9a2dc3388f8e1183cea0bf3ffae9f (patch)
tree22e513c76801fa433fcc0445892f3b47d4c7a0bf /gcc/ada/gsocket.h
parent66e97274cef35ed40584c7a09096fffa061fddf0 (diff)
downloadgcc-d08d481912b9a2dc3388f8e1183cea0bf3ffae9f.zip
gcc-d08d481912b9a2dc3388f8e1183cea0bf3ffae9f.tar.gz
gcc-d08d481912b9a2dc3388f8e1183cea0bf3ffae9f.tar.bz2
[Ada] Sockets.Poll implementation
gcc/ada/ * Makefile.rtl (GNATRTL_SOCKETS_OBJS): New object g-socpol$(objext) New source files noted: g-socpol.adb, g-socpol.ads, g-socpol__dummy.adb, g-socpol__dummy.ads, g-sopowa.adb, g-sopowa__posix.adb, g-sopowa__mingw.adb, g-spogwa.adb, g-spogwa.ads. * impunit.adb (Non_Imp_File_Names_95): New base filename g-socpol in "GNAT Library Units" section for GNAT.Sockets.Poll unit. * libgnat/g-socket.ads, libgnat/g-socket.adb: (Raise_Socket_Error): Moved from body to private part of specification to use in GNAT.Sockets.Poll. * libgnat/g-socpol.ads, libgnat/g-socpol.adb: Main unit of the implementation. * libgnat/g-socpol__dummy.ads, libgnat/g-socpol__dummy.adb: Empty unit for the systems without sockets support. * libgnat/g-spogwa.ads, libgnat/g-spogwa.adb: Generic unit implementing sockets poll on top of select system call. * libgnat/g-sopowa.adb (Wait): Separate implementation for operation systems with poll system call support. * libgnat/g-sopowa__posix.adb (Wait): Separate implementation for POSIX select system call. * libgnat/g-sopowa__mingw.adb (Wait): Separate implementation for Windows select system call. * gsocket.h (_WIN32_WINNT): Increase to 0x0600 for winsock2.h to allow WSAPoll related definitions. * s-oscons-tmplt.c: Fix comment next to #endif for #if defined (__linux__) || defined (__ANDROID__) line. Include <poll.h> for all except VxWorks and Windows. (SIZEOF_nfds_t): New definition. (SIZEOF_fd_type): New definition. (SIZEOF_pollfd_events): New definition. (POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL): New definitions for VxWorks to be able to emulate poll on top of select in it. Define POLLPRI as zero on Windows as it is not supported there. (Poll_Linkname): New definition, because the poll system call has different name in Windows and POSIX.
Diffstat (limited to 'gcc/ada/gsocket.h')
-rw-r--r--gcc/ada/gsocket.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ada/gsocket.h b/gcc/ada/gsocket.h
index e10f954..ba51fb1 100644
--- a/gcc/ada/gsocket.h
+++ b/gcc/ada/gsocket.h
@@ -80,6 +80,12 @@
#define FD_SETSIZE 1024
#ifdef __MINGW32__
+/* winsock2.h allows WSAPoll related definitions only when
+ * _WIN32_WINNT >= 0x0600 */
+#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600
+#define _WIN32_WINNT 0x0600
+#endif
+
#include <winsock2.h>
#include <ws2tcpip.h>
#include <versionhelpers.h>