winapi_ui_automation/shared/
ws2ipdef.rs1use ctypes::c_int;
8use shared::in6addr::IN6_ADDR;
9use shared::inaddr::IN_ADDR;
10use shared::minwindef::{ULONG, USHORT};
11use shared::ws2def::{ADDRESS_FAMILY, SCOPE_ID, SOCKADDR_IN};
12pub const IFF_UP: ULONG = 0x00000001;
13pub const IFF_BROADCAST: ULONG = 0x00000002;
14pub const IFF_LOOPBACK: ULONG = 0x00000004;
15pub const IFF_POINTTOPOINT: ULONG = 0x00000008;
16pub const IFF_MULTICAST: ULONG = 0x00000010;
17pub const IP_OPTIONS: c_int = 1;
18pub const IP_HDRINCL: c_int = 2;
19pub const IP_TOS: c_int = 3;
20pub const IP_TTL: c_int = 4;
21pub const IP_MULTICAST_IF: c_int = 9;
22pub const IP_MULTICAST_TTL: c_int = 10;
23pub const IP_MULTICAST_LOOP: c_int = 11;
24pub const IP_ADD_MEMBERSHIP: c_int = 12;
25pub const IP_DROP_MEMBERSHIP: c_int = 13;
26pub const IP_DONTFRAGMENT: c_int = 14;
27pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 15;
28pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 16;
29pub const IP_BLOCK_SOURCE: c_int = 17;
30pub const IP_UNBLOCK_SOURCE: c_int = 18;
31pub const IP_PKTINFO: c_int = 19;
32pub const IP_RECEIVE_BROADCAST: c_int = 22;
33pub const IP_RECVDSTADDR: c_int = 25;
34UNION!{union SOCKADDR_IN6_LH_u {
35 [u32; 1],
36 sin6_scope_id sin6_scope_id_mut: ULONG,
37 sin6_scope_struct sin6_scope_struct_mut: SCOPE_ID,
38}}
39STRUCT!{struct SOCKADDR_IN6_LH {
40 sin6_family: ADDRESS_FAMILY,
41 sin6_port: USHORT,
42 sin6_flowinfo: ULONG,
43 sin6_addr: IN6_ADDR,
44 u: SOCKADDR_IN6_LH_u,
45}}
46pub type PSOCKADDR_IN6_LH = *mut SOCKADDR_IN6_LH;
47pub type SOCKADDR_IN6 = SOCKADDR_IN6_LH;
48pub type PSOCKADDR_IN6 = *mut SOCKADDR_IN6;
49STRUCT!{struct SOCKADDR_IN6_PAIR {
50 SourceAddress: PSOCKADDR_IN6,
51 DestinationAddress: PSOCKADDR_IN6,
52}}
53pub type PSOCKADDR_IN6_PAIR = *mut SOCKADDR_IN6_PAIR;
54UNION!{union SOCKADDR_INET {
55 [u32; 7],
56 Ipv4 Ipv4_mut: SOCKADDR_IN,
57 Ipv6 Ipv6_mut: SOCKADDR_IN6,
58 si_family si_family_mut: ADDRESS_FAMILY,
59}}
60pub type PSOCKADDR_INET = *mut SOCKADDR_INET;
61STRUCT!{struct IP_MREQ {
62 imr_multiaddr: IN_ADDR,
63 imr_interface: IN_ADDR,
64}}
65pub type PIP_MREQ = *mut IP_MREQ;
66STRUCT!{struct IP_MREQ_SOURCE {
67 imr_multiaddr: IN_ADDR,
68 imr_sourceaddr: IN_ADDR,
69 imr_interface: IN_ADDR,
70}}
71pub type PIP_MREQ_SOURCE = *mut IP_MREQ_SOURCE;
72pub const IPV6_HOPOPTS: c_int = 1;
73pub const IPV6_HDRINCL: c_int = 2;
74pub const IPV6_UNICAST_HOPS: c_int = 4;
75pub const IPV6_MULTICAST_IF: c_int = 9;
76pub const IPV6_MULTICAST_HOPS: c_int = 10;
77pub const IPV6_MULTICAST_LOOP: c_int = 11;
78pub const IPV6_ADD_MEMBERSHIP: c_int = 12;
79pub const IPV6_JOIN_GROUP: c_int = IPV6_ADD_MEMBERSHIP;
80pub const IPV6_DROP_MEMBERSHIP: c_int = 13;
81pub const IPV6_LEAVE_GROUP: c_int = IPV6_DROP_MEMBERSHIP;
82pub const IPV6_DONTFRAG: c_int = 14;
83pub const IPV6_PKTINFO: c_int = 19;
84pub const IPV6_HOPLIMIT: c_int = 21;
85pub const IPV6_PROTECTION_LEVEL: c_int = 23;
86pub const IPV6_RECVIF: c_int = 24;
87pub const IPV6_RECVDSTADDR: c_int = 25;
88pub const IPV6_CHECKSUM: c_int = 26;
89pub const IPV6_V6ONLY: c_int = 27;
90pub const IPV6_IFLIST: c_int = 28;
91pub const IPV6_ADD_IFLIST: c_int = 29;
92pub const IPV6_DEL_IFLIST: c_int = 30;
93pub const IPV6_UNICAST_IF: c_int = 31;
94pub const IPV6_RTHDR: c_int = 32;
95pub const IPV6_RECVRTHDR: c_int = 38;
96pub const IPV6_TCLASS: c_int = 39;
97pub const IPV6_RECVTCLASS: c_int = 40;
98STRUCT!{struct IPV6_MREQ {
99 ipv6mr_multiaddr: IN6_ADDR,
100 ipv6mr_interface: ULONG,
101}}
102pub type PIPV6_MREQ = *mut IPV6_MREQ;
103STRUCT!{struct IN_PKTINFO {
104 ipi_addr: IN_ADDR,
105 ipi_ifindex: ULONG,
106}}
107pub type PIN_PKTINFO = *mut IN_PKTINFO;
108STRUCT!{struct IN6_PKTINFO {
109 ipi6_addr: IN6_ADDR,
110 ipi6_ifindex: ULONG,
111}}
112pub type PIN6_PKTINFO = *mut IN6_PKTINFO;