summaryrefslogtreecommitdiffstats
path: root/third_party/rust/winapi/src/um/ipexport.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/winapi/src/um/ipexport.rs')
-rw-r--r--third_party/rust/winapi/src/um/ipexport.rs174
1 files changed, 174 insertions, 0 deletions
diff --git a/third_party/rust/winapi/src/um/ipexport.rs b/third_party/rust/winapi/src/um/ipexport.rs
new file mode 100644
index 0000000000..32511622c1
--- /dev/null
+++ b/third_party/rust/winapi/src/um/ipexport.rs
@@ -0,0 +1,174 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+// #include <winapifamily.h>
+// #include <in6addr.h>
+// #include <inaddr.h>
+use shared::basetsd::ULONG64;
+use shared::in6addr::in6_addr;
+use shared::ntdef::{INT, PUCHAR, PVOID, UCHAR, ULONG, USHORT, WCHAR};
+pub const MAX_ADAPTER_NAME: usize = 128;
+pub const MAX_OPT_SIZE: usize = 40;
+pub type IPAddr = ULONG;
+pub type IPMask = ULONG;
+pub type IP_STATUS = ULONG;
+pub type IPv6Addr = in6_addr;
+STRUCT!{struct IP_OPTION_INFORMATION {
+ Ttl: UCHAR,
+ Tos: UCHAR,
+ Flags: UCHAR,
+ OptionsSize: UCHAR,
+ OptionsData: PUCHAR,
+}}
+pub type PIP_OPTION_INFORMATION = *mut IP_OPTION_INFORMATION;
+#[cfg(target_arch = "x86_64")]
+STRUCT!{struct IP_OPTION_INFORMATION32 {
+ Ttl: UCHAR,
+ Tos: UCHAR,
+ Flags: UCHAR,
+ OptionsSize: UCHAR,
+ OptionsData: u32, // UCHAR * POINTER_32
+}}
+#[cfg(target_arch = "x86_64")]
+pub type PIP_OPTION_INFORMATION32 = *mut IP_OPTION_INFORMATION32;
+STRUCT!{struct ICMP_ECHO_REPLY {
+ Address: IPAddr,
+ Status: ULONG,
+ RoundTripTime: ULONG,
+ DataSize: USHORT,
+ Reserved: USHORT,
+ Data: PVOID,
+ Options: IP_OPTION_INFORMATION,
+}}
+pub type PICMP_ECHO_REPLY = *mut ICMP_ECHO_REPLY;
+#[cfg(target_arch = "x86_64")]
+STRUCT!{struct ICMP_ECHO_REPLY32 {
+ Address: IPAddr,
+ Status: ULONG,
+ RoundTripTime: ULONG,
+ DataSize: USHORT,
+ Reserved: USHORT,
+ Data: u32, // VOID * POINTER_32
+ Options: IP_OPTION_INFORMATION32,
+}}
+#[cfg(target_arch = "x86_64")]
+pub type PICMP_ECHO_REPLY32 = *mut ICMP_ECHO_REPLY32;
+STRUCT!{#[repr(packed)] struct IPV6_ADDRESS_EX {
+ sin6_port: USHORT,
+ sin6_flowinfo: ULONG,
+ sin6_addr: [USHORT; 8],
+ sin6_scope_id: ULONG,
+}}
+pub type PIPV6_ADDRESS_EX = *mut IPV6_ADDRESS_EX;
+// #include <packoff.h>
+STRUCT!{struct ICMPV6_ECHO_REPLY_LH {
+ Address: IPV6_ADDRESS_EX,
+ Status: ULONG,
+ RoundTripTime: INT,
+}}
+pub type PICMPV6_ECHO_REPLY_LH = *mut ICMPV6_ECHO_REPLY_LH;
+pub type ICMPV6_ECHO_REPLY = ICMPV6_ECHO_REPLY_LH;
+pub type PICMPV6_ECHO_REPLY = *mut ICMPV6_ECHO_REPLY;
+// #endif
+STRUCT!{struct ARP_SEND_REPLY {
+ DestAddress: IPAddr,
+ SrcAddress: IPAddr,
+}}
+pub type PARP_SEND_REPLY = *mut ARP_SEND_REPLY;
+STRUCT!{struct TCP_RESERVE_PORT_RANGE {
+ UpperRange: USHORT,
+ LowerRange: USHORT,
+}}
+pub type PTCP_RESERVE_PORT_RANGE = *mut TCP_RESERVE_PORT_RANGE;
+STRUCT!{struct IP_ADAPTER_INDEX_MAP {
+ Index: ULONG,
+ Name: [WCHAR; MAX_ADAPTER_NAME],
+}}
+pub type PIP_ADAPTER_INDEX_MAP = *mut IP_ADAPTER_INDEX_MAP;
+STRUCT!{struct IP_INTERFACE_INFO {
+ NumAdapters: ULONG,
+ Adapter: [IP_ADAPTER_INDEX_MAP; 1],
+}}
+pub type PIP_INTERFACE_INFO = *mut IP_INTERFACE_INFO;
+STRUCT!{struct IP_UNIDIRECTIONAL_ADAPTER_ADDRESS {
+ NumAdapters: ULONG,
+ Address: [IPAddr; 1],
+}}
+pub type PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS = *mut IP_UNIDIRECTIONAL_ADAPTER_ADDRESS;
+STRUCT!{struct IP_ADAPTER_ORDER_MAP {
+ NumAdapters: ULONG,
+ AdapterOrder: [ULONG; 1],
+}}
+pub type PIP_ADAPTER_ORDER_MAP = *mut IP_ADAPTER_ORDER_MAP;
+STRUCT!{struct IP_MCAST_COUNTER_INFO {
+ InMcastOctets: ULONG64,
+ OutMcastOctets: ULONG64,
+ InMcastPkts: ULONG64,
+ OutMcastPkts: ULONG64,
+}}
+pub type PIP_MCAST_COUNTER_INFO = *mut IP_MCAST_COUNTER_INFO;
+// IP_STATUS codes returned from IP APIs
+pub const IP_STATUS_BASE: IP_STATUS = 11000;
+pub const IP_SUCCESS: IP_STATUS = 0;
+pub const IP_BUF_TOO_SMALL: IP_STATUS = IP_STATUS_BASE + 1;
+pub const IP_DEST_NET_UNREACHABLE: IP_STATUS = IP_STATUS_BASE + 2;
+pub const IP_DEST_HOST_UNREACHABLE: IP_STATUS = IP_STATUS_BASE + 3;
+pub const IP_DEST_PROT_UNREACHABLE: IP_STATUS = IP_STATUS_BASE + 4;
+pub const IP_DEST_PORT_UNREACHABLE: IP_STATUS = IP_STATUS_BASE + 5;
+pub const IP_NO_RESOURCES: IP_STATUS = IP_STATUS_BASE + 6;
+pub const IP_BAD_OPTION: IP_STATUS = IP_STATUS_BASE + 7;
+pub const IP_HW_ERROR: IP_STATUS = IP_STATUS_BASE + 8;
+pub const IP_PACKET_TOO_BIG: IP_STATUS = IP_STATUS_BASE + 9;
+pub const IP_REQ_TIMED_OUT: IP_STATUS = IP_STATUS_BASE + 10;
+pub const IP_BAD_REQ: IP_STATUS = IP_STATUS_BASE + 11;
+pub const IP_BAD_ROUTE: IP_STATUS = IP_STATUS_BASE + 12;
+pub const IP_TTL_EXPIRED_TRANSIT: IP_STATUS = IP_STATUS_BASE + 13;
+pub const IP_TTL_EXPIRED_REASSEM: IP_STATUS = IP_STATUS_BASE + 14;
+pub const IP_PARAM_PROBLEM: IP_STATUS = IP_STATUS_BASE + 15;
+pub const IP_SOURCE_QUENCH: IP_STATUS = IP_STATUS_BASE + 16;
+pub const IP_OPTION_TOO_BIG: IP_STATUS = IP_STATUS_BASE + 17;
+pub const IP_BAD_DESTINATION: IP_STATUS = IP_STATUS_BASE + 18;
+pub const IP_DEST_NO_ROUTE: IP_STATUS = IP_STATUS_BASE + 2;
+pub const IP_DEST_ADDR_UNREACHABLE: IP_STATUS = IP_STATUS_BASE + 3;
+pub const IP_DEST_PROHIBITED: IP_STATUS = IP_STATUS_BASE + 4;
+pub const IP_HOP_LIMIT_EXCEEDED: IP_STATUS = IP_STATUS_BASE + 13;
+pub const IP_REASSEMBLY_TIME_EXCEEDED: IP_STATUS = IP_STATUS_BASE + 14;
+pub const IP_PARAMETER_PROBLEM: IP_STATUS = IP_STATUS_BASE + 15;
+pub const IP_DEST_UNREACHABLE: IP_STATUS = IP_STATUS_BASE + 40;
+pub const IP_TIME_EXCEEDED: IP_STATUS = IP_STATUS_BASE + 41;
+pub const IP_BAD_HEADER: IP_STATUS = IP_STATUS_BASE + 42;
+pub const IP_UNRECOGNIZED_NEXT_HEADER: IP_STATUS = IP_STATUS_BASE + 43;
+pub const IP_ICMP_ERROR: IP_STATUS = IP_STATUS_BASE + 44;
+pub const IP_DEST_SCOPE_MISMATCH: IP_STATUS = IP_STATUS_BASE + 45;
+pub const IP_ADDR_DELETED: IP_STATUS = IP_STATUS_BASE + 19;
+pub const IP_SPEC_MTU_CHANGE: IP_STATUS = IP_STATUS_BASE + 20;
+pub const IP_MTU_CHANGE: IP_STATUS = IP_STATUS_BASE + 21;
+pub const IP_UNLOAD: IP_STATUS = IP_STATUS_BASE + 22;
+pub const IP_ADDR_ADDED: IP_STATUS = IP_STATUS_BASE + 23;
+pub const IP_MEDIA_CONNECT: IP_STATUS = IP_STATUS_BASE + 24;
+pub const IP_MEDIA_DISCONNECT: IP_STATUS = IP_STATUS_BASE + 25;
+pub const IP_BIND_ADAPTER: IP_STATUS = IP_STATUS_BASE + 26;
+pub const IP_UNBIND_ADAPTER: IP_STATUS = IP_STATUS_BASE + 27;
+pub const IP_DEVICE_DOES_NOT_EXIST: IP_STATUS = IP_STATUS_BASE + 28;
+pub const IP_DUPLICATE_ADDRESS: IP_STATUS = IP_STATUS_BASE + 29;
+pub const IP_INTERFACE_METRIC_CHANGE: IP_STATUS = IP_STATUS_BASE + 30;
+pub const IP_RECONFIG_SECFLTR: IP_STATUS = IP_STATUS_BASE + 31;
+pub const IP_NEGOTIATING_IPSEC: IP_STATUS = IP_STATUS_BASE + 32;
+pub const IP_INTERFACE_WOL_CAPABILITY_CHANGE: IP_STATUS = IP_STATUS_BASE + 33;
+pub const IP_DUPLICATE_IPADD: IP_STATUS = IP_STATUS_BASE + 34;
+pub const IP_GENERAL_FAILURE: IP_STATUS = IP_STATUS_BASE + 50;
+pub const MAX_IP_STATUS: IP_STATUS = IP_GENERAL_FAILURE;
+pub const IP_PENDING: IP_STATUS = IP_STATUS_BASE + 255;
+pub const IP_FLAG_REVERSE: UCHAR = 0x1;
+pub const IP_FLAG_DF: UCHAR = 0x2;
+pub const IP_OPT_EOL: u8 = 0;
+pub const IP_OPT_NOP: u8 = 1;
+pub const IP_OPT_SECURITY: u8 = 0x82;
+pub const IP_OPT_LSRR: u8 = 0x83;
+pub const IP_OPT_SSRR: u8 = 0x89;
+pub const IP_OPT_RR: u8 = 0x7;
+pub const IP_OPT_TS: u8 = 0x44;
+pub const IP_OPT_SID: u8 = 0x88;
+pub const IP_OPT_ROUTER_ALERT: u8 = 0x94;