OSDN Git Service

2005-09-01 Thomas Quinot <quinot@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / gsocket.h
1 /****************************************************************************
2  *                                                                          *
3  *                         GNAT COMPILER COMPONENTS                         *
4  *                                                                          *
5  *                              G S O C K E T                               *
6  *                                                                          *
7  *                              C Header File                               *
8  *                                                                          *
9  *         Copyright (C) 2004-2005, Free Software Foundation, Inc.          *
10  *                                                                          *
11  * GNAT is free software;  you can  redistribute it  and/or modify it under *
12  * terms of the  GNU General Public License as published  by the Free Soft- *
13  * ware  Foundation;  either version 2,  or (at your option) any later ver- *
14  * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
15  * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
16  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License *
17  * for  more details.  You should have  received  a copy of the GNU General *
18  * Public License  distributed with GNAT;  see file COPYING.  If not, write *
19  * to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, *
20  * Boston, MA 02110-1301, USA.                                              *
21  *                                                                          *
22  * As a  special  exception,  if you  link  this file  with other  files to *
23  * produce an executable,  this file does not by itself cause the resulting *
24  * executable to be covered by the GNU General Public License. This except- *
25  * ion does not  however invalidate  any other reasons  why the  executable *
26  * file might be covered by the  GNU Public License.                        *
27  *                                                                          *
28  * GNAT was originally developed  by the GNAT team at  New York University. *
29  * Extensive contributions were provided by Ada Core Technologies Inc.      *
30  *                                                                          *
31  ****************************************************************************/
32
33 #ifndef _XOPEN_SOURCE_EXTENDED
34 #define _XOPEN_SOURCE_EXTENDED 1
35 /* For HP-UX */
36 #endif
37
38 #ifndef BSD_COMP
39 #define BSD_COMP 1
40 /* For Solaris */
41 #endif
42
43 #ifndef _ALL_SOURCE
44 #define _ALL_SOURCE 1
45 /* For AIX */
46 #endif
47
48 #ifndef _OSF_SOURCE
49 #define _OSF_SOURCE 1
50 /* For Tru64 */
51 #endif
52
53 #include <limits.h>
54
55 #if defined(__vxworks)
56 #include <vxWorks.h>
57 #include <ioLib.h>
58 #define SHUT_RD         0
59 #define SHUT_WR         1
60 #define SHUT_RDWR       2
61
62 #elif defined (WINNT)
63 #define FD_SETSIZE 1024
64 #include <windows.h>
65
66 #ifdef __MINGW32__
67 #include <winsock2.h>
68 #include <ws2tcpip.h>
69
70 #define EACCES          WSAEACCES
71 #define EADDRINUSE      WSAEADDRINUSE
72 #define EADDRNOTAVAIL   WSAEADDRNOTAVAIL
73 #define EAFNOSUPPORT    WSAEAFNOSUPPORT
74 #define EALREADY        WSAEALREADY
75 #define EBADF           WSAEBADF
76 #define ECONNABORTED    WSAECONNABORTED
77 #define ECONNREFUSED    WSAECONNREFUSED
78 #define ECONNRESET      WSAECONNRESET
79 #define EDESTADDRREQ    WSAEDESTADDRREQ
80 #define EFAULT          WSAEFAULT
81 #define EHOSTDOWN       WSAEHOSTDOWN
82 #define EHOSTUNREACH    WSAEHOSTUNREACH
83 #define EINPROGRESS     WSAEINPROGRESS
84 #define EINTR           WSAEINTR
85 #define EINVAL          WSAEINVAL
86 #define EIO             WSAEDISCON
87 #define EISCONN         WSAEISCONN
88 #define ELOOP           WSAELOOP
89 #define EMFILE          WSAEMFILE
90 #define EMSGSIZE        WSAEMSGSIZE
91 #define ENAMETOOLONG    WSAENAMETOOLONG
92 #define ENETDOWN        WSAENETDOWN
93 #define ENETRESET       WSAENETRESET
94 #define ENETUNREACH     WSAENETUNREACH
95 #define ENOBUFS         WSAENOBUFS
96 #define ENOPROTOOPT     WSAENOPROTOOPT
97 #define ENOTCONN        WSAENOTCONN
98 #define ENOTSOCK        WSAENOTSOCK
99 #define EOPNOTSUPP      WSAEOPNOTSUPP
100 #define EPFNOSUPPORT    WSAEPFNOSUPPORT
101 #define EPROTONOSUPPORT WSAEPROTONOSUPPORT
102 #define ENOTSOCK        WSAENOTSOCK
103 #define EOPNOTSUPP      WSAEOPNOTSUPP
104 #define EPFNOSUPPORT    WSAEPFNOSUPPORT
105 #define EPROTONOSUPPORT WSAEPROTONOSUPPORT
106 #define EPROTOTYPE      WSAEPROTOTYPE
107 #define ESHUTDOWN       WSAESHUTDOWN
108 #define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
109 #define ETIMEDOUT       WSAETIMEDOUT
110 #define ETOOMANYREFS    WSAETOOMANYREFS
111 #define EWOULDBLOCK     WSAEWOULDBLOCK
112 #define SHUT_RD         SD_RECEIVE
113 #define SHUT_WR         SD_SEND
114 #define SHUT_RDWR       SD_BOTH
115
116 #endif
117
118 #elif defined(VMS)
119 #define FD_SETSIZE 4096
120 #ifndef IN_RTS
121 /* These DEC C headers are not available when building with GCC */
122 #include <in.h>
123 #include <tcp.h>
124 #include <ioctl.h>
125 #include <netdb.h>
126 #endif
127
128 #endif
129
130 #ifndef __MINGW32__
131 #include <errno.h>
132 #endif
133
134 #ifndef __vxworks
135 #include <sys/time.h>
136 #endif
137
138 #if !(defined (VMS) || defined (__MINGW32__) || defined(__rtems__))
139 #include <sys/socket.h>
140 #include <netinet/in.h>
141 #include <netinet/tcp.h>
142 #include <sys/ioctl.h>
143 #include <netdb.h>
144 #endif