Implemented IMemAllocator.
[wine] / include / wine / ipexport.h
1 /*
2  * Defines the types and macros used by the ICMP API, see icmpapi.h.
3  *
4  * This header is not part of the standard headers, it is usually 
5  * delivered separately and this is why it is not directly in 'include'.
6  */
7
8 #ifndef __WINE_IPEXPORT_H
9 #define __WINE_IPEXPORT_H
10
11 typedef unsigned long   IPAddr;
12 typedef unsigned long   IPMask;
13 typedef unsigned long   IP_STATUS;
14
15 struct ip_option_information
16 {
17     unsigned char  Ttl;
18     unsigned char  Tos;
19     unsigned char  Flags;
20     unsigned char  OptionsSize;
21     unsigned char* OptionsData;
22 };
23
24 #define IP_FLAG_DF      0x2
25
26 #define IP_OPT_EOL      0
27 #define IP_OPT_NOP      1
28 #define IP_OPT_SECURITY 0x82
29 #define IP_OPT_LSRR     0x83
30 #define IP_OPT_SSRR     0x89
31 #define IP_OPT_RR       0x7
32 #define IP_OPT_TS       0x44
33 #define IP_OPT_SID      0x88
34
35 #define MAX_OPT_SIZE    40
36
37
38 struct icmp_echo_reply
39 {
40     IPAddr                       Address;
41     unsigned long                Status;
42     unsigned long                RoundTripTime;
43     unsigned short               DataSize;
44     unsigned short               Reserved;
45     void*                        Data;
46     struct ip_option_information Options;
47 };
48
49 typedef struct ip_option_information IP_OPTION_INFORMATION, *PIP_OPTION_INFORMATION;
50
51 typedef struct icmp_echo_reply ICMP_ECHO_REPLY, *PICMP_ECHO_REPLY;
52
53
54 #define IP_STATUS_BASE              11000
55
56 #define IP_SUCCESS                  0
57 #define IP_BUF_TOO_SMALL            (IP_STATUS_BASE + 1)
58 #define IP_DEST_NET_UNREACHABLE     (IP_STATUS_BASE + 2)
59 #define IP_DEST_HOST_UNREACHABLE    (IP_STATUS_BASE + 3)
60 #define IP_DEST_PROT_UNREACHABLE    (IP_STATUS_BASE + 4)
61 #define IP_DEST_PORT_UNREACHABLE    (IP_STATUS_BASE + 5)
62 #define IP_NO_RESOURCES             (IP_STATUS_BASE + 6)
63 #define IP_BAD_OPTION               (IP_STATUS_BASE + 7)
64 #define IP_HW_ERROR                 (IP_STATUS_BASE + 8)
65 #define IP_PACKET_TOO_BIG           (IP_STATUS_BASE + 9)
66 #define IP_REQ_TIMED_OUT            (IP_STATUS_BASE + 10)
67 #define IP_BAD_REQ                  (IP_STATUS_BASE + 11)
68 #define IP_BAD_ROUTE                (IP_STATUS_BASE + 12)
69 #define IP_TTL_EXPIRED_TRANSIT      (IP_STATUS_BASE + 13)
70 #define IP_TTL_EXPIRED_REASSEM      (IP_STATUS_BASE + 14)
71 #define IP_PARAM_PROBLEM            (IP_STATUS_BASE + 15)
72 #define IP_SOURCE_QUENCH            (IP_STATUS_BASE + 16)
73 #define IP_OPTION_TOO_BIG           (IP_STATUS_BASE + 17)
74 #define IP_BAD_DESTINATION          (IP_STATUS_BASE + 18)
75
76 #define IP_ADDR_DELETED             (IP_STATUS_BASE + 19)
77 #define IP_SPEC_MTU_CHANGE          (IP_STATUS_BASE + 20)
78 #define IP_MTU_CHANGE               (IP_STATUS_BASE + 21)
79 #define IP_UNLOAD                   (IP_STATUS_BASE + 22)
80
81 #define IP_GENERAL_FAILURE          (IP_STATUS_BASE + 50)
82 #define MAX_IP_STATUS               IP_GENERAL_FAILURE
83 #define IP_PENDING                  (IP_STATUS_BASE + 255)
84
85
86 #endif /* __WINE_IPEXPORT_H */