ddraw: Avoid LPDDSURFACEDESC2.
[wine] / include / ipmib.h
1 /*
2  * Copyright (C) 2003 Juan Lang
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 #ifndef __WINE_IPMIB_H
19 #define __WINE_IPMIB_H
20
21 #include <ifmib.h>
22 #include <nldef.h>
23
24
25 /* IPADDR table */
26
27 typedef struct _MIB_IPADDRROW
28 {
29     DWORD          dwAddr;
30     IF_INDEX       dwIndex;
31     DWORD          dwMask;
32     DWORD          dwBCastAddr;
33     DWORD          dwReasmSize;
34     unsigned short unused1;
35     unsigned short wType;
36 } MIB_IPADDRROW, *PMIB_IPADDRROW;
37
38 typedef struct _MIB_IPADDRTABLE
39 {
40     DWORD         dwNumEntries;
41     MIB_IPADDRROW table[1];
42 } MIB_IPADDRTABLE, *PMIB_IPADDRTABLE;
43
44
45 /* IPFORWARD table */
46
47 typedef struct _MIB_IPFORWARDNUMBER
48 {
49     DWORD dwValue;
50 } MIB_IPFORWARDNUMBER, *PMIB_IPFORWARDNUMBER;
51
52 typedef enum
53 {
54     MIB_IPROUTE_TYPE_OTHER = 1,
55     MIB_IPROUTE_TYPE_INVALID = 2,
56     MIB_IPROUTE_TYPE_DIRECT = 3,
57     MIB_IPROUTE_TYPE_INDIRECT = 4,
58 } MIB_IPFORWARD_TYPE;
59
60 typedef NL_ROUTE_PROTOCOL MIB_IPFORWARD_PROTO;
61
62 typedef struct _MIB_IPFORWARDROW
63 {
64     DWORD    dwForwardDest;
65     DWORD    dwForwardMask;
66     DWORD    dwForwardPolicy;
67     DWORD    dwForwardNextHop;
68     IF_INDEX dwForwardIfIndex;
69     union
70     {
71         DWORD              dwForwardType;
72         MIB_IPFORWARD_TYPE ForwardType;
73     } DUMMYUNIONNAME1;
74     union
75     {
76         DWORD               dwForwardProto;
77         MIB_IPFORWARD_PROTO ForwardProto;
78     } DUMMYUNIONNAME2;
79     DWORD    dwForwardAge;
80     DWORD    dwForwardNextHopAS;
81     DWORD    dwForwardMetric1;
82     DWORD    dwForwardMetric2;
83     DWORD    dwForwardMetric3;
84     DWORD    dwForwardMetric4;
85     DWORD    dwForwardMetric5;
86 } MIB_IPFORWARDROW, *PMIB_IPFORWARDROW;
87
88 typedef struct _MIB_IPFORWARDTABLE
89 {
90     DWORD            dwNumEntries;
91     MIB_IPFORWARDROW table[1];
92 } MIB_IPFORWARDTABLE, *PMIB_IPFORWARDTABLE;
93
94
95 /* IPNET table */
96
97 typedef enum
98 {
99     MIB_IPNET_TYPE_OTHER = 1,
100     MIB_IPNET_TYPE_INVALID = 2,
101     MIB_IPNET_TYPE_DYNAMIC = 3,
102     MIB_IPNET_TYPE_STATIC = 4,
103 } MIB_IPNET_TYPE;
104
105 typedef struct _MIB_IPNETROW
106 {
107     DWORD dwIndex;
108     DWORD dwPhysAddrLen;
109     BYTE  bPhysAddr[MAXLEN_PHYSADDR];
110     DWORD dwAddr;
111     union
112     {
113         DWORD          dwType;
114         MIB_IPNET_TYPE Type;
115     } DUMMYUNIONNAME;
116 } MIB_IPNETROW, *PMIB_IPNETROW;
117
118 typedef struct _MIB_IPNETTABLE
119 {
120     DWORD        dwNumEntries;
121     MIB_IPNETROW table[1];
122 } MIB_IPNETTABLE, *PMIB_IPNETTABLE;
123
124
125 /* IP statistics */
126
127 typedef enum
128 {
129     MIB_IP_FORWARDING = 1,
130     MIB_IP_NOT_FORWARDING = 2,
131 } MIB_IPSTATS_FORWARDING, *PMIB_IPSTATS_FORWARDING;
132
133 typedef struct _MIB_IPSTATS
134 {
135     union
136     {
137         DWORD                  dwForwarding;
138         MIB_IPSTATS_FORWARDING Forwarding;
139     } DUMMYUNIONNAME;
140     DWORD dwDefaultTTL;
141     DWORD dwInReceives;
142     DWORD dwInHdrErrors;
143     DWORD dwInAddrErrors;
144     DWORD dwForwDatagrams;
145     DWORD dwInUnknownProtos;
146     DWORD dwInDiscards;
147     DWORD dwInDelivers;
148     DWORD dwOutRequests;
149     DWORD dwRoutingDiscards;
150     DWORD dwOutDiscards;
151     DWORD dwOutNoRoutes;
152     DWORD dwReasmTimeout;
153     DWORD dwReasmReqds;
154     DWORD dwReasmOks;
155     DWORD dwReasmFails;
156     DWORD dwFragOks;
157     DWORD dwFragFails;
158     DWORD dwFragCreates;
159     DWORD dwNumIf;
160     DWORD dwNumAddr;
161     DWORD dwNumRoutes;
162 } MIB_IPSTATS, *PMIB_IPSTATS;
163
164
165 /* ICMP statistics */
166
167 typedef struct _MIBICMPSTATS
168 {
169     DWORD dwMsgs;
170     DWORD dwErrors;
171     DWORD dwDestUnreachs;
172     DWORD dwTimeExcds;
173     DWORD dwParmProbs;
174     DWORD dwSrcQuenchs;
175     DWORD dwRedirects;
176     DWORD dwEchos;
177     DWORD dwEchoReps;
178     DWORD dwTimestamps;
179     DWORD dwTimestampReps;
180     DWORD dwAddrMasks;
181     DWORD dwAddrMaskReps;
182 } MIBICMPSTATS, *PMIBICMPSTATS;
183
184 typedef struct _MIBICMPINFO
185 {
186     MIBICMPSTATS icmpInStats;
187     MIBICMPSTATS icmpOutStats;
188 } MIBICMPINFO;
189
190 typedef struct _MIB_ICMP
191 {
192     MIBICMPINFO stats;
193 } MIB_ICMP, *PMIB_ICMP;
194
195 typedef enum
196 {
197     ICMP4_ECHO_REPLY        =  0,
198     ICMP4_DST_UNREACH       =  3,
199     ICMP4_SOURCE_QUENCH     =  4,
200     ICMP4_REDIRECT          =  5,
201     ICMP4_ECHO_REQUEST      =  8,
202     ICMP4_ROUTER_ADVERT     =  9,
203     ICMP4_ROUTER_SOLICIT    = 10,
204     ICMP4_TIME_EXCEEDED     = 11,
205     ICMP4_PARAM_PROB        = 12,
206     ICMP4_TIMESTAMP_REQUEST = 13,
207     ICMP4_TIMESTAMP_REPLY   = 14,
208     ICMP4_MASK_REQUEST      = 17,
209     ICMP4_MASK_REPLY        = 18,
210 } ICMP4_TYPE, *PICMP4_TYPE;
211
212 typedef enum
213 {
214     ICMP6_DST_UNREACH          =   1,
215     ICMP6_PACKET_TOO_BIG       =   2,
216     ICMP6_TIME_EXCEEDED        =   3,
217     ICMP6_PARAM_PROB           =   4,
218     ICMP6_ECHO_REQUEST         = 128,
219     ICMP6_ECHO_REPLY           = 129,
220     ICMP6_MEMBERSHIP_QUERY     = 130,
221     ICMP6_MEMBERSHIP_REPORT    = 131,
222     ICMP6_MEMBERSHIP_REDUCTION = 132,
223     ND_ROUTER_SOLICIT          = 133,
224     ND_ROUTER_ADVERT           = 134,
225     ND_NEIGHBOR_SOLICIT        = 135,
226     ND_NEIGHBOR_ADVERT         = 136,
227     ND_REDIRECT                = 137,
228     ICMP6_V2_MEMBERSHIP_REPORT = 143,
229 } ICMP6_TYPE, *PICMP6_TYPE;
230
231 typedef struct _MIBICMPSTATS_EX
232 {
233     DWORD dwMsgs;
234     DWORD dwErrors;
235     DWORD rgdwTypeCount[256];
236 } MIBICMPSTATS_EX, *PMIBICMPSTATS_EX;
237
238 typedef struct _MIB_ICMP_EX
239 {
240   MIBICMPSTATS_EX icmpInStats;
241   MIBICMPSTATS_EX icmpOutStats;
242 } MIB_ICMP_EX, *PMIB_ICMP_EX;
243
244 #endif /* __WINE_IPMIB_H */