winhttp: Make strings in WINHTTP_PROXY_INFO non-const.
[wine] / include / ipexport.h
1 /*
2  * Defines the types and macros used by the ICMP API, see icmpapi.h.
3  *
4  * Copyright (C) 1999 Francois Gouget
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #ifndef __WINE_IPEXPORT_H
22 #define __WINE_IPEXPORT_H
23
24 #include <in6addr.h>
25 #include <inaddr.h>
26
27 typedef ULONG IPAddr;
28 typedef ULONG IPMask;
29 typedef ULONG IP_STATUS;
30
31 struct ip_option_information
32 {
33     unsigned char  Ttl;
34     unsigned char  Tos;
35     unsigned char  Flags;
36     unsigned char  OptionsSize;
37     unsigned char* OptionsData;
38 };
39
40 #define IP_FLAG_DF      0x2
41
42 #define IP_OPT_EOL      0
43 #define IP_OPT_NOP      1
44 #define IP_OPT_SECURITY 0x82
45 #define IP_OPT_LSRR     0x83
46 #define IP_OPT_SSRR     0x89
47 #define IP_OPT_RR       0x7
48 #define IP_OPT_TS       0x44
49 #define IP_OPT_SID      0x88
50
51 #define MAX_OPT_SIZE    40
52
53
54 struct icmp_echo_reply
55 {
56     IPAddr                       Address;
57     ULONG                        Status;
58     ULONG                        RoundTripTime;
59     unsigned short               DataSize;
60     unsigned short               Reserved;
61     void*                        Data;
62     struct ip_option_information Options;
63 };
64
65 typedef struct ip_option_information IP_OPTION_INFORMATION, *PIP_OPTION_INFORMATION;
66
67 typedef struct icmp_echo_reply ICMP_ECHO_REPLY, *PICMP_ECHO_REPLY;
68
69
70 #define IP_STATUS_BASE              11000
71
72 #define IP_SUCCESS                  0
73 #define IP_BUF_TOO_SMALL            (IP_STATUS_BASE + 1)
74 #define IP_DEST_NET_UNREACHABLE     (IP_STATUS_BASE + 2)
75 #define IP_DEST_HOST_UNREACHABLE    (IP_STATUS_BASE + 3)
76 #define IP_DEST_PROT_UNREACHABLE    (IP_STATUS_BASE + 4)
77 #define IP_DEST_PORT_UNREACHABLE    (IP_STATUS_BASE + 5)
78 #define IP_NO_RESOURCES             (IP_STATUS_BASE + 6)
79 #define IP_BAD_OPTION               (IP_STATUS_BASE + 7)
80 #define IP_HW_ERROR                 (IP_STATUS_BASE + 8)
81 #define IP_PACKET_TOO_BIG           (IP_STATUS_BASE + 9)
82 #define IP_REQ_TIMED_OUT            (IP_STATUS_BASE + 10)
83 #define IP_BAD_REQ                  (IP_STATUS_BASE + 11)
84 #define IP_BAD_ROUTE                (IP_STATUS_BASE + 12)
85 #define IP_TTL_EXPIRED_TRANSIT      (IP_STATUS_BASE + 13)
86 #define IP_TTL_EXPIRED_REASSEM      (IP_STATUS_BASE + 14)
87 #define IP_PARAM_PROBLEM            (IP_STATUS_BASE + 15)
88 #define IP_SOURCE_QUENCH            (IP_STATUS_BASE + 16)
89 #define IP_OPTION_TOO_BIG           (IP_STATUS_BASE + 17)
90 #define IP_BAD_DESTINATION          (IP_STATUS_BASE + 18)
91
92 #define IP_ADDR_DELETED             (IP_STATUS_BASE + 19)
93 #define IP_SPEC_MTU_CHANGE          (IP_STATUS_BASE + 20)
94 #define IP_MTU_CHANGE               (IP_STATUS_BASE + 21)
95 #define IP_UNLOAD                   (IP_STATUS_BASE + 22)
96
97 #define IP_GENERAL_FAILURE          (IP_STATUS_BASE + 50)
98 #define MAX_IP_STATUS               IP_GENERAL_FAILURE
99 #define IP_PENDING                  (IP_STATUS_BASE + 255)
100
101
102 #define MAX_ADAPTER_NAME 128
103
104 typedef struct _IP_ADAPTER_INDEX_MAP {
105   ULONG Index;
106   WCHAR Name[MAX_ADAPTER_NAME];
107 } IP_ADAPTER_INDEX_MAP, *PIP_ADAPTER_INDEX_MAP;
108
109 typedef struct _IP_INTERFACE_INFO {
110   LONG                 NumAdapters;
111   IP_ADAPTER_INDEX_MAP Adapter[1];
112 } IP_INTERFACE_INFO,*PIP_INTERFACE_INFO;
113
114 typedef struct _IP_UNIDIRECTIONAL_ADAPTER_ADDRESS {
115   ULONG  NumAdapters;
116   IPAddr Address[1];
117 } IP_UNIDIRECTIONAL_ADAPTER_ADDRESS, *PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS;
118
119 #endif /* __WINE_IPEXPORT_H */