inaddr.h : Fix formatting.
qos.h : Introduce pragma once along with several missing definitions.
winsock(2).h : Introduce pragma once, apply consistent formatting, add so many missing definitions and remove several unrelated ones.

svn path=/branches/header-work/; revision=46577
This commit is contained in:
Amine Khaldi 2010-03-29 23:58:01 +00:00
parent fd317aa03e
commit f7e10df004
4 changed files with 3514 additions and 1566 deletions

View file

@ -1,9 +1,9 @@
#pragma once
#ifndef s_addr
typedef struct in_addr
{
union
{
typedef struct in_addr {
union {
struct {UCHAR s_b1,s_b2,s_b3,s_b4;} S_un_b;
struct {USHORT s_w1,s_w2;} S_un_w;
ULONG S_addr;
@ -17,5 +17,5 @@ typedef struct in_addr
#define s_impno S_un.S_un_b.s_b4
#define s_lh S_un.S_un_b.s_b3
#endif
#endif /* s_addr */

View file

@ -1,26 +1,4 @@
/*
* qos.h
*
* Structures and definitions for QoS data types.
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Alex Ionescu <alex@relsoft.net>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __QOS_H
#define __QOS_H
#pragma once
#ifdef __cplusplus
extern "C" {
@ -28,8 +6,43 @@ extern "C" {
typedef ULONG SERVICETYPE;
typedef struct _flowspec
{
#define SERVICETYPE_NOTRAFFIC 0x00000000
#define SERVICETYPE_BESTEFFORT 0x00000001
#define SERVICETYPE_CONTROLLEDLOAD 0x00000002
#define SERVICETYPE_GUARANTEED 0x00000003
#define SERVICETYPE_NETWORK_UNAVAILABLE 0x00000004
#define SERVICETYPE_GENERAL_INFORMATION 0x00000005
#define SERVICETYPE_NOCHANGE 0x00000006
#define SERVICETYPE_NONCONFORMING 0x00000009
#define SERVICETYPE_NETWORK_CONTROL 0x0000000A
#define SERVICETYPE_QUALITATIVE 0x0000000D
#define SERVICE_BESTEFFORT 0x80010000
#define SERVICE_CONTROLLEDLOAD 0x80020000
#define SERVICE_GUARANTEED 0x80040000
#define SERVICE_QUALITATIVE 0x80200000
#define SERVICE_NO_TRAFFIC_CONTROL 0x81000000
#define SERVICE_NO_QOS_SIGNALING 0x40000000
#define QOS_NOT_SPECIFIED 0xFFFFFFFF
#define POSITIVE_INFINITY_RATE 0xFFFFFFFE
#define QOS_GENERAL_ID_BASE 2000
#define QOS_OBJECT_END_OF_LIST (0x00000001 + QOS_GENERAL_ID_BASE)
#define QOS_OBJECT_SD_MODE (0x00000002 + QOS_GENERAL_ID_BASE)
#define QOS_OBJECT_SHAPING_RATE (0x00000003 + QOS_GENERAL_ID_BASE)
#define QOS_OBJECT_DESTADDR (0x00000004 + QOS_GENERAL_ID_BASE)
#define TC_NONCONF_BORROW 0
#define TC_NONCONF_SHAPE 1
#define TC_NONCONF_DISCARD 2
#define TC_NONCONF_BORROW_PLUS 3
typedef struct _flowspec {
ULONG TokenRate;
ULONG TokenBucketSize;
ULONG PeakBandwidth;
@ -40,8 +53,21 @@ typedef struct _flowspec
ULONG MinimumPolicedSize;
} FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;
typedef struct _QOS_OBJECT_HDR {
ULONG ObjectType;
ULONG ObjectLength;
} QOS_OBJECT_HDR, *LPQOS_OBJECT_HDR;
typedef struct _QOS_SD_MODE {
QOS_OBJECT_HDR ObjectHdr;
ULONG ShapeDiscardMode;
} QOS_SD_MODE, *LPQOS_SD_MODE;
typedef struct _QOS_SHAPING_RATE {
QOS_OBJECT_HDR ObjectHdr;
ULONG ShapingRate;
} QOS_SHAPING_RATE, *LPQOS_SHAPING_RATE;
#ifdef __cplusplus
}
#endif
#endif

View file

@ -1,5 +1,4 @@
/*
Definitions for winsock 1.1
Portions Copyright (c) 1980, 1983, 1988, 1993
@ -8,8 +7,13 @@
Portions Copyright (c) 1993 by Digital Equipment Corporation.
*/
#ifndef _WINSOCK_H
#define _WINSOCK_H
#pragma once
#define _WINSOCKAPI_
#ifndef _INC_WINDOWS
#include <windows.h>
#endif
#ifndef _M_AMD64
#if !defined(__ROS_LONG64__)
@ -20,25 +24,30 @@
#endif
#define _GNU_H_WINDOWS32_SOCKETS
#include <windows.h>
#ifdef __cplusplus
extern "C" {
#endif
#if !defined ( _BSDTYPES_DEFINED )
/* also defined in gmon.h and in cygwin's sys/types */
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
#ifndef __ROS_LONG64__
typedef unsigned long u_long;
#else
typedef unsigned int u_long;
#endif
#define _BSDTYPES_DEFINED
#endif /* !defined _BSDTYPES_DEFINED */
#endif /* !defined ( _BSDTYPES_DEFINED ) */
typedef UINT_PTR SOCKET;
#ifndef FD_SETSIZE
#define FD_SETSIZE 64
#endif
@ -49,6 +58,7 @@ typedef UINT_PTR SOCKET;
#define SD_BOTH 0x02
#ifndef _SYS_TYPES_FD_SET
/* fd_set may have be defined by the newlib <sys/types.h>
* if __USE_W32_SOCKETS not defined.
*/
@ -59,78 +69,182 @@ typedef struct fd_set {
u_int fd_count;
SOCKET fd_array[FD_SETSIZE];
} fd_set;
int PASCAL __WSAFDIsSet(SOCKET,fd_set*);
extern int PASCAL __WSAFDIsSet(SOCKET,fd_set FAR*);
#ifndef FD_CLR
#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];\
for (__i = 0; __i < ((fd_set FAR*)(set))->fd_count ; __i++) {\
if (((fd_set FAR*)(set))->fd_array[__i] == (fd)) {\
while (__i < ((fd_set FAR*)(set))->fd_count-1) {\
((fd_set FAR*)(set))->fd_array[__i] = ((fd_set FAR*)(set))->fd_array[__i+1];\
__i++;\
}\
((fd_set*)(set))->fd_count--;\
((fd_set FAR*)(set))->fd_count--;\
break;\
}\
}\
} while (0)
#endif
#endif /* FD_CLR */
#ifndef FD_SET
#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);\
if (((fd_set FAR*)(set))->fd_count < FD_SETSIZE) \
((fd_set FAR*)(set))->fd_array[((fd_set FAR*)(set))->fd_count++]=(fd);\
}while (0)
#endif
#ifndef FD_ZERO
#define FD_ZERO(set) (((fd_set *)(set))->fd_count=0)
#define FD_ZERO(set) (((fd_set FAR*)(set))->fd_count=0)
#endif
#ifndef FD_ISSET
#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set))
#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set FAR*)(set))
#endif
#elif !defined(USE_SYS_TYPES_FD_SET)
#warning "fd_set and associated macros have been defined in sys/types. \
This can cause runtime problems with W32 sockets"
#endif /* ndef _SYS_TYPES_FD_SET */
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
#ifndef _TIMEVAL_DEFINED /* also in sys/time.h */
#define _TIMEVAL_DEFINED
struct timeval {
LONG tv_sec;
LONG tv_usec;
};
#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
#define timercmp(tvp, uvp, cmp) \
(((tvp)->tv_sec != (uvp)->tv_sec) ? \
((tvp)->tv_sec cmp (uvp)->tv_sec) : \
((tvp)->tv_usec cmp (uvp)->tv_usec))
#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
#endif /* _TIMEVAL_DEFINED */
#define h_addr h_addr_list[0]
struct hostent {
char *h_name;
char **h_aliases;
short h_addrtype;
short h_length;
char **h_addr_list;
#define h_addr h_addr_list[0]
};
struct linger {
u_short l_onoff;
u_short l_linger;
};
#define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
#define _IOR(x,y,t) (IOC_OUT|(((LONG)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
#define _IOW(x,y,t) (IOC_IN|(((LONG)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
#define FIONBIO _IOW('f', 126, u_long)
struct netent {
char * n_name;
char **n_aliases;
short n_addrtype;
u_long n_net;
};
struct servent {
char *s_name;
char **s_aliases;
#ifdef _WIN64
char *s_proto;
short s_port;
#else
short s_port;
char *s_proto;
};
struct protoent {
char *p_name;
char **p_aliases;
short p_proto;
};
#define IP_OPTIONS 1
#define SO_DEBUG 1
#define SO_ACCEPTCONN 2
#define SO_REUSEADDR 4
#define SO_KEEPALIVE 8
#define SO_DONTROUTE 16
#define SO_BROADCAST 32
#define SO_USELOOPBACK 64
#define SO_LINGER 128
#define SO_OOBINLINE 256
#define SO_DONTLINGER (u_int)(~SO_LINGER)
#define SO_SNDBUF 0x1001
#define SO_RCVBUF 0x1002
#define SO_SNDLOWAT 0x1003
#define SO_RCVLOWAT 0x1004
#define SO_SNDTIMEO 0x1005
#define SO_RCVTIMEO 0x1006
#define SO_ERROR 0x1007
#define SO_TYPE 0x1008
#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
#define SO_OPENTYPE 0x7008
#define SO_MAXDG 0x7009
#define SO_MAXPATHDG 0x700A
#define SO_UPDATE_ACCEPT_CONTEXT 0x700B
#define SO_CONNECT_TIME 0x700C
#define SO_SYNCHRONOUS_ALERT 0x10
#define SO_SYNCHRONOUS_NONALERT 0x20
#define AF_MAX 24
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
#define MSG_OOB 1
#define MSG_PEEK 2
#define MSG_DONTROUTE 4
#define h_errno WSAGetLastError()
#define HOST_NOT_FOUND WSAHOST_NOT_FOUND
#define TRY_AGAIN WSATRY_AGAIN
#define NO_RECOVERY WSANO_RECOVERY
#define NO_DATA WSANO_DATA
#define NO_ADDRES WSANO_ADDRESS
u_long PASCAL htonl(u_long);
u_long PASCAL ntohl(u_long);
u_short PASCAL htons(u_short);
u_short PASCAL ntohs(u_short);
int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*);
int PASCAL gethostname(char*,int);
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
#define IOCPARM_MASK 0x7f
#define IOC_VOID 0x20000000
#define IOC_OUT 0x40000000
#define IOC_IN 0x80000000
#define IOC_INOUT (IOC_IN|IOC_OUT)
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
#define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
#define _IOR(x,y,t) (IOC_OUT|(((LONG)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
#define _IOW(x,y,t) (IOC_IN|(((LONG)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
#define FIONBIO _IOW('f', 126, u_long)
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
#define FIONREAD _IOR('f', 127, u_long)
#define FIOASYNC _IOW('f', 125, u_long)
#define SIOCSHIWAT _IOW('s', 0, u_long)
@ -139,26 +253,6 @@ struct linger {
#define SIOCGLOWAT _IOR('s', 3, u_long)
#define SIOCATMARK _IOR('s', 7, u_long)
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
struct netent {
char * n_name;
char **n_aliases;
short n_addrtype;
u_long n_net;
};
struct servent {
char *s_name;
char **s_aliases;
short s_port;
char *s_proto;
};
struct protoent {
char *p_name;
char **p_aliases;
short p_proto;
};
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
#define IPPROTO_IP 0
#define IPPROTO_ICMP 1
#define IPPROTO_IGMP 2
@ -198,19 +292,9 @@ struct protoent {
#define IMPLINK_IP 155
#define IMPLINK_LOWEXPER 156
#define IMPLINK_HIGHEXPER 158
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
};
#include <inaddr.h>
#define IN_CLASSA(i) ((LONG)(i)&0x80000000)
#define IN_CLASSA_NET 0xff000000
#define IN_CLASSA_NSHIFT 24
@ -229,46 +313,34 @@ struct in_addr {
#define INADDR_LOOPBACK 0x7f000001
#define INADDR_BROADCAST (u_long)0xffffffff
#define INADDR_NONE 0xffffffff
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
#define WSADESCRIPTION_LEN 256
#define WSASYS_STATUS_LEN 128
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
#ifdef _WIN64
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char *lpVendorInfo;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
#else
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char * lpVendorInfo;
} WSADATA;
typedef WSADATA *LPWSADATA;
char *lpVendorInfo;
} WSADATA, FAR *LPWSADATA;
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
#define IP_OPTIONS 1
#define SO_DEBUG 1
#define SO_ACCEPTCONN 2
#define SO_REUSEADDR 4
#define SO_KEEPALIVE 8
#define SO_DONTROUTE 16
#define SO_BROADCAST 32
#define SO_USELOOPBACK 64
#define SO_LINGER 128
#define SO_OOBINLINE 256
#define SO_DONTLINGER (u_int)(~SO_LINGER)
#define SO_SNDBUF 0x1001
#define SO_RCVBUF 0x1002
#define SO_SNDLOWAT 0x1003
#define SO_RCVLOWAT 0x1004
#define SO_SNDTIMEO 0x1005
#define SO_RCVTIMEO 0x1006
#define SO_ERROR 0x1007
#define SO_TYPE 0x1008
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
/*
* Note that the next 5 IP defines are specific to WinSock 1.1 (wsock32.dll).
* They will cause errors or unexpected results if used with the
@ -279,22 +351,31 @@ typedef WSADATA *LPWSADATA;
#define IP_MULTICAST_LOOP 4
#define IP_ADD_MEMBERSHIP 5
#define IP_DROP_MEMBERSHIP 6
#define IP_TTL 7
#define IP_TOS 8
#define IP_DONTFRAGMENT 9
#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;
};
#define INVALID_SOCKET (SOCKET)(~0)
#define SOCKET_ERROR (-1)
#define SOCK_STREAM 1
#define SOCK_DGRAM 2
#define SOCK_RAW 3
#define SOCK_RDM 4
#define SOCK_SEQPACKET 5
#define TCP_NODELAY 0x0001
#define TCP_BSDURGENT 0x7000
#define AF_UNSPEC 0
#define AF_UNIX 1
#define AF_INET 2
@ -321,18 +402,12 @@ struct ip_mreq {
#define AF_BAN 21
#define AF_ATM 22
#define AF_INET6 23
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
#define AF_MAX 24
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
struct sockproto {
u_short sp_family;
u_short sp_protocol;
};
#define PF_UNSPEC AF_UNSPEC
#define PF_UNIX AF_UNIX
#define PF_INET AF_INET
@ -359,23 +434,23 @@ struct sockproto {
#define PF_ATM AF_ATM
#define PF_INET6 AF_INET6
#define PF_MAX AF_MAX
#define SOL_SOCKET 0xffff
#define SOMAXCONN 5
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
#define MSG_OOB 1
#define MSG_PEEK 2
#define MSG_DONTROUTE 4
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
#define MSG_MAXIOVLEN 16
#define MSG_PARTIAL 0x8000
#define MAXGETHOSTSTRUCT 1024
#define FD_READ 1
#define FD_WRITE 2
#define FD_OOB 4
#define FD_ACCEPT 8
#define FD_CONNECT 16
#define FD_CLOSE 32
#ifndef WSABASEERR
#define WSABASEERR 10000
#define WSAEINTR (WSABASEERR+4)
#define WSAEBADF (WSABASEERR+9)
@ -420,73 +495,380 @@ struct sockproto {
#define WSAEDQUOT (WSABASEERR+69)
#define WSAESTALE (WSABASEERR+70)
#define WSAEREMOTE (WSABASEERR+71)
#define WSAEDISCON (WSABASEERR+101)
#define WSASYSNOTREADY (WSABASEERR+91)
#define WSAVERNOTSUPPORTED (WSABASEERR+92)
#define WSANOTINITIALISED (WSABASEERR+93)
#define WSAEDISCON (WSABASEERR+101)
#define WSAHOST_NOT_FOUND (WSABASEERR+1001)
#define WSATRY_AGAIN (WSABASEERR+1002)
#define WSANO_RECOVERY (WSABASEERR+1003)
#define WSANO_DATA (WSABASEERR+1004)
#define WSA_SECURE_HOST_NOT_FOUND (WSABASEERR+1032)
#define WSA_IPSEC_NAME_POLICY_ERROR (WSABASEERR+1033)
#endif /* !WSABASEERR */
#define WSANO_ADDRESS WSANO_DATA
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
#define h_errno WSAGetLastError()
#define HOST_NOT_FOUND WSAHOST_NOT_FOUND
#define TRY_AGAIN WSATRY_AGAIN
#define NO_RECOVERY WSANO_RECOVERY
#define NO_DATA WSANO_DATA
#define NO_ADDRESS WSANO_ADDRESS
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*);
int PASCAL bind(SOCKET,const struct sockaddr*,int);
int PASCAL closesocket(SOCKET);
int PASCAL connect(SOCKET,const struct sockaddr*,int);
int PASCAL ioctlsocket(SOCKET,LONG,u_long *);
int PASCAL getpeername(SOCKET,struct sockaddr*,int*);
int PASCAL getsockname(SOCKET,struct sockaddr*,int*);
int PASCAL getsockopt(SOCKET,int,int,char*,int*);
u_long PASCAL inet_addr(const char*);
DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);
int PASCAL listen(SOCKET,int);
int PASCAL recv(SOCKET,char*,int,int);
int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);
int PASCAL send(SOCKET,const char*,int,int);
int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);
int PASCAL setsockopt(SOCKET,int,int,const char*,int);
int PASCAL shutdown(SOCKET,int);
SOCKET PASCAL socket(int,int,int);
DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int);
DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*);
DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*);
DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*);
DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int);
DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*);
int PASCAL WSAStartup(WORD,LPWSADATA);
int PASCAL WSACleanup(void);
void PASCAL WSASetLastError(int);
int PASCAL WSAGetLastError(void);
BOOL PASCAL WSAIsBlocking(void);
int PASCAL WSAUnhookBlockingHook(void);
FARPROC PASCAL WSASetBlockingHook(FARPROC);
int PASCAL WSACancelBlockingCall(void);
HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int);
HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int);
HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int);
HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int);
HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int);
HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int);
int PASCAL WSACancelAsyncRequest(HANDLE);
int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,LONG);
#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
u_long PASCAL htonl(u_long);
u_long PASCAL ntohl(u_long);
u_short PASCAL htons(u_short);
u_short PASCAL ntohs(u_short);
int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*);
int PASCAL gethostname(char*,int);
#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
SOCKET
PASCAL FAR
accept(
IN SOCKET s,
OUT struct sockaddr FAR *addr OPTIONAL,
IN OUT int FAR *addrlen OPTIONAL);
int
PASCAL FAR
bind(
IN SOCKET s,
IN const struct sockaddr FAR *addr,
IN int namelen);
int
PASCAL FAR
closesocket(
IN SOCKET s);
int
PASCAL FAR
connect(
IN SOCKET s,
IN const struct sockaddr FAR *name,
IN int namelen);
int
PASCAL FAR
ioctlsocket(
IN SOCKET s,
IN long cmd,
IN OUT u_long FAR *argp);
int
PASCAL FAR
getpeername(
IN SOCKET s,
OUT struct sockaddr FAR *name,
IN OUT int FAR *namelen);
int
PASCAL FAR
getsockname(
IN SOCKET s,
OUT struct sockaddr FAR *name,
IN OUT int FAR *namelen);
int
PASCAL FAR
getsockopt(
IN SOCKET s,
IN int level,
IN int optname,
OUT char FAR *optval,
IN OUT int FAR *optlen);
u_long
PASCAL FAR
htonl(
IN u_long hostlong);
u_short
PASCAL FAR
htons(
IN u_short hostshort);
unsigned long
PASCAL FAR
inet_addr(
IN const char FAR *cp);
char FAR
*PASCAL FAR
inet_ntoa(
IN struct in_addr in);
int
PASCAL FAR
listen(
IN SOCKET s,
IN int backlog);
u_long
PASCAL FAR
ntohl(
IN u_long netlong);
u_short
PASCAL FAR
ntohs(
IN u_short netshort);
int
PASCAL FAR
recv(
IN SOCKET s,
OUT char FAR *buf,
IN int len,
IN int flags);
int
PASCAL FAR
recvfrom(
IN SOCKET s,
OUT char FAR *buf,
IN int len,
IN int flags,
OUT struct sockaddr FAR *from OPTIONAL,
IN OUY int FAR * fromlen OPTIONAL);
int
PASCAL FAR
select(
IN int nfds,
IN OUT fd_set FAR *readfds OPTIONAL,
IN OUT fd_set FAR *writefds OPTIONAL,
IN OUT fd_set FAR *exceptfds OPTIONAL,
IN const struct timeval FAR *timeout OPTIONAL);
int
PASCAL FAR
send(
IN SOCKET s,
IN const char FAR *buf,
IN int len,
IN int flags);
int
PASCAL FAR
sendto(
IN SOCKET s,
IN const char FAR *buf,
IN int len,
IN int flags,
IN const struct sockaddr FAR *to OPTIONAL,
IN int tolen);
int
PASCAL FAR
setsockopt(
IN SOCKET s,
IN int level,
IN int optname,
IN const char FAR *optval OPTIONAL,
IN int optlen);
int
PASCAL FAR
shutdown(
IN SOCKET s,
IN int how);
SOCKET
PASCAL FAR
socket(
IN int af,
IN int type,
IN int protocol);
struct hostent FAR
*PASCAL FAR
gethostbyaddr(
IN const char FAR *addr,
IN int len,
IN int type);
struct hostent FAR
*PASCAL FAR
gethostbyname(
IN const char FAR *name);
int
PASCAL FAR
gethostname(
OUT char FAR *name,
IN int namelen);
struct servent FAR
*PASCAL FAR
getservbyport(
IN int port,
IN const char FAR *proto);
struct servent FAR
*PASCAL FAR
getservbyname(
IN const char FAR *name,
IN const char FAR *proto);
struct protoent FAR
*PASCAL FAR
getprotobynumber(
IN int number);
struct protoent FAR
*PASCAL FAR
getprotobyname(
IN const char FAR *name);
int
PASCAL FAR
WSAStartup(
IN WORD wVersionRequired,
OUT LPWSADATA lpWSAData);
int
PASCAL FAR
WSACleanup(void);
void
PASCAL FAR
WSASetLastError(
IN int iError);
int
PASCAL FAR
WSAGetLastError(void);
BOOL
PASCAL FAR
WSAIsBlocking(void);
int
PASCAL FAR
WSAUnhookBlockingHook(void);
FARPROC
PASCAL FAR
WSASetBlockingHook(
IN FARPROC lpBlockFunc);
int
PASCAL FAR
WSACancelBlockingCall(void);
HANDLE
PASCAL FAR
WSAAsyncGetServByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR *name,
IN const char FAR *proto,
OUT char FAR *buf,
IN int buflen);
HANDLE
PASCAL FAR
WSAAsyncGetServByPort(
IN HWND hWnd,
IN u_int wMsg,
IN int port,
IN const char FAR *proto,
OUT char FAR *buf,
IN int buflen);
HANDLE
PASCAL FAR
WSAAsyncGetProtoByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR *name,
OUT char FAR *buf,
IN int buflen);
HANDLE
PASCAL FAR
WSAAsyncGetProtoByNumber(
IN HWND hWnd,
IN u_int wMsg,
IN int number,
OUT char FAR *buf,
IN int buflen);
HANDLE
PASCAL FAR
WSAAsyncGetHostByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR *name,
OUT char FAR *buf,
IN int buflen);
HANDLE
PASCAL FAR
WSAAsyncGetHostByAddr(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR *addr,
IN int len,
IN int type,
OUT char FAR *buf,
IN int buflen);
int
PASCAL FAR
WSACancelAsyncRequest(
IN HANDLE hAsyncTaskHandle);
int
PASCAL FAR
WSAAsyncSelect(
IN SOCKET s,
IN HWND hWnd,
IN u_int wMsg,
IN long lEvent);
int
PASCAL FAR
WSARecvEx(
IN SOCKET s,
OUT char FAR *buf,
IN int len,
IN OUT int FAR *flags);
typedef struct _TRANSMIT_FILE_BUFFERS {
PVOID Head;
DWORD HeadLength;
PVOID Tail;
DWORD TailLength;
} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS;
#define TF_DISCONNECT 0x01
#define TF_REUSE_SOCKET 0x02
#define TF_WRITE_BEHIND 0x04
BOOL
PASCAL FAR
TransmitFile(
IN SOCKET hSocket,
IN HANDLE hFile,
IN DWORD nNumberOfBytesToWrite,
IN DWORD nNumberOfBytesPerSend,
IN OUT LPOVERLAPPED lpOverlapped OPTIONAL,
IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers OPTIONAL,
IN DWORD dwReserved);
BOOL
PASCAL FAR
AcceptEx(
IN SOCKET sListenSocket,
IN SOCKET sAcceptSocket,
OUT PVOID lpOutputBuffer,
IN DWORD dwReceiveDataLength,
IN DWORD dwLocalAddressLength,
IN DWORD dwRemoteAddressLength,
OUT LPDWORD lpdwBytesReceived,
IN OUT LPOVERLAPPED lpOverlapped);
VOID
PASCAL FAR
GetAcceptExSockaddrs(
IN PVOID lpOutputBuffer,
IN DWORD dwReceiveDataLength,
IN DWORD dwLocalAddressLength,
IN DWORD dwRemoteAddressLength,
OUT struct sockaddr **LocalSockaddr,
OUT LPINT LocalSockaddrLength,
OUT struct sockaddr **RemoteSockaddr,
OUT LPINT RemoteSockaddrLength);
#define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e)
#define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error)
@ -523,22 +905,14 @@ typedef struct timeval TIMEVAL;
typedef struct timeval *PTIMEVAL;
typedef struct timeval *LPTIMEVAL;
#if(_WIN32_WINNT >= 0x0501)
#ifdef IPV6STRICT
#error WINSOCK2 required.
#endif
#endif /* (_WIN32_WINNT >= 0x0501) */
#ifdef __cplusplus
}
#endif
/*
* Recent MSDN docs indicate that the MS-specific extensions exported from
* mswsock.dll (AcceptEx, TransmitFile. WSARecEx and GetAcceptExSockaddrs) are
* declared in mswsock.h. These extensions are not supported on W9x or WinCE.
* However, code using WinSock 1.1 API may expect the declarations and
* associated defines to be in this header. Thus we include mswsock.h here.
*
* When linking against the WinSock 1.1 lib, wsock32.dll, the mswsock functions
* are automatically routed to mswsock.dll (on platforms with support).
* The WinSock 2 lib, ws2_32.dll, does not contain any references to
* the mswsock extensions.
*/
#include <mswsock.h>
#endif

File diff suppressed because it is too large Load diff