blob: ce1f1b8bfb8e531698499427f05d8523da22bc90 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/*
** $Id$
**
** WS2TCPIP.H - WinSock2 Extension for TCP/IP protocols
**
** This file contains TCP/IP specific information for use
** by WinSock2 compatible applications.
**
** To provide the backward compatibility, all the TCP/IP
** specific definitions that were included in the WINSOCK.H
** file are now included in WINSOCK2.H file. WS2TCPIP.H
** file includes only the definitions introduced in the
** "WinSock 2 Protocol-Specific Annex" document.
**
** Rev 0.3 Nov 13, 1995
*/
#ifndef _WS2TCPIP_H_
#define _WS2TCPIP_H_
/* Structure to keep interface specific information */
typedef struct _INTERFACE_INFO
{
u_long iiFlags; /* Interface flags */
struct sockaddr iiAddress; /* Interface address */
struct sockaddr iiBroadcastAddress; /* Broadcast address */
struct sockaddr iiNetmask; /* Network mask */
} INTERFACE_INFO, FAR * LPINTERFACE_INFO;
/* Possible flags for the iiFlags - bitmask */
#define IFF_UP 0x00000001 /* Interface is up */
#define IFF_BROADCAST 0x00000002 /* Broadcast is supported */
#define IFF_LOOPBACK 0x00000004 /* this is loopback interface */
#define IFF_POINTTOPOINT 0x00000008 /*this is point-to-point
interface*/
#define IFF_MULTICAST 0x00000010 /* multicast is supported */
/* Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP */
struct ip_mreq {
struct in_addr imr_multiaddr; /* IP multicast address of group */
struct in_addr imr_interface; /* local IP address of interface */
};
/* TCP/IP specific Ioctl codes */
#define SIO_GET_INTERFACE_LIST _IOR('t', 127, u_long) // <TBD>
/* Option to use with [gs]etsockopt at the IPPROTO_IP level */
#define IP_OPTIONS 1 /* set/get IP options */
#define IP_HDRINCL 2 /* header is included with data */
#define IP_TOS 3 /* IP type of service and preced*/
#define IP_TTL 4 /* IP time to live */
#define IP_MULTICAST_IF 9 /* set/get IP multicast i/f */
#define IP_MULTICAST_TTL 10 /* set/get IP multicast ttl */
#define IP_MULTICAST_LOOP 11 /*set/get IP multicast loopback */
#define IP_ADD_MEMBERSHIP 12 /* add an IP group membership */
#define IP_DROP_MEMBERSHIP 13/* drop an IP group membership */
/* Option to use with [gs]etsockopt at the IPPROTO_UDP level */
#define UDP_NOCHECKSUM 1
/* Option to use with [gs]etsockopt at the IPPROTO_TCP level */
#define TCP_EXPEDITED_1122 0x0002
/* IPv6 definitions */
struct in_addr6 {
u_char s6_addr[16]; /* IPv6 address */
};
struct sockaddr_in6 {
short sin6_family; /* AF_INET6 */
u_short sin6_port; /* Transport level port numb
er */
u_long sin6_flowinfo; /* IPv6 flow information */
struct in_addr6 sin6_addr; /* IPv6 address */
};
#endif /* _WS2TCPIP_H_ */
|