another one bytes the dust
Deleted: trunk/reactos/include/sockets.h
_____
Deleted: trunk/reactos/include/sockets.h
--- trunk/reactos/include/sockets.h 2005-04-02 18:24:13 UTC (rev
14451)
+++ trunk/reactos/include/sockets.h 2005-04-02 19:13:54 UTC (rev
14452)
@@ -1,958 +0,0 @@
-/*
- Sockets.h
-
- Windows Sockets specification version 1.1
-
- Copyright (C) 1996 Free Software Foundation, Inc.
- Thanks to Linux header files for supplying many needed definitions
-
- Author: Scott Christley <scottc(a)net-community.com>
- Date: 1996
-
- This file is part of the Windows32 API Library.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- If you are interested in a warranty or support for this source code,
- contact Scott Christley <scottc(a)net-community.com> for more
information.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; see the file COPYING.LIB.
- If not, write to the Free Software Foundation,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-/*-
- * Portions Copyright (c) 1980, 1983, 1988, 1993
- * The Regents of the University of California. All rights
reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
the
- * documentation and/or other materials provided with the
distribution.
- * 3. All advertising materials mentioning features or use of this
software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its
contributors
- * may be used to endorse or promote products derived from this
software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''
AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF
- * SUCH DAMAGE.
- *
- * -
- * Portions Copyright (c) 1993 by Digital Equipment Corporation.
- *
- * Permission to use, copy, modify and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the
above
- * copyright notice and this permission notice appear in all copies,
and that
- * the name of Digital Equipment Corporation not be used in advertising
or
- * publicity pertaining to distribution of the document or software
without
- * specific, written prior permission.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP.
DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL
EQUIPMENT
- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
OF THIS
- * SOFTWARE.
- * -
- * --Copyright--
- */
-
-#ifndef _GNU_H_WINDOWS32_SOCKETS
-#define _GNU_H_WINDOWS32_SOCKETS
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* BSD */
-#ifndef _SYS_TYPES_H
-typedef unsigned char u_char;
-typedef unsigned short u_short;
-typedef unsigned int u_int;
-typedef unsigned long u_long;
-#endif
-
-/*
- Default maximium number of sockets.
- Define this before including Sockets.h to increase; this does not
- mean that the underlying Windows Sockets implementation has to
- support that many!
- */
-#ifndef FD_SETSIZE
-#define FD_SETSIZE 64
-#endif /* !FD_SETSIZE */
-
-/*
- These macros are critical to the usage of Windows Sockets.
- According to the documentation, a SOCKET is no longer represented
- by a "small non-negative integer"; so all programs MUST use these
- macros for setting, initializing, clearing and checking the
- fd_set structures.
- */
-
-typedef u_int SOCKET;
-
-/* fd_set may have been defined by the newlib <sys/types.h>. */
-#ifdef fd_set
-#undef fd_set
-#endif
-typedef struct fd_set {
- u_int fd_count;
- SOCKET fd_array[FD_SETSIZE];
-} fd_set;
-
-/* Internal function, not documented except in winsock.h */
-extern int PASCAL __WSAFDIsSet(SOCKET, fd_set*);
-
-#ifdef FD_CLR
-#undef FD_CLR
-#endif
-#define FD_CLR(fd, set) do { \
- u_int __i; \
- for (__i = 0; __i < ((fd_set*)(set))->fd_count ; __i++) { \
- if (((fd_set*)(set))->fd_array[__i] == fd) { \
- while (__i < ((fd_set*)(set))->fd_count-1) { \
- ((fd_set*)(set))->fd_array[__i] = \
- ((fd_set*)(set))->fd_array[__i+1]; \
- __i++; \
- } \
- ((fd_set*)(set))->fd_count--; \
- break; \
- } \
- } \
-} while(0)
-
-#ifdef FD_SET
-#undef FD_SET
-#endif
-#define FD_SET(fd, set) do { \
- if (((fd_set*)(set))->fd_count < FD_SETSIZE) \
- ((fd_set*)(set))->fd_array[((fd_set*)(set))->fd_count++]=(fd);\
-} while(0)
-
-#ifdef FD_ZERO
-#undef FD_ZERO
-#endif
-#define FD_ZERO(set) (((fd_set*)(set))->fd_count=0)
-
-#ifdef FD_ISSET
-#undef FD_ISSET
-#endif
-#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set*)(set))
-
-/*
- time structures
- */
-struct timeval {
- long tv_sec; /* seconds */
- long tv_usec; /* microseconds */
-};
-struct timezone {
- int tz_minuteswest; /* minutes west of Greenwich */
- int tz_dsttime; /* type of dst correction */
-};
-
-/*
- Operations on timevals.
-
- NB: timercmp does not work for >= or <=.
- */
-#define timerisset(tvp) ((tvp)->tv_sec ||
(tvp)->tv_usec)
-#define timercmp(tvp, uvp, cmp) \
- (((tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp
(uvp)->tv_usec) \
- || (tvp)->tv_sec cmp (uvp)->tv_sec)
-#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec
= 0)
-
-/*
- ioctl command encoding.
- Some of this is different than what Linux has
- */
-#define IOCPARM_MASK 0x7f
-#define IOC_VOID 0x20000000
-#define IOC_OUT 0x40000000
-#define IOC_IN 0x80000000
-#define IOC_INOUT (IOC_IN | IOC_OUT)
-
-/* _IO(magic, subcode) */
-#define _IO(c,d) (IOC_VOID | ((c)<<8) | (d))
-/* _IOXX(magic, subcode, arg_t) */
-#define _IOW(c,d,t) (IOC_IN | (((long)sizeof(t) &
IOCPARM_MASK)<<16) | \
- ((c)<<8) | (d))
-#define _IOR(c,d,t) (IOC_OUT | (((long)sizeof(t) &
IOCPARM_MASK)<<16) | \
- ((c)<<8) | (d))
-
-/*
- This stuff is hard-coded on Linux
- But winsock.h uses the macros defined above
- */
-#define FIONREAD _IOR('f', 127, u_long)
-#define FIONBIO _IOW('f', 126, u_long)
-#define FIOASYNC _IOW('f', 125, u_long)
-
-#define SIOCSHIWAT _IOW('s', 0, u_long)
-#define SIOCGHIWAT _IOR('s', 1, u_long)
-#define SIOCSLOWAT _IOW('s', 2, u_long)
-#define SIOCGLOWAT _IOR('s', 3, u_long)
-#define SIOCATMARK _IOR('s', 7, u_long)
-
-/*
- Structures returned by network data base library, taken from the
- BSD file netdb.h. All addresses are supplied in host order, and
- returned in network order (suitable for use in system calls).
-
- Slight modifications for differences between Linux and winsock.h
- */
-
-struct hostent {
- char *h_name; /* official name of host */
- char **h_aliases; /* alias list */
- short h_addrtype; /* host address type */
- short h_length; /* length of address */
- char **h_addr_list; /* list of addresses */
-#define h_addr h_addr_list[0] /* address, for backward compat */
-};
-
-/*
- * Assumption here is that a network number
- * fits in an unsigned long -- someday that won't be true!
- */
-struct netent {
- char *n_name; /* official name of net */
- char **n_aliases; /* alias list */
- short n_addrtype; /* net address type */
- u_long n_net; /* network # */
-};
-
-struct servent {
- char *s_name; /* official service name */
- char **s_aliases; /* alias list */
- short s_port; /* port # */
- char *s_proto; /* protocol to use */
-};
-
-struct protoent {
- char *p_name; /* official protocol name */
- char **p_aliases; /* alias list */
- short p_proto; /* protocol # */
-};
-
-/*
- Standard well-known IP protocols.
- For some reason there are differences between Linx and winsock.h
- */
-enum {
- IPPROTO_IP = 0,
- IPPROTO_ICMP = 1,
- IPPROTO_GGP = 2, /* huh? */
- IPPROTO_IPIP = 4,
- IPPROTO_TCP = 6, /* Transmission Control Protocol */
- IPPROTO_EGP = 8,
- IPPROTO_PUP = 12,
- IPPROTO_UDP = 17, /* User Datagram Protocol */
- IPPROTO_IDP = 22,
- IPPROTO_ND = 77, /* This one was in winsock.h */
-
- IPPROTO_RAW = 255, /* raw IP packets */
- IPPROTO_MAX
-};
-
-/* Standard well-known ports */
-enum {
- IPPORT_ECHO = 7,
- IPPORT_DISCARD = 9,
- IPPORT_SYSTAT = 11,
- IPPORT_DAYTIME = 13,
- IPPORT_NETSTAT = 15,
- IPPORT_FTP = 21,
- IPPORT_TELNET = 23,
- IPPORT_SMTP = 25,
- IPPORT_TIMESERVER = 37,
- IPPORT_NAMESERVER = 42,
- IPPORT_WHOIS = 43,
- IPPORT_MTP = 57,
-
- IPPORT_TFTP = 69,
- IPPORT_RJE = 77,
- IPPORT_FINGER = 79,
- IPPORT_TTYLINK = 87,
- IPPORT_SUPDUP = 95,
-
- IPPORT_EXECSERVER = 512,
- IPPORT_LOGINSERVER = 513,
- IPPORT_CMDSERVER = 514,
- IPPORT_EFSSERVER = 520,
-
- /* UDP ports. */
- IPPORT_BIFFUDP = 512,
- IPPORT_WHOSERVER = 513,
- IPPORT_ROUTESERVER = 520,
-
- /* Ports less than this value are reservered for privileged
processes. */
- IPPORT_RESERVED = 1024,
-
- /* Ports greater than this value are reserved for
- (non-privileged) processes */
- IPPORT_USERRESERVED = 5000
-};
-
-/* Link numbers. */
-#define IMPLINK_IP 155
-#define IMPLINK_LOWEXPER 156
-#define IMPLINK_HIGHEXPER 158
-
-/* Linux uses a simple unsigned long int, but winsock.h ... */
-struct in_addr {
- union {
- struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
- struct { u_short s_w1,s_w2; } S_un_w;
- u_long S_addr;
- } S_un;
-#define s_addr S_un.S_addr
-#define s_host S_un.S_un_b.s_b2
-#define s_net S_un.S_un_b.s_b1
-#define s_imp S_un.S_un_w.s_w2
-#define s_impno S_un.S_un_b.s_b4
-#define s_lh S_un.S_un_b.s_b3
-};
-
-/*
- Definitions of bits in internet address integers.
- On subnets, host and network parts are found according
- to the subnet mask, not these masks.
- */
-#define IN_CLASSA(i) (((long)(i) & 0x80000000) == 0)
-#define IN_CLASSA_NET 0xff000000
-#define IN_CLASSA_NSHIFT 24
-#define IN_CLASSA_HOST 0x00ffffff
-#define IN_CLASSA_MAX 128
-
-#define IN_CLASSB(i) (((long)(i) & 0xc0000000) ==
0x80000000)
-#define IN_CLASSB_NET 0xffff0000
-#define IN_CLASSB_NSHIFT 16
-#define IN_CLASSB_HOST 0x0000ffff
-#define IN_CLASSB_MAX 65536
-
-#define IN_CLASSC(i) (((long)(i) & 0xe0000000) ==
0xc0000000)
-#define IN_CLASSC_NET 0xffffff00
-#define IN_CLASSC_NSHIFT 8
-#define IN_CLASSC_HOST 0x000000ff
-
-#define INADDR_ANY (u_long)0x00000000
-#define INADDR_LOOPBACK 0x7f000001
-#define INADDR_BROADCAST (u_long)0xffffffff
-#define INADDR_NONE 0xffffffff
-
-/*
- Structure describing an Internet (IP) socket address.
- */
-struct sockaddr_in {
- short sin_family;
- u_short sin_port;
- struct in_addr sin_addr;
- char sin_zero[8];
-};
-
-/*
- EVERYTHING FROM THIS POINT IS MAINLY SPECIFIC TO Win32
-
- Structure which holds the detail for the underlying Window Sockets
- implementation. Set when WSAStartup() is called.
- */
-#define WSADESCRIPTION_LEN 256
-#define WSASYS_STATUS_LEN 128
-
-typedef struct WSAData {
- WORD wVersion;
- WORD wHighVersion;
- char szDescription[WSADESCRIPTION_LEN+1];
- char szSystemStatus[WSASYS_STATUS_LEN+1];
- unsigned short iMaxSockets;
- unsigned short iMaxUdpDg;
- char *lpVendorInfo;
-} WSADATA, *LPWSADATA;
-
-#define IP_OPTIONS 1
-#define IP_MULTICAST_IF 2
-#define IP_MULTICAST_TTL 3
-#define IP_MULTICAST_LOOP 4
-#define IP_ADD_MEMBERSHIP 5
-#define IP_DROP_MEMBERSHIP 6
-
-#define IP_DEFAULT_MULTICAST_TTL 1
-#define IP_DEFAULT_MULTICAST_LOOP 1
-#define IP_MAX_MEMBERSHIPS 20
-
-struct ip_mreq {
- struct in_addr imr_multiaddr;
- struct in_addr imr_interface;
-};
-
-/*
- * Definitions related to sockets: types, address families, options,
- * taken from the BSD file sys/socket.h.
- */
-
-/*
- * This is used instead of -1, since the
- * SOCKET type is unsigned.
- */
-#define INVALID_SOCKET (SOCKET)(~0)
-#define SOCKET_ERROR (-1)
-
-/* Socket types. */
-#define SOCK_STREAM 1
-#define SOCK_DGRAM 2
-#define SOCK_RAW 3
-#define SOCK_RDM 4
-#define SOCK_SEQPACKET 5
-
-/* For setsockoptions(2) */
-#define SO_DEBUG 0x0001
-#define SO_ACCEPTCONN 0x0002
-#define SO_REUSEADDR 0x0004
-#define SO_KEEPALIVE 0x0008
-#define SO_DONTROUTE 0x0010
-#define SO_BROADCAST 0x0020
-#define SO_USELOOPBACK 0x0040
-#define SO_LINGER 0x0080
-#define SO_OOBINLINE 0x0100
-
-#define SO_DONTLINGER (u_int)(~SO_LINGER)
-
-/*
- * Additional options.
- */
-#define SO_SNDBUF 0x1001 /* send buffer size */
-#define SO_RCVBUF 0x1002 /* receive buffer size */
-#define SO_SNDLOWAT 0x1003 /* send low-water mark */
-#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
-#define SO_SNDTIMEO 0x1005 /* send timeout */
-#define SO_RCVTIMEO 0x1006 /* receive timeout */
-#define SO_ERROR 0x1007 /* get error status and clear
*/
-#define SO_TYPE 0x1008 /* get socket type */
-
-/*
- * Options for connect and disconnect data and options. Used only by
- * non-TCP/IP transports such as DECNet, OSI TP4, etc.
- */
-#define SO_CONNDATA 0x7000
-#define SO_CONNOPT 0x7001
-#define SO_DISCDATA 0x7002
-#define SO_DISCOPT 0x7003
-#define SO_CONNDATALEN 0x7004
-#define SO_CONNOPTLEN 0x7005
-#define SO_DISCDATALEN 0x7006
-#define SO_DISCOPTLEN 0x7007
-
-/*
- * Option for opening sockets for synchronous access.
- */
-#define SO_OPENTYPE 0x7008
-
-#define SO_SYNCHRONOUS_ALERT 0x10
-#define SO_SYNCHRONOUS_NONALERT 0x20
-
-/*
- * Other NT-specific options.
- */
-#define SO_MAXDG 0x7009
-#define SO_MAXPATHDG 0x700A
-
-/*
- * TCP options.
- */
-#define TCP_NODELAY 0x0001
-#define TCP_BSDURGENT 0x7000
-
-/*
- * Address families.
- */
-#define AF_UNSPEC 0 /* unspecified */
-#define AF_UNIX 1 /* local to host (pipes,
portals) */
-#define AF_INET 2 /* internetwork: UDP, TCP, etc.
*/
-#define AF_IMPLINK 3 /* arpanet imp addresses */
-#define AF_PUP 4 /* pup protocols: e.g. BSP */
-#define AF_CHAOS 5 /* mit CHAOS protocols */
-#define AF_IPX 6 /* IPX and SPX */
-#define AF_NS 6 /* XEROX NS protocols */
-#define AF_ISO 7 /* ISO protocols */
-#define AF_OSI AF_ISO /* OSI is ISO */
-#define AF_ECMA 8 /* european computer
manufacturers */
-#define AF_DATAKIT 9 /* datakit protocols */
-#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
-#define AF_SNA 11 /* IBM SNA */
-#define AF_DECnet 12 /* DECnet */
-#define AF_DLI 13 /* Direct data link interface
*/
-#define AF_LAT 14 /* LAT */
-#define AF_HYLINK 15 /* NSC Hyperchannel */
-#define AF_APPLETALK 16 /* AppleTalk */
-#define AF_NETBIOS 17 /* NetBios-style addresses */
-
-#define AF_MAX 18
-
-/*
- * Structure used by kernel to store most
- * addresses.
- */
-struct sockaddr {
- u_short sa_family;
- char sa_data[14];
-};
-
-/*
- * Structure used by kernel to pass protocol
- * information in raw sockets.
- */
-struct sockproto {
- u_short sp_family;
- u_short sp_protocol;
-};
-
-/*
- * Protocol families, same as address families for now.
- */
-#define PF_UNSPEC AF_UNSPEC
-#define PF_UNIX AF_UNIX
-#define PF_INET AF_INET
-#define PF_IMPLINK AF_IMPLINK
-#define PF_PUP AF_PUP
-#define PF_CHAOS AF_CHAOS
-#define PF_NS AF_NS
-#define PF_IPX AF_IPX
-#define PF_ISO AF_ISO
-#define PF_OSI AF_OSI
-#define PF_ECMA AF_ECMA
-#define PF_DATAKIT AF_DATAKIT
-#define PF_CCITT AF_CCITT
-#define PF_SNA AF_SNA
-#define PF_DECnet AF_DECnet
-#define PF_DLI AF_DLI
-#define PF_LAT AF_LAT
-#define PF_HYLINK AF_HYLINK
-#define PF_APPLETALK AF_APPLETALK
-
-#define PF_MAX AF_MAX
-
-/*
- * Structure used for manipulating linger option.
- */
-struct linger {
- u_short l_onoff;
- u_short l_linger;
-};
-
-/*
- * Level number for (get/set)sockopt() to apply to socket itself.
- */
-#define SOL_SOCKET 0xffff /* options for socket level */
-
-/*
- * Maximum queue length specifiable by listen.
- */
-#define SOMAXCONN 5
-
-#define MSG_OOB 0x1 /* process out-of-band data */
-#define MSG_PEEK 0x2 /* peek at incoming message */
-#define MSG_DONTROUTE 0x4 /* send without using routing
tables */
-
-#define MSG_MAXIOVLEN 16
-
-#define MSG_PARTIAL 0x8000 /* partial send or recv
for message xport */
-
-/*
- * Define constant based on rfc883, used by gethostbyxxxx() calls.
- */
-#define MAXGETHOSTSTRUCT 1024
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN MAXGETHOSTSTRUCT
-#endif
-
-/*
- * Define flags to be used with the WSAAsyncSelect() call.
- */
-#define FD_READ 0x01
-#define FD_WRITE 0x02
-#define FD_OOB 0x04
-#define FD_ACCEPT 0x08
-#define FD_CONNECT 0x10
-#define FD_CLOSE 0x20
-
-/*
- * All Windows Sockets error constants are biased by WSABASEERR from
- * the "normal"
- */
-#define WSABASEERR 10000
-/*
- * Windows Sockets definitions of regular Microsoft C error constants
- */
-#define WSAEINTR (WSABASEERR+4)
-#define WSAEBADF (WSABASEERR+9)
-#define WSAEACCES (WSABASEERR+13)
-#define WSAEFAULT (WSABASEERR+14)
-#define WSAEINVAL (WSABASEERR+22)
-#define WSAEMFILE (WSABASEERR+24)
-
-/*
- * Windows Sockets definitions of regular Berkeley error constants
- */
-#define WSAEWOULDBLOCK (WSABASEERR+35)
-#define WSAEINPROGRESS (WSABASEERR+36)
-#define WSAEALREADY (WSABASEERR+37)
-#define WSAENOTSOCK (WSABASEERR+38)
-#define WSAEDESTADDRREQ (WSABASEERR+39)
-#define WSAEMSGSIZE (WSABASEERR+40)
-#define WSAEPROTOTYPE (WSABASEERR+41)
-#define WSAENOPROTOOPT (WSABASEERR+42)
-#define WSAEPROTONOSUPPORT (WSABASEERR+43)
-#define WSAESOCKTNOSUPPORT (WSABASEERR+44)
-#define WSAEOPNOTSUPP (WSABASEERR+45)
-#define WSAEPFNOSUPPORT (WSABASEERR+46)
-#define WSAEAFNOSUPPORT (WSABASEERR+47)
-#define WSAEADDRINUSE (WSABASEERR+48)
-#define WSAEADDRNOTAVAIL (WSABASEERR+49)
-#define WSAENETDOWN (WSABASEERR+50)
-#define WSAENETUNREACH (WSABASEERR+51)
-#define WSAENETRESET (WSABASEERR+52)
-#define WSAECONNABORTED (WSABASEERR+53)
-#define WSAECONNRESET (WSABASEERR+54)
-#define WSAENOBUFS (WSABASEERR+55)
-#define WSAEISCONN (WSABASEERR+56)
-#define WSAENOTCONN (WSABASEERR+57)
-#define WSAESHUTDOWN (WSABASEERR+58)
-#define WSAETOOMANYREFS (WSABASEERR+59)
-#define WSAETIMEDOUT (WSABASEERR+60)
-#define WSAECONNREFUSED (WSABASEERR+61)
-#define WSAELOOP (WSABASEERR+62)
-#define WSAENAMETOOLONG (WSABASEERR+63)
-#define WSAEHOSTDOWN (WSABASEERR+64)
-#define WSAEHOSTUNREACH (WSABASEERR+65)
-#define WSAENOTEMPTY (WSABASEERR+66)
-#define WSAEPROCLIM (WSABASEERR+67)
-#define WSAEUSERS (WSABASEERR+68)
-#define WSAEDQUOT (WSABASEERR+69)
-#define WSAESTALE (WSABASEERR+70)
-#define WSAEREMOTE (WSABASEERR+71)
-
-#define WSAEDISCON (WSABASEERR+101)
-
-/*
- * Extended Windows Sockets error constant definitions
- */
-#define WSASYSNOTREADY (WSABASEERR+91)
-#define WSAVERNOTSUPPORTED (WSABASEERR+92)
-#define WSANOTINITIALISED (WSABASEERR+93)
-
-/*
- * Error return codes from gethostbyname() and gethostbyaddr()
- * (when using the resolver). Note that these errors are
- * retrieved via WSAGetLastError() and must therefore follow
- * the rules for avoiding clashes with error numbers from
- * specific implementations or language run-time systems.
- * For this reason the codes are based at WSABASEERR+1001.
- * Note also that [WSA]NO_ADDRESS is defined only for
- * compatibility purposes.
- */
-
-#define h_errno WSAGetLastError()
-
-/* Authoritative Answer: Host not found */
-#define WSAHOST_NOT_FOUND (WSABASEERR+1001)
-#define HOST_NOT_FOUND WSAHOST_NOT_FOUND
-
-/* Non-Authoritative: Host not found, or SERVERFAIL */
-#define WSATRY_AGAIN (WSABASEERR+1002)
-#define TRY_AGAIN WSATRY_AGAIN
-
-/* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
-#define WSANO_RECOVERY (WSABASEERR+1003)
-#define NO_RECOVERY WSANO_RECOVERY
-
-/* Valid name, no data record of requested type */
-#define WSANO_DATA (WSABASEERR+1004)
-#define NO_DATA WSANO_DATA
-
-/* no address, look for MX record */
-#define WSANO_ADDRESS WSANO_DATA
-#define NO_ADDRESS WSANO_ADDRESS
-
-/*
- * Windows Sockets errors redefined as regular Berkeley error
constants.
- * These are commented out in Windows NT to avoid conflicts with
errno.h.
- * Use the WSA constants instead.
- */
-#if 0
-#define EWOULDBLOCK WSAEWOULDBLOCK
-#define EINPROGRESS WSAEINPROGRESS
-#define EALREADY WSAEALREADY
-#define ENOTSOCK WSAENOTSOCK
-#define EDESTADDRREQ WSAEDESTADDRREQ
-#define EMSGSIZE WSAEMSGSIZE
-#define EPROTOTYPE WSAEPROTOTYPE
-#define ENOPROTOOPT WSAENOPROTOOPT
-#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
-#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
-#define EOPNOTSUPP WSAEOPNOTSUPP
-#define EPFNOSUPPORT WSAEPFNOSUPPORT
-#define EAFNOSUPPORT WSAEAFNOSUPPORT
-#define EADDRINUSE WSAEADDRINUSE
-#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
-#define ENETDOWN WSAENETDOWN
-#define ENETUNREACH WSAENETUNREACH
-#define ENETRESET WSAENETRESET
-#define ECONNABORTED WSAECONNABORTED
-#define ECONNRESET WSAECONNRESET
-#define ENOBUFS WSAENOBUFS
-#define EISCONN WSAEISCONN
-#define ENOTCONN WSAENOTCONN
-#define ESHUTDOWN WSAESHUTDOWN
-#define ETOOMANYREFS WSAETOOMANYREFS
-#define ETIMEDOUT WSAETIMEDOUT
-#define ECONNREFUSED WSAECONNREFUSED
-#define ELOOP WSAELOOP
-#define ENAMETOOLONG WSAENAMETOOLONG
-#define EHOSTDOWN WSAEHOSTDOWN
-#define EHOSTUNREACH WSAEHOSTUNREACH
-#define ENOTEMPTY WSAENOTEMPTY
-#define EPROCLIM WSAEPROCLIM
-#define EUSERS WSAEUSERS
-#define EDQUOT WSAEDQUOT
-#define ESTALE WSAESTALE
-#define EREMOTE WSAEREMOTE
-#endif
-
-/* Socket function prototypes */
-
-SOCKET PASCAL accept (SOCKET s, struct sockaddr *addr,
- int *addrlen);
-
-int PASCAL bind (SOCKET s, const struct sockaddr *addr, int namelen);
-
-int PASCAL closesocket (SOCKET s);
-
-int PASCAL connect (SOCKET s, const struct sockaddr *name, int
namelen);
-
-int PASCAL ioctlsocket (SOCKET s, long cmd, u_long *argp);
-
-int PASCAL getpeername (SOCKET s, struct sockaddr *name,
- int * namelen);
-
-int PASCAL getsockname (SOCKET s, struct sockaddr *name,
- int * namelen);
-
-int PASCAL getsockopt (SOCKET s, int level, int optname,
- char * optval, int *optlen);
-
-u_long PASCAL htonl (u_long hostlong);
-
-u_short PASCAL htons (u_short hostshort);
-
-unsigned long PASCAL inet_addr (const char * cp);
-
-char * PASCAL inet_ntoa (struct in_addr in);
-
-int PASCAL listen (SOCKET s, int backlog);
-
-u_long PASCAL ntohl (u_long netlong);
-
-/* For some reason WSOCK.LIB has ntohs defined as a 4 byte paramter?!
*/
-#ifdef _WIN32
-u_short PASCAL ntohs (u_long netshort);
-#else
-u_short PASCAL ntohs (u_short netshort);
-#endif /* _WIN32 */
-
-int PASCAL recv (SOCKET s, char * buf, int len, int flags);
-
-int PASCAL recvfrom (SOCKET s, char * buf, int len, int flags,
- struct sockaddr *from, int * fromlen);
-
-int PASCAL select (int nfds, fd_set *readfds, fd_set *writefds,
- fd_set *exceptfds, const struct timeval
*timeout);
-
-int PASCAL send (SOCKET s, const char * buf, int len, int flags);
-
-int PASCAL sendto (SOCKET s, const char * buf, int len, int flags,
- const struct sockaddr *to, int tolen);
-
-int PASCAL setsockopt (SOCKET s, int level, int optname,
- const char * optval, int optlen);
-
-int PASCAL shutdown (SOCKET s, int how);
-
-SOCKET PASCAL socket (int af, int type, int protocol);
-
-/* Database function prototypes */
-
-struct hostent * PASCAL gethostbyaddr(const char * addr,
- int len, int type);
-
-struct hostent * PASCAL gethostbyname(const char * name);
-
-int PASCAL gethostname (char * name, int namelen);
-
-struct servent * PASCAL getservbyport(int port, const char * proto);
-
-struct servent * PASCAL getservbyname(const char * name,
- const char * proto);
-
-struct protoent * PASCAL getprotobynumber(int proto);
-
-struct protoent * PASCAL getprotobyname(const char * name);
-
-/* Microsoft Windows Extension function prototypes */
-
-int PASCAL WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData);
-
-int PASCAL WSACleanup(void);
-
-void PASCAL WSASetLastError(int iError);
-
-int PASCAL WSAGetLastError(void);
-
-WINBOOL PASCAL WSAIsBlocking(void);
-
-int PASCAL WSAUnhookBlockingHook(void);
-
-FARPROC PASCAL WSASetBlockingHook(FARPROC lpBlockFunc);
-
-int PASCAL WSACancelBlockingCall(void);
-
-HANDLE PASCAL WSAAsyncGetServByName(HWND hWnd, u_int wMsg,
- const char * name,
- const char * proto,
- char * buf, int buflen);
-
-HANDLE PASCAL WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, int port,
- const char * proto, char * buf,
- int buflen);
-
-HANDLE PASCAL WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg,
- const char * name, char * buf,
- int buflen);
-
-HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg,
- int number, char * buf,
- int buflen);
-
-HANDLE PASCAL WSAAsyncGetHostByName(HWND hWnd, u_int wMsg,
- const char * name, char * buf,
- int buflen);
-
-HANDLE PASCAL WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg,
- const char * addr, int len, int
type,
- char * buf, int buflen);
-
-int PASCAL WSACancelAsyncRequest(HANDLE hAsyncTaskHandle);
-
-int PASCAL WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg,
- long lEvent);
-
-int PASCAL WSARecvEx (SOCKET s, char * buf, int len, int *flags);
-
-/* Microsoft Windows Extended data types */
-typedef struct sockaddr SOCKADDR;
-typedef struct sockaddr *PSOCKADDR;
-typedef struct sockaddr *LPSOCKADDR;
-
-typedef struct sockaddr_in SOCKADDR_IN;
-typedef struct sockaddr_in *PSOCKADDR_IN;
-typedef struct sockaddr_in *LPSOCKADDR_IN;
-
-typedef struct linger LINGER;
-typedef struct linger *PLINGER;
-typedef struct linger *LPLINGER;
-
-typedef struct in_addr IN_ADDR;
-typedef struct in_addr *PIN_ADDR;
-typedef struct in_addr *LPIN_ADDR;
-
-typedef struct fd_set FD_SET;
-typedef struct fd_set *PFD_SET;
-typedef struct fd_set *LPFD_SET;
-
-typedef struct hostent HOSTENT;
-typedef struct hostent *PHOSTENT;
-typedef struct hostent *LPHOSTENT;
-
-typedef struct servent SERVENT;
-typedef struct servent *PSERVENT;
-typedef struct servent *LPSERVENT;
-
-typedef struct protoent PROTOENT;
-typedef struct protoent *PPROTOENT;
-typedef struct protoent *LPPROTOENT;
-
-typedef struct timeval TIMEVAL;
-typedef struct timeval *PTIMEVAL;
-typedef struct timeval *LPTIMEVAL;
-
-/*
- * Windows message parameter composition and decomposition
- * macros.
- *
- * WSAMAKEASYNCREPLY is intended for use by the Windows Sockets
implementation
- * when constructing the response to a WSAAsyncGetXByY() routine.
- */
-#define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error)
-/*
- * WSAMAKESELECTREPLY is intended for use by the Windows Sockets
implementation
- * when constructing the response to WSAAsyncSelect().
- */
-#define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error)
-/*
- * WSAGETASYNCBUFLEN is intended for use by the Windows Sockets
application
- * to extract the buffer length from the lParam in the response
- * to a WSAGetXByY().
- */
-#define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam)
-/*
- * WSAGETASYNCERROR is intended for use by the Windows Sockets
application
- * to extract the error code from the lParam in the response
- * to a WSAGetXByY().
- */
-#define WSAGETASYNCERROR(lParam) HIWORD(lParam)
-/*
- * WSAGETSELECTEVENT is intended for use by the Windows Sockets
application
- * to extract the event code from the lParam in the response
- * to a WSAAsyncSelect().
- */
-#define WSAGETSELECTEVENT(lParam) LOWORD(lParam)
-/*
- * WSAGETSELECTERROR is intended for use by the Windows Sockets
application
- * to extract the error code from the lParam in the response
- * to a WSAAsyncSelect().
- */
-#define WSAGETSELECTERROR(lParam) HIWORD(lParam)
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _GNU_H_WINDOWS32_SOCKETS */