Upgrade to Tcl/Tk 8.5b2
[msysgit.git] / mingw / include / iptypes.h
blobdf281e6ccc8b3c7131429476cc7d0065dee0334e
1 #ifndef _IPTYPES_H
2 #define _IPTYPES_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
7 #include <sys/types.h>
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
12 #define DEFAULT_MINIMUM_ENTITIES 32
13 #define MAX_ADAPTER_ADDRESS_LENGTH 8
14 #define MAX_ADAPTER_DESCRIPTION_LENGTH 128
15 #define MAX_ADAPTER_NAME_LENGTH 256
16 #define MAX_DOMAIN_NAME_LEN 128
17 #define MAX_HOSTNAME_LEN 128
18 #define MAX_SCOPE_ID_LEN 256
19 #define BROADCAST_NODETYPE 1
20 #define PEER_TO_PEER_NODETYPE 2
21 #define MIXED_NODETYPE 4
22 #define HYBRID_NODETYPE 8
23 #define IF_OTHER_ADAPTERTYPE 0
24 #define IF_ETHERNET_ADAPTERTYPE 1
25 #define IF_TOKEN_RING_ADAPTERTYPE 2
26 #define IF_FDDI_ADAPTERTYPE 3
27 #define IF_PPP_ADAPTERTYPE 4
28 #define IF_LOOPBACK_ADAPTERTYPE 5
29 #if (_WIN32_WINNT >= 0x0501)
30 #define IP_ADAPTER_DDNS_ENABLED 0x00000001
31 #define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x00000002
32 #define IP_ADAPTER_DHCP_ENABLED 0x00000004
33 #define IP_ADAPTER_RECEIVE_ONLY 0x00000008
34 #define IP_ADAPTER_NO_MULTICAST 0x00000010
35 #define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x00000020
36 #define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x00000001
37 #define IP_ADAPTER_ADDRESS_TRANSIENT 0x00000002
38 #endif
40 typedef struct {
41 char String[16];
42 } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
43 typedef struct _IP_ADDR_STRING {
44 struct _IP_ADDR_STRING* Next;
45 IP_ADDRESS_STRING IpAddress;
46 IP_MASK_STRING IpMask;
47 DWORD Context;
48 } IP_ADDR_STRING, *PIP_ADDR_STRING;
49 typedef struct _IP_ADAPTER_INFO {
50 struct _IP_ADAPTER_INFO* Next;
51 DWORD ComboIndex;
52 char AdapterName[MAX_ADAPTER_NAME_LENGTH+4];
53 char Description[MAX_ADAPTER_DESCRIPTION_LENGTH+4];
54 UINT AddressLength;
55 BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
56 DWORD Index;
57 UINT Type;
58 UINT DhcpEnabled;
59 PIP_ADDR_STRING CurrentIpAddress;
60 IP_ADDR_STRING IpAddressList;
61 IP_ADDR_STRING GatewayList;
62 IP_ADDR_STRING DhcpServer;
63 BOOL HaveWins;
64 IP_ADDR_STRING PrimaryWinsServer;
65 IP_ADDR_STRING SecondaryWinsServer;
66 time_t LeaseObtained;
67 time_t LeaseExpires;
68 } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
69 typedef struct _IP_PER_ADAPTER_INFO {
70 UINT AutoconfigEnabled;
71 UINT AutoconfigActive;
72 PIP_ADDR_STRING CurrentDnsServer;
73 IP_ADDR_STRING DnsServerList;
74 } IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
75 typedef struct _FIXED_INFO {
76 char HostName[MAX_HOSTNAME_LEN+4] ;
77 char DomainName[MAX_DOMAIN_NAME_LEN+4];
78 PIP_ADDR_STRING CurrentDnsServer;
79 IP_ADDR_STRING DnsServerList;
80 UINT NodeType;
81 char ScopeId[MAX_SCOPE_ID_LEN+4];
82 UINT EnableRouting;
83 UINT EnableProxy;
84 UINT EnableDns;
85 } FIXED_INFO, *PFIXED_INFO;
86 #if (_WIN32_WINNT >= 0x0501) && defined(_WINSOCK2_H)
87 typedef enum {
88 IfOperStatusUp = 1,
89 IfOperStatusDown,
90 IfOperStatusTesting,
91 IfOperStatusUnknown,
92 IfOperStatusDormant,
93 IfOperStatusNotPresent,
94 IfOperStatusLowerLayerDown
95 } IF_OPER_STATUS;
96 typedef enum {
97 IpDadStateInvalid = 0,
98 IpDadStateTentative,
99 IpDadStateDuplicate,
100 IpDadStateDeprecated,
101 IpDadStatePreferred
102 } IP_DAD_STATE;
103 typedef enum {
104 IpPrefixOriginOther = 0,
105 IpPrefixOriginManual,
106 IpPrefixOriginWellKnown,
107 IpPrefixOriginDhcp,
108 IpPrefixOriginRouterAdvertisement
109 } IP_PREFIX_ORIGIN;
110 typedef enum {
111 IpSuffixOriginOther = 0,
112 IpSuffixOriginManual,
113 IpSuffixOriginWellKnown,
114 IpSuffixOriginDhcp,
115 IpSuffixOriginLinkLayerAddress,
116 IpSuffixOriginRandom
117 } IP_SUFFIX_ORIGIN;
118 typedef enum {
119 ScopeLevelInterface = 1,
120 ScopeLevelLink = 2,
121 ScopeLevelSubnet = 3,
122 ScopeLevelAdmin = 4,
123 ScopeLevelSite = 5,
124 ScopeLevelOrganization = 8,
125 ScopeLevelGlobal = 14
126 } SCOPE_LEVEL;
127 typedef struct {
128 ULONG Index;
129 ULONG MediaType;
130 UCHAR ConnectionType;
131 UCHAR AccessType;
132 GUID DeviceGuid;
133 GUID InterfaceGuid;
134 } IP_INTERFACE_NAME_INFO,*PIP_INTERFACE_NAME_INFO;
135 typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
136 _ANONYMOUS_UNION union {
137 ULONGLONG Alignment;
138 _ANONYMOUS_STRUCT struct {
139 ULONG Length;
140 DWORD Flags;
141 } DUMMYSTRUCTNAME;
142 } DUMMYUNIONNAME;
143 struct _IP_ADAPTER_ANYCAST_ADDRESS* Next;
144 SOCKET_ADDRESS Address;
145 } IP_ADAPTER_ANYCAST_ADDRESS,*PIP_ADAPTER_ANYCAST_ADDRESS;
146 typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
147 _ANONYMOUS_UNION union {
148 ULONGLONG Alignment;
149 _ANONYMOUS_STRUCT struct {
150 ULONG Length;
151 DWORD Flags;
152 } DUMMYSTRUCTNAME;
153 } DUMMYUNIONNAME;
154 struct _IP_ADAPTER_MULTICAST_ADDRESS* Next;
155 SOCKET_ADDRESS Address;
156 } IP_ADAPTER_MULTICAST_ADDRESS,*PIP_ADAPTER_MULTICAST_ADDRESS;
157 typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
158 _ANONYMOUS_UNION union {
159 ULONGLONG Alignment;
160 _ANONYMOUS_STRUCT struct {
161 ULONG Length;
162 DWORD Flags;
163 } DUMMYSTRUCTNAME;
164 } DUMMYUNIONNAME;
165 struct _IP_ADAPTER_UNICAST_ADDRESS* Next;
166 SOCKET_ADDRESS Address;
167 IP_PREFIX_ORIGIN PrefixOrigin;
168 IP_SUFFIX_ORIGIN SuffixOrigin;
169 IP_DAD_STATE DadState;
170 ULONG ValidLifetime;
171 ULONG PreferredLifetime;
172 ULONG LeaseLifetime;
173 } IP_ADAPTER_UNICAST_ADDRESS,*PIP_ADAPTER_UNICAST_ADDRESS;
174 typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
175 _ANONYMOUS_UNION union {
176 ULONGLONG Alignment;
177 _ANONYMOUS_STRUCT struct {
178 ULONG Length;
179 DWORD Reserved;
180 } DUMMYSTRUCTNAME;
181 } DUMMYUNIONNAME;
182 struct _IP_ADAPTER_DNS_SERVER_ADDRESS* Next;
183 SOCKET_ADDRESS Address;
184 } IP_ADAPTER_DNS_SERVER_ADDRESS,*PIP_ADAPTER_DNS_SERVER_ADDRESS;
185 typedef struct _IP_ADAPTER_PREFIX {
186 _ANONYMOUS_UNION union {
187 ULONGLONG Alignment;
188 _ANONYMOUS_STRUCT struct {
189 ULONG Length;
190 DWORD Flags;
191 } DUMMYSTRUCTNAME;
192 } DUMMYUNIONNAME;
193 struct _IP_ADAPTER_PREFIX* Next;
194 SOCKET_ADDRESS Address;
195 ULONG PrefixLength;
196 } IP_ADAPTER_PREFIX,*PIP_ADAPTER_PREFIX;
197 typedef struct _IP_ADAPTER_ADDRESSES {
198 _ANONYMOUS_UNION union {
199 ULONGLONG Alignment;
200 _ANONYMOUS_STRUCT struct {
201 ULONG Length;
202 DWORD IfIndex;
203 } DUMMYSTRUCTNAME;
204 } DUMMYUNIONNAME;
205 struct _IP_ADAPTER_ADDRESSES* Next;
206 PCHAR AdapterName;
207 PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
208 PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress;
209 PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress;
210 PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress;
211 PWCHAR DnsSuffix;
212 PWCHAR Description;
213 PWCHAR FriendlyName;
214 BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
215 DWORD PhysicalAddressLength;
216 DWORD Flags;
217 DWORD Mtu;
218 DWORD IfType;
219 IF_OPER_STATUS OperStatus;
220 DWORD Ipv6IfIndex;
221 DWORD ZoneIndices[16];
222 PIP_ADAPTER_PREFIX FirstPrefix;
223 } IP_ADAPTER_ADDRESSES,*PIP_ADAPTER_ADDRESSES;
224 #endif
226 #ifdef __cplusplus
228 #endif
229 #endif /* _IPTYPES_H */