diff --git a/crates/shadowsocks-service/Cargo.toml b/crates/shadowsocks-service/Cargo.toml
index be2f63b7e982..44f2654bd846 100644
--- a/crates/shadowsocks-service/Cargo.toml
+++ b/crates/shadowsocks-service/Cargo.toml
@@ -208,7 +208,7 @@ bson = { version = "2.12.0", optional = true }
 shadowsocks = { version = "1.20.2", path = "../shadowsocks", default-features = false }
 
 # Just for the ioctl call macro
-[target.'cfg(any(target_os = "macos", target_os = "ios", target_os = "freebsd"))'.dependencies]
+[target.'cfg(any(target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "openbsd"))'.dependencies]
 nix = { version = "0.29", features = ["ioctl"] }
 
 [target.'cfg(windows)'.dependencies]
diff --git a/crates/shadowsocks-service/src/config.rs b/crates/shadowsocks-service/src/config.rs
index 5a82323ef9aa..4586b0c848a3 100644
--- a/crates/shadowsocks-service/src/config.rs
+++ b/crates/shadowsocks-service/src/config.rs
@@ -480,6 +480,7 @@ cfg_if! {
             /// Document: <https://www.freebsd.org/doc/handbook/firewalls-pf.html>
             #[cfg(any(
                 target_os = "freebsd",
+                target_os = "openbsd",
                 target_os = "macos",
                 target_os = "ios"
             ))]
@@ -544,6 +545,30 @@ cfg_if! {
                         const AVAILABLE_TYPES: &[&str] = &[RedirType::PacketFilter.name(), RedirType::IpFirewall.name()];
                         AVAILABLE_TYPES
                     }
+                } else if #[cfg(target_os = "openbsd")] {
+                    /// Default TCP transparent proxy solution on this platform
+                    pub fn tcp_default() -> RedirType {
+                        RedirType::PacketFilter
+                    }
+
+                    /// Available TCP transparent proxy types
+                    #[doc(hidden)]
+                    pub fn tcp_available_types() -> &'static [&'static str] {
+                        const AVAILABLE_TYPES: &[&str] = &[RedirType::PacketFilter.name()];
+                        AVAILABLE_TYPES
+                    }
+
+                    /// Default UDP transparent proxy solution on this platform
+                    pub fn udp_default() -> RedirType {
+                        RedirType::PacketFilter
+                    }
+
+                    /// Available UDP transparent proxy types
+                    #[doc(hidden)]
+                    pub const fn udp_available_types() -> &'static [&'static str] {
+                        const AVAILABLE_TYPES: &[&str] = &[RedirType::PacketFilter.name()];
+                        AVAILABLE_TYPES
+                    }
                 } else if #[cfg(any(target_os = "macos", target_os = "ios"))] {
                     /// Default TCP transparent proxy solution on this platform
                     pub fn tcp_default() -> RedirType {
@@ -614,6 +639,7 @@ cfg_if! {
 
                     #[cfg(any(
                         target_os = "freebsd",
+                        target_os = "openbsd",
                         target_os = "macos",
                         target_os = "ios"
                     ))]
@@ -654,6 +680,7 @@ cfg_if! {
 
                     #[cfg(any(
                         target_os = "freebsd",
+                        target_os = "openbsd",
                         target_os = "macos",
                         target_os = "ios",
                     ))]
diff --git a/crates/shadowsocks-service/src/local/redir/sys/unix/mod.rs b/crates/shadowsocks-service/src/local/redir/sys/unix/mod.rs
index 2c910bf870c6..cd0eeec7c0cd 100644
--- a/crates/shadowsocks-service/src/local/redir/sys/unix/mod.rs
+++ b/crates/shadowsocks-service/src/local/redir/sys/unix/mod.rs
@@ -20,5 +20,10 @@ cfg_if! {
         #[allow(dead_code, non_upper_case_globals, non_snake_case, non_camel_case_types)]
         #[allow(clippy::useless_transmute, clippy::too_many_arguments, clippy::unnecessary_cast)]
         mod pfvar;
+    } else if #[cfg(target_os = "openbsd")] {
+        #[path = "pfvar_bindgen_openbsd.rs"]
+        #[allow(dead_code, non_upper_case_globals, non_snake_case, non_camel_case_types)]
+        #[allow(clippy::useless_transmute, clippy::too_many_arguments, clippy::unnecessary_cast)]
+        mod pfvar;
     }
 }
diff --git a/crates/shadowsocks-service/src/local/redir/sys/unix/pfvar_bindgen_openbsd.rs b/crates/shadowsocks-service/src/local/redir/sys/unix/pfvar_bindgen_openbsd.rs
new file mode 100644
index 000000000000..28e5d3905918
--- /dev/null
+++ b/crates/shadowsocks-service/src/local/redir/sys/unix/pfvar_bindgen_openbsd.rs
@@ -0,0 +1,16756 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+pub const __ISO_C_VISIBLE: u32 = 2011;
+pub const __XPG_VISIBLE: u32 = 700;
+pub const __POSIX_VISIBLE: u32 = 200809;
+pub const __BSD_VISIBLE: u32 = 1;
+pub const _STACKALIGNBYTES: u32 = 15;
+pub const _MAX_PAGE_SHIFT: u32 = 12;
+pub const INT8_MIN: i32 = -128;
+pub const INT16_MIN: i32 = -32768;
+pub const INT32_MIN: i32 = -2147483648;
+pub const INT64_MIN: i64 = -9223372036854775808;
+pub const INT8_MAX: u32 = 127;
+pub const INT16_MAX: u32 = 32767;
+pub const INT32_MAX: u32 = 2147483647;
+pub const INT64_MAX: u64 = 9223372036854775807;
+pub const UINT8_MAX: u32 = 255;
+pub const UINT16_MAX: u32 = 65535;
+pub const UINT32_MAX: u32 = 4294967295;
+pub const UINT64_MAX: i32 = -1;
+pub const INT_LEAST8_MIN: i32 = -128;
+pub const INT_LEAST16_MIN: i32 = -32768;
+pub const INT_LEAST32_MIN: i32 = -2147483648;
+pub const INT_LEAST64_MIN: i64 = -9223372036854775808;
+pub const INT_LEAST8_MAX: u32 = 127;
+pub const INT_LEAST16_MAX: u32 = 32767;
+pub const INT_LEAST32_MAX: u32 = 2147483647;
+pub const INT_LEAST64_MAX: u64 = 9223372036854775807;
+pub const UINT_LEAST8_MAX: u32 = 255;
+pub const UINT_LEAST16_MAX: u32 = 65535;
+pub const UINT_LEAST32_MAX: u32 = 4294967295;
+pub const UINT_LEAST64_MAX: i32 = -1;
+pub const INTPTR_MIN: i64 = -9223372036854775808;
+pub const INTPTR_MAX: u64 = 9223372036854775807;
+pub const UINTPTR_MAX: i32 = -1;
+pub const INTMAX_MIN: i64 = -9223372036854775808;
+pub const INTMAX_MAX: u64 = 9223372036854775807;
+pub const UINTMAX_MAX: i32 = -1;
+pub const PTRDIFF_MIN: i64 = -9223372036854775808;
+pub const PTRDIFF_MAX: u64 = 9223372036854775807;
+pub const SIG_ATOMIC_MIN: i32 = -2147483648;
+pub const SIG_ATOMIC_MAX: u32 = 2147483647;
+pub const SIZE_MAX: i32 = -1;
+pub const WCHAR_MIN: i32 = -2147483648;
+pub const WCHAR_MAX: u32 = 2147483647;
+pub const WINT_MIN: i32 = -2147483648;
+pub const WINT_MAX: u32 = 2147483647;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const _LITTLE_ENDIAN: u32 = 1234;
+pub const _BIG_ENDIAN: u32 = 4321;
+pub const _PDP_ENDIAN: u32 = 3412;
+pub const _QUAD_HIGHWORD: u32 = 1;
+pub const _QUAD_LOWWORD: u32 = 0;
+pub const LITTLE_ENDIAN: u32 = 1234;
+pub const BIG_ENDIAN: u32 = 4321;
+pub const PDP_ENDIAN: u32 = 3412;
+pub const SOCK_STREAM: u32 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+pub const SOCK_RAW: u32 = 3;
+pub const SOCK_RDM: u32 = 4;
+pub const SOCK_SEQPACKET: u32 = 5;
+pub const SOCK_CLOEXEC: u32 = 32768;
+pub const SOCK_NONBLOCK: u32 = 16384;
+pub const SOCK_DNS: u32 = 4096;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_ACCEPTCONN: u32 = 2;
+pub const SO_REUSEADDR: u32 = 4;
+pub const SO_KEEPALIVE: u32 = 8;
+pub const SO_DONTROUTE: u32 = 16;
+pub const SO_BROADCAST: u32 = 32;
+pub const SO_USELOOPBACK: u32 = 64;
+pub const SO_LINGER: u32 = 128;
+pub const SO_OOBINLINE: u32 = 256;
+pub const SO_REUSEPORT: u32 = 512;
+pub const SO_TIMESTAMP: u32 = 2048;
+pub const SO_BINDANY: u32 = 4096;
+pub const SO_ZEROIZE: u32 = 8192;
+pub const SO_SNDBUF: u32 = 4097;
+pub const SO_RCVBUF: u32 = 4098;
+pub const SO_SNDLOWAT: u32 = 4099;
+pub const SO_RCVLOWAT: u32 = 4100;
+pub const SO_SNDTIMEO: u32 = 4101;
+pub const SO_RCVTIMEO: u32 = 4102;
+pub const SO_ERROR: u32 = 4103;
+pub const SO_TYPE: u32 = 4104;
+pub const SO_NETPROC: u32 = 4128;
+pub const SO_RTABLE: u32 = 4129;
+pub const SO_PEERCRED: u32 = 4130;
+pub const SO_SPLICE: u32 = 4131;
+pub const SO_DOMAIN: u32 = 4132;
+pub const SO_PROTOCOL: u32 = 4133;
+pub const RT_TABLEID_MAX: u32 = 255;
+pub const RT_TABLEID_BITS: u32 = 8;
+pub const RT_TABLEID_MASK: u32 = 255;
+pub const SOL_SOCKET: u32 = 65535;
+pub const AF_UNSPEC: u32 = 0;
+pub const AF_UNIX: u32 = 1;
+pub const AF_LOCAL: u32 = 1;
+pub const AF_INET: u32 = 2;
+pub const AF_IMPLINK: u32 = 3;
+pub const AF_PUP: u32 = 4;
+pub const AF_CHAOS: u32 = 5;
+pub const AF_NS: u32 = 6;
+pub const AF_ISO: u32 = 7;
+pub const AF_OSI: u32 = 7;
+pub const AF_ECMA: u32 = 8;
+pub const AF_DATAKIT: u32 = 9;
+pub const AF_CCITT: u32 = 10;
+pub const AF_SNA: u32 = 11;
+pub const AF_DECnet: u32 = 12;
+pub const AF_DLI: u32 = 13;
+pub const AF_LAT: u32 = 14;
+pub const AF_HYLINK: u32 = 15;
+pub const AF_APPLETALK: u32 = 16;
+pub const AF_ROUTE: u32 = 17;
+pub const AF_LINK: u32 = 18;
+pub const pseudo_AF_XTP: u32 = 19;
+pub const AF_COIP: u32 = 20;
+pub const AF_CNT: u32 = 21;
+pub const pseudo_AF_RTIP: u32 = 22;
+pub const AF_IPX: u32 = 23;
+pub const AF_INET6: u32 = 24;
+pub const pseudo_AF_PIP: u32 = 25;
+pub const AF_ISDN: u32 = 26;
+pub const AF_E164: u32 = 26;
+pub const AF_NATM: u32 = 27;
+pub const AF_ENCAP: u32 = 28;
+pub const AF_SIP: u32 = 29;
+pub const AF_KEY: u32 = 30;
+pub const pseudo_AF_HDRCMPLT: u32 = 31;
+pub const AF_BLUETOOTH: u32 = 32;
+pub const AF_MPLS: u32 = 33;
+pub const pseudo_AF_PFLOW: u32 = 34;
+pub const pseudo_AF_PIPEX: u32 = 35;
+pub const AF_MAX: u32 = 36;
+pub const PF_UNSPEC: u32 = 0;
+pub const PF_LOCAL: u32 = 1;
+pub const PF_UNIX: u32 = 1;
+pub const PF_INET: u32 = 2;
+pub const PF_IMPLINK: u32 = 3;
+pub const PF_PUP: u32 = 4;
+pub const PF_CHAOS: u32 = 5;
+pub const PF_NS: u32 = 6;
+pub const PF_ISO: u32 = 7;
+pub const PF_OSI: u32 = 7;
+pub const PF_ECMA: u32 = 8;
+pub const PF_DATAKIT: u32 = 9;
+pub const PF_CCITT: u32 = 10;
+pub const PF_SNA: u32 = 11;
+pub const PF_DECnet: u32 = 12;
+pub const PF_DLI: u32 = 13;
+pub const PF_LAT: u32 = 14;
+pub const PF_HYLINK: u32 = 15;
+pub const PF_APPLETALK: u32 = 16;
+pub const PF_ROUTE: u32 = 17;
+pub const PF_LINK: u32 = 18;
+pub const PF_XTP: u32 = 19;
+pub const PF_COIP: u32 = 20;
+pub const PF_CNT: u32 = 21;
+pub const PF_IPX: u32 = 23;
+pub const PF_INET6: u32 = 24;
+pub const PF_RTIP: u32 = 22;
+pub const PF_PIP: u32 = 25;
+pub const PF_ISDN: u32 = 26;
+pub const PF_NATM: u32 = 27;
+pub const PF_ENCAP: u32 = 28;
+pub const PF_SIP: u32 = 29;
+pub const PF_KEY: u32 = 30;
+pub const PF_BPF: u32 = 31;
+pub const PF_BLUETOOTH: u32 = 32;
+pub const PF_MPLS: u32 = 33;
+pub const PF_PFLOW: u32 = 34;
+pub const PF_PIPEX: u32 = 35;
+pub const PF_MAX: u32 = 36;
+pub const SHUT_RD: u32 = 0;
+pub const SHUT_WR: u32 = 1;
+pub const SHUT_RDWR: u32 = 2;
+pub const NET_MAXID: u32 = 36;
+pub const NET_RT_DUMP: u32 = 1;
+pub const NET_RT_FLAGS: u32 = 2;
+pub const NET_RT_IFLIST: u32 = 3;
+pub const NET_RT_STATS: u32 = 4;
+pub const NET_RT_TABLE: u32 = 5;
+pub const NET_RT_IFNAMES: u32 = 6;
+pub const NET_RT_SOURCE: u32 = 7;
+pub const NET_RT_MAXID: u32 = 8;
+pub const NET_UNIX_INFLIGHT: u32 = 6;
+pub const NET_UNIX_DEFERRED: u32 = 7;
+pub const NET_UNIX_MAXID: u32 = 8;
+pub const UNPCTL_RECVSPACE: u32 = 1;
+pub const UNPCTL_SENDSPACE: u32 = 2;
+pub const NET_UNIX_PROTO_MAXID: u32 = 3;
+pub const NET_LINK_IFRXQ: u32 = 1;
+pub const NET_LINK_MAXID: u32 = 2;
+pub const NET_LINK_IFRXQ_PRESSURE_RETURN: u32 = 1;
+pub const NET_LINK_IFRXQ_PRESSURE_DROP: u32 = 2;
+pub const NET_LINK_IFRXQ_MAXID: u32 = 3;
+pub const NET_KEY_SADB_DUMP: u32 = 1;
+pub const NET_KEY_SPD_DUMP: u32 = 2;
+pub const NET_KEY_MAXID: u32 = 3;
+pub const NET_BPF_BUFSIZE: u32 = 1;
+pub const NET_BPF_MAXBUFSIZE: u32 = 2;
+pub const NET_BPF_MAXID: u32 = 3;
+pub const NET_PFLOW_STATS: u32 = 1;
+pub const NET_PFLOW_MAXID: u32 = 2;
+pub const SOMAXCONN: u32 = 128;
+pub const MSG_OOB: u32 = 1;
+pub const MSG_PEEK: u32 = 2;
+pub const MSG_DONTROUTE: u32 = 4;
+pub const MSG_EOR: u32 = 8;
+pub const MSG_TRUNC: u32 = 16;
+pub const MSG_CTRUNC: u32 = 32;
+pub const MSG_WAITALL: u32 = 64;
+pub const MSG_DONTWAIT: u32 = 128;
+pub const MSG_BCAST: u32 = 256;
+pub const MSG_MCAST: u32 = 512;
+pub const MSG_NOSIGNAL: u32 = 1024;
+pub const MSG_CMSG_CLOEXEC: u32 = 2048;
+pub const MSG_WAITFORONE: u32 = 4096;
+pub const SCM_RIGHTS: u32 = 1;
+pub const SCM_TIMESTAMP: u32 = 4;
+pub const IF_NAMESIZE: u32 = 16;
+pub const FD_SETSIZE: u32 = 1024;
+pub const __NBBY: u32 = 8;
+pub const NBBY: u32 = 8;
+pub const DST_NONE: u32 = 0;
+pub const DST_USA: u32 = 1;
+pub const DST_AUST: u32 = 2;
+pub const DST_WET: u32 = 3;
+pub const DST_MET: u32 = 4;
+pub const DST_EET: u32 = 5;
+pub const DST_CAN: u32 = 6;
+pub const ITIMER_REAL: u32 = 0;
+pub const ITIMER_VIRTUAL: u32 = 1;
+pub const ITIMER_PROF: u32 = 2;
+pub const CLOCKS_PER_SEC: u32 = 100;
+pub const CLOCK_REALTIME: u32 = 0;
+pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2;
+pub const CLOCK_MONOTONIC: u32 = 3;
+pub const CLOCK_THREAD_CPUTIME_ID: u32 = 4;
+pub const CLOCK_UPTIME: u32 = 5;
+pub const CLOCK_BOOTTIME: u32 = 6;
+pub const TIMER_RELTIME: u32 = 0;
+pub const TIMER_ABSTIME: u32 = 1;
+pub const CLK_TCK: u32 = 100;
+pub const TIME_UTC: u32 = 1;
+pub const MCLPOOLS: u32 = 8;
+pub const IFQ_NQUEUES: u32 = 8;
+pub const IFQ_MINPRIO: u32 = 0;
+pub const IFQ_MAXPRIO: u32 = 7;
+pub const IFQ_DEFPRIO: u32 = 3;
+pub const LINK_STATE_UNKNOWN: u32 = 0;
+pub const LINK_STATE_INVALID: u32 = 1;
+pub const LINK_STATE_DOWN: u32 = 2;
+pub const LINK_STATE_KALIVE_DOWN: u32 = 3;
+pub const LINK_STATE_UP: u32 = 4;
+pub const LINK_STATE_HALF_DUPLEX: u32 = 5;
+pub const LINK_STATE_FULL_DUPLEX: u32 = 6;
+pub const IFNAMSIZ: u32 = 16;
+pub const IFDESCRSIZE: u32 = 64;
+pub const IFF_UP: u32 = 1;
+pub const IFF_BROADCAST: u32 = 2;
+pub const IFF_DEBUG: u32 = 4;
+pub const IFF_LOOPBACK: u32 = 8;
+pub const IFF_POINTOPOINT: u32 = 16;
+pub const IFF_STATICARP: u32 = 32;
+pub const IFF_RUNNING: u32 = 64;
+pub const IFF_NOARP: u32 = 128;
+pub const IFF_PROMISC: u32 = 256;
+pub const IFF_ALLMULTI: u32 = 512;
+pub const IFF_OACTIVE: u32 = 1024;
+pub const IFF_SIMPLEX: u32 = 2048;
+pub const IFF_LINK0: u32 = 4096;
+pub const IFF_LINK1: u32 = 8192;
+pub const IFF_LINK2: u32 = 16384;
+pub const IFF_MULTICAST: u32 = 32768;
+pub const IFF_CANTCHANGE: u32 = 36434;
+pub const IFXF_MPSAFE: u32 = 1;
+pub const IFXF_CLONED: u32 = 2;
+pub const IFXF_AUTOCONF6TEMP: u32 = 4;
+pub const IFXF_MPLS: u32 = 8;
+pub const IFXF_WOL: u32 = 16;
+pub const IFXF_AUTOCONF6: u32 = 32;
+pub const IFXF_INET6_NOSOII: u32 = 64;
+pub const IFXF_AUTOCONF4: u32 = 128;
+pub const IFXF_MONITOR: u32 = 256;
+pub const IFXF_LRO: u32 = 512;
+pub const IFXF_CANTCHANGE: u32 = 3;
+pub const IFCAP_CSUM_IPv4: u32 = 1;
+pub const IFCAP_CSUM_TCPv4: u32 = 2;
+pub const IFCAP_CSUM_UDPv4: u32 = 4;
+pub const IFCAP_VLAN_MTU: u32 = 16;
+pub const IFCAP_VLAN_HWTAGGING: u32 = 32;
+pub const IFCAP_CSUM_TCPv6: u32 = 128;
+pub const IFCAP_CSUM_UDPv6: u32 = 256;
+pub const IFCAP_TSOv4: u32 = 4096;
+pub const IFCAP_TSOv6: u32 = 8192;
+pub const IFCAP_LRO: u32 = 16384;
+pub const IFCAP_WOL: u32 = 32768;
+pub const IFCAP_CSUM_MASK: u32 = 391;
+pub const IFQCTL_LEN: u32 = 1;
+pub const IFQCTL_MAXLEN: u32 = 2;
+pub const IFQCTL_DROPS: u32 = 3;
+pub const IFQCTL_CONGESTION: u32 = 4;
+pub const IFQCTL_MAXID: u32 = 5;
+pub const IFAN_ARRIVAL: u32 = 0;
+pub const IFAN_DEPARTURE: u32 = 1;
+pub const IFG_ALL: &[u8; 4] = b"all\0";
+pub const IFG_EGRESS: &[u8; 7] = b"egress\0";
+pub const IF_HDRPRIO_MIN: u32 = 0;
+pub const IF_HDRPRIO_MAX: u32 = 7;
+pub const IF_HDRPRIO_PACKET: i32 = -1;
+pub const IF_HDRPRIO_PAYLOAD: i32 = -2;
+pub const IF_HDRPRIO_OUTER: i32 = -3;
+pub const IF_PWE3_ETHERNET: u32 = 1;
+pub const IF_PWE3_IP: u32 = 2;
+pub const IFLR_PREFIX: u32 = 32768;
+pub const IFSFF_ADDR_EEPROM: u32 = 160;
+pub const IFSFF_ADDR_DDM: u32 = 162;
+pub const IFSFF_DATA_LEN: u32 = 256;
+pub const ARPHRD_ETHER: u32 = 1;
+pub const ARPHRD_IEEE802: u32 = 6;
+pub const ARPHRD_FRELAY: u32 = 15;
+pub const ARPHRD_IEEE1394: u32 = 24;
+pub const ARPOP_REQUEST: u32 = 1;
+pub const ARPOP_REPLY: u32 = 2;
+pub const ARPOP_REVREQUEST: u32 = 3;
+pub const ARPOP_REVREPLY: u32 = 4;
+pub const ARPOP_INVREQUEST: u32 = 8;
+pub const ARPOP_INVREPLY: u32 = 9;
+pub const ATF_INUSE: u32 = 1;
+pub const ATF_COM: u32 = 2;
+pub const ATF_PERM: u32 = 4;
+pub const ATF_PUBL: u32 = 8;
+pub const ATF_USETRAILERS: u32 = 16;
+pub const SPLAY_NEGINF: i32 = -1;
+pub const SPLAY_INF: u32 = 1;
+pub const RB_BLACK: u32 = 0;
+pub const RB_RED: u32 = 1;
+pub const RB_NEGINF: i32 = -1;
+pub const RB_INF: u32 = 1;
+pub const LO_CLASSFLAGS: u32 = 65535;
+pub const LO_INITIALIZED: u32 = 65536;
+pub const LO_WITNESS: u32 = 131072;
+pub const LO_QUIET: u32 = 262144;
+pub const LO_RECURSABLE: u32 = 524288;
+pub const LO_SLEEPABLE: u32 = 1048576;
+pub const LO_UPGRADABLE: u32 = 2097152;
+pub const LO_DUPOK: u32 = 4194304;
+pub const LO_IS_VNODE: u32 = 8388608;
+pub const LO_CLASSMASK: u32 = 251658240;
+pub const LO_NOPROFILE: u32 = 268435456;
+pub const LO_NEW: u32 = 536870912;
+pub const LO_CLASSSHIFT: u32 = 24;
+pub const RWL_DUPOK: u32 = 1;
+pub const RWL_NOWITNESS: u32 = 2;
+pub const RWL_IS_VNODE: u32 = 4;
+pub const RWLOCK_WAIT: u32 = 1;
+pub const RWLOCK_WRWANT: u32 = 2;
+pub const RWLOCK_WRLOCK: u32 = 4;
+pub const RWLOCK_MASK: u32 = 7;
+pub const RWLOCK_READER_SHIFT: u32 = 3;
+pub const RWLOCK_READ_INCR: u32 = 8;
+pub const RW_WRITE: u32 = 1;
+pub const RW_READ: u32 = 2;
+pub const RW_DOWNGRADE: u32 = 4;
+pub const RW_OPMASK: u32 = 7;
+pub const RW_INTR: u32 = 16;
+pub const RW_SLEEPFAIL: u32 = 32;
+pub const RW_NOSLEEP: u32 = 64;
+pub const RW_RECURSEFAIL: u32 = 128;
+pub const RW_DUPOK: u32 = 256;
+pub const RW_WRITE_OTHER: u32 = 256;
+pub const ARG_MAX: u32 = 524288;
+pub const CHILD_MAX: u32 = 80;
+pub const LINK_MAX: u32 = 32767;
+pub const MAX_CANON: u32 = 255;
+pub const MAX_INPUT: u32 = 255;
+pub const NAME_MAX: u32 = 255;
+pub const NGROUPS_MAX: u32 = 16;
+pub const OPEN_MAX: u32 = 64;
+pub const PATH_MAX: u32 = 1024;
+pub const PIPE_BUF: u32 = 512;
+pub const SYMLINK_MAX: u32 = 1024;
+pub const SYMLOOP_MAX: u32 = 32;
+pub const BC_DIM_MAX: u32 = 65535;
+pub const COLL_WEIGHTS_MAX: u32 = 2;
+pub const EXPR_NEST_MAX: u32 = 32;
+pub const LINE_MAX: u32 = 2048;
+pub const RE_DUP_MAX: u32 = 255;
+pub const IOV_MAX: u32 = 1024;
+pub const NZERO: u32 = 20;
+pub const TTY_NAME_MAX: u32 = 260;
+pub const LOGIN_NAME_MAX: u32 = 32;
+pub const HOST_NAME_MAX: u32 = 255;
+pub const _MAXCOMLEN: u32 = 24;
+pub const TIMEOUT_PROC: u32 = 1;
+pub const TIMEOUT_ONQUEUE: u32 = 2;
+pub const TIMEOUT_INITIALIZED: u32 = 4;
+pub const TIMEOUT_TRIGGERED: u32 = 8;
+pub const TIMEOUT_MPSAFE: u32 = 16;
+pub const IPPROTO_IP: u32 = 0;
+pub const IPPROTO_HOPOPTS: u32 = 0;
+pub const IPPROTO_ICMP: u32 = 1;
+pub const IPPROTO_IGMP: u32 = 2;
+pub const IPPROTO_GGP: u32 = 3;
+pub const IPPROTO_IPIP: u32 = 4;
+pub const IPPROTO_IPV4: u32 = 4;
+pub const IPPROTO_TCP: u32 = 6;
+pub const IPPROTO_EGP: u32 = 8;
+pub const IPPROTO_PUP: u32 = 12;
+pub const IPPROTO_UDP: u32 = 17;
+pub const IPPROTO_IDP: u32 = 22;
+pub const IPPROTO_TP: u32 = 29;
+pub const IPPROTO_IPV6: u32 = 41;
+pub const IPPROTO_ROUTING: u32 = 43;
+pub const IPPROTO_FRAGMENT: u32 = 44;
+pub const IPPROTO_RSVP: u32 = 46;
+pub const IPPROTO_GRE: u32 = 47;
+pub const IPPROTO_ESP: u32 = 50;
+pub const IPPROTO_AH: u32 = 51;
+pub const IPPROTO_MOBILE: u32 = 55;
+pub const IPPROTO_ICMPV6: u32 = 58;
+pub const IPPROTO_NONE: u32 = 59;
+pub const IPPROTO_DSTOPTS: u32 = 60;
+pub const IPPROTO_EON: u32 = 80;
+pub const IPPROTO_ETHERIP: u32 = 97;
+pub const IPPROTO_ENCAP: u32 = 98;
+pub const IPPROTO_PIM: u32 = 103;
+pub const IPPROTO_IPCOMP: u32 = 108;
+pub const IPPROTO_CARP: u32 = 112;
+pub const IPPROTO_SCTP: u32 = 132;
+pub const IPPROTO_UDPLITE: u32 = 136;
+pub const IPPROTO_MPLS: u32 = 137;
+pub const IPPROTO_PFSYNC: u32 = 240;
+pub const IPPROTO_RAW: u32 = 255;
+pub const IPPROTO_MAX: u32 = 256;
+pub const IPPROTO_DIVERT: u32 = 258;
+pub const IPPORT_RESERVED: u32 = 1024;
+pub const IPPORT_USERRESERVED: u32 = 49151;
+pub const IPPORT_HIFIRSTAUTO: u32 = 49152;
+pub const IPPORT_HILASTAUTO: u32 = 65535;
+pub const IPPROTO_DONE: u32 = 257;
+pub const IN_CLASSA_NSHIFT: u32 = 24;
+pub const IN_CLASSA_MAX: u32 = 128;
+pub const IN_CLASSB_NSHIFT: u32 = 16;
+pub const IN_CLASSB_MAX: u32 = 65536;
+pub const IN_CLASSC_NSHIFT: u32 = 8;
+pub const IN_CLASSD_NSHIFT: u32 = 28;
+pub const IN_RFC3021_NSHIFT: u32 = 31;
+pub const IN_LOOPBACKNET: u32 = 127;
+pub const IP_OPTIONS: u32 = 1;
+pub const IP_HDRINCL: u32 = 2;
+pub const IP_TOS: u32 = 3;
+pub const IP_TTL: u32 = 4;
+pub const IP_RECVOPTS: u32 = 5;
+pub const IP_RECVRETOPTS: u32 = 6;
+pub const IP_RECVDSTADDR: u32 = 7;
+pub const IP_RETOPTS: u32 = 8;
+pub const IP_MULTICAST_IF: u32 = 9;
+pub const IP_MULTICAST_TTL: u32 = 10;
+pub const IP_MULTICAST_LOOP: u32 = 11;
+pub const IP_ADD_MEMBERSHIP: u32 = 12;
+pub const IP_DROP_MEMBERSHIP: u32 = 13;
+pub const IP_PORTRANGE: u32 = 19;
+pub const IP_AUTH_LEVEL: u32 = 20;
+pub const IP_ESP_TRANS_LEVEL: u32 = 21;
+pub const IP_ESP_NETWORK_LEVEL: u32 = 22;
+pub const IP_IPSEC_LOCAL_ID: u32 = 23;
+pub const IP_IPSEC_REMOTE_ID: u32 = 24;
+pub const IP_IPSEC_LOCAL_CRED: u32 = 25;
+pub const IP_IPSEC_REMOTE_CRED: u32 = 26;
+pub const IP_IPSEC_LOCAL_AUTH: u32 = 27;
+pub const IP_IPSEC_REMOTE_AUTH: u32 = 28;
+pub const IP_IPCOMP_LEVEL: u32 = 29;
+pub const IP_RECVIF: u32 = 30;
+pub const IP_RECVTTL: u32 = 31;
+pub const IP_MINTTL: u32 = 32;
+pub const IP_RECVDSTPORT: u32 = 33;
+pub const IP_PIPEX: u32 = 34;
+pub const IP_RECVRTABLE: u32 = 35;
+pub const IP_IPSECFLOWINFO: u32 = 36;
+pub const IP_IPDEFTTL: u32 = 37;
+pub const IP_SENDSRCADDR: u32 = 7;
+pub const IP_RTABLE: u32 = 4129;
+pub const IPSEC_LEVEL_BYPASS: u32 = 0;
+pub const IPSEC_LEVEL_NONE: u32 = 0;
+pub const IPSEC_LEVEL_AVAIL: u32 = 1;
+pub const IPSEC_LEVEL_USE: u32 = 2;
+pub const IPSEC_LEVEL_REQUIRE: u32 = 3;
+pub const IPSEC_LEVEL_UNIQUE: u32 = 4;
+pub const IPSEC_LEVEL_DEFAULT: u32 = 1;
+pub const IPSEC_AUTH_LEVEL_DEFAULT: u32 = 1;
+pub const IPSEC_ESP_TRANS_LEVEL_DEFAULT: u32 = 1;
+pub const IPSEC_ESP_NETWORK_LEVEL_DEFAULT: u32 = 1;
+pub const IPSEC_IPCOMP_LEVEL_DEFAULT: u32 = 1;
+pub const IP_DEFAULT_MULTICAST_TTL: u32 = 1;
+pub const IP_DEFAULT_MULTICAST_LOOP: u32 = 1;
+pub const IP_MIN_MEMBERSHIPS: u32 = 15;
+pub const IP_MAX_MEMBERSHIPS: u32 = 4095;
+pub const IP_PORTRANGE_DEFAULT: u32 = 0;
+pub const IP_PORTRANGE_HIGH: u32 = 1;
+pub const IP_PORTRANGE_LOW: u32 = 2;
+pub const INET_ADDRSTRLEN: u32 = 16;
+pub const IPPROTO_MAXID: u32 = 259;
+pub const IPCTL_FORWARDING: u32 = 1;
+pub const IPCTL_SENDREDIRECTS: u32 = 2;
+pub const IPCTL_DEFTTL: u32 = 3;
+pub const IPCTL_SOURCEROUTE: u32 = 5;
+pub const IPCTL_DIRECTEDBCAST: u32 = 6;
+pub const IPCTL_IPPORT_FIRSTAUTO: u32 = 7;
+pub const IPCTL_IPPORT_LASTAUTO: u32 = 8;
+pub const IPCTL_IPPORT_HIFIRSTAUTO: u32 = 9;
+pub const IPCTL_IPPORT_HILASTAUTO: u32 = 10;
+pub const IPCTL_IPPORT_MAXQUEUE: u32 = 11;
+pub const IPCTL_ENCDEBUG: u32 = 12;
+pub const IPCTL_IPSEC_STATS: u32 = 13;
+pub const IPCTL_IPSEC_EXPIRE_ACQUIRE: u32 = 14;
+pub const IPCTL_IPSEC_EMBRYONIC_SA_TIMEOUT: u32 = 15;
+pub const IPCTL_IPSEC_REQUIRE_PFS: u32 = 16;
+pub const IPCTL_IPSEC_SOFT_ALLOCATIONS: u32 = 17;
+pub const IPCTL_IPSEC_ALLOCATIONS: u32 = 18;
+pub const IPCTL_IPSEC_SOFT_BYTES: u32 = 19;
+pub const IPCTL_IPSEC_BYTES: u32 = 20;
+pub const IPCTL_IPSEC_TIMEOUT: u32 = 21;
+pub const IPCTL_IPSEC_SOFT_TIMEOUT: u32 = 22;
+pub const IPCTL_IPSEC_SOFT_FIRSTUSE: u32 = 23;
+pub const IPCTL_IPSEC_FIRSTUSE: u32 = 24;
+pub const IPCTL_IPSEC_ENC_ALGORITHM: u32 = 25;
+pub const IPCTL_IPSEC_AUTH_ALGORITHM: u32 = 26;
+pub const IPCTL_MTUDISC: u32 = 27;
+pub const IPCTL_MTUDISCTIMEOUT: u32 = 28;
+pub const IPCTL_IPSEC_IPCOMP_ALGORITHM: u32 = 29;
+pub const IPCTL_IFQUEUE: u32 = 30;
+pub const IPCTL_MFORWARDING: u32 = 31;
+pub const IPCTL_MULTIPATH: u32 = 32;
+pub const IPCTL_STATS: u32 = 33;
+pub const IPCTL_MRTPROTO: u32 = 34;
+pub const IPCTL_MRTSTATS: u32 = 35;
+pub const IPCTL_ARPQUEUED: u32 = 36;
+pub const IPCTL_MRTMFC: u32 = 37;
+pub const IPCTL_MRTVIF: u32 = 38;
+pub const IPCTL_ARPTIMEOUT: u32 = 39;
+pub const IPCTL_ARPDOWN: u32 = 40;
+pub const IPCTL_ARPQUEUE: u32 = 41;
+pub const IPCTL_MAXID: u32 = 42;
+pub const INET6_ADDRSTRLEN: u32 = 46;
+pub const __IPV6_ADDR_SCOPE_NODELOCAL: u32 = 1;
+pub const __IPV6_ADDR_SCOPE_INTFACELOCAL: u32 = 1;
+pub const __IPV6_ADDR_SCOPE_LINKLOCAL: u32 = 2;
+pub const __IPV6_ADDR_SCOPE_SITELOCAL: u32 = 5;
+pub const __IPV6_ADDR_SCOPE_ORGLOCAL: u32 = 8;
+pub const __IPV6_ADDR_SCOPE_GLOBAL: u32 = 14;
+pub const IPV6_UNICAST_HOPS: u32 = 4;
+pub const IPV6_MULTICAST_IF: u32 = 9;
+pub const IPV6_MULTICAST_HOPS: u32 = 10;
+pub const IPV6_MULTICAST_LOOP: u32 = 11;
+pub const IPV6_JOIN_GROUP: u32 = 12;
+pub const IPV6_LEAVE_GROUP: u32 = 13;
+pub const IPV6_PORTRANGE: u32 = 14;
+pub const ICMP6_FILTER: u32 = 18;
+pub const IPV6_CHECKSUM: u32 = 26;
+pub const IPV6_V6ONLY: u32 = 27;
+pub const IPV6_RTHDRDSTOPTS: u32 = 35;
+pub const IPV6_RECVPKTINFO: u32 = 36;
+pub const IPV6_RECVHOPLIMIT: u32 = 37;
+pub const IPV6_RECVRTHDR: u32 = 38;
+pub const IPV6_RECVHOPOPTS: u32 = 39;
+pub const IPV6_RECVDSTOPTS: u32 = 40;
+pub const IPV6_USE_MIN_MTU: u32 = 42;
+pub const IPV6_RECVPATHMTU: u32 = 43;
+pub const IPV6_PATHMTU: u32 = 44;
+pub const IPV6_PKTINFO: u32 = 46;
+pub const IPV6_HOPLIMIT: u32 = 47;
+pub const IPV6_NEXTHOP: u32 = 48;
+pub const IPV6_HOPOPTS: u32 = 49;
+pub const IPV6_DSTOPTS: u32 = 50;
+pub const IPV6_RTHDR: u32 = 51;
+pub const IPV6_AUTH_LEVEL: u32 = 53;
+pub const IPV6_ESP_TRANS_LEVEL: u32 = 54;
+pub const IPV6_ESP_NETWORK_LEVEL: u32 = 55;
+pub const IPSEC6_OUTSA: u32 = 56;
+pub const IPV6_RECVTCLASS: u32 = 57;
+pub const IPV6_AUTOFLOWLABEL: u32 = 59;
+pub const IPV6_IPCOMP_LEVEL: u32 = 60;
+pub const IPV6_TCLASS: u32 = 61;
+pub const IPV6_DONTFRAG: u32 = 62;
+pub const IPV6_PIPEX: u32 = 63;
+pub const IPV6_RECVDSTPORT: u32 = 64;
+pub const IPV6_MINHOPCOUNT: u32 = 65;
+pub const IPV6_RTABLE: u32 = 4129;
+pub const IPV6_RTHDR_LOOSE: u32 = 0;
+pub const IPV6_RTHDR_TYPE_0: u32 = 0;
+pub const IPV6_DEFAULT_MULTICAST_HOPS: u32 = 1;
+pub const IPV6_DEFAULT_MULTICAST_LOOP: u32 = 1;
+pub const IPV6_PORTRANGE_DEFAULT: u32 = 0;
+pub const IPV6_PORTRANGE_HIGH: u32 = 1;
+pub const IPV6_PORTRANGE_LOW: u32 = 2;
+pub const IPV6PROTO_MAXID: u32 = 259;
+pub const IPV6CTL_FORWARDING: u32 = 1;
+pub const IPV6CTL_SENDREDIRECTS: u32 = 2;
+pub const IPV6CTL_DEFHLIM: u32 = 3;
+pub const IPV6CTL_FORWSRCRT: u32 = 5;
+pub const IPV6CTL_STATS: u32 = 6;
+pub const IPV6CTL_MRTSTATS: u32 = 7;
+pub const IPV6CTL_MRTPROTO: u32 = 8;
+pub const IPV6CTL_MAXFRAGPACKETS: u32 = 9;
+pub const IPV6CTL_SOURCECHECK: u32 = 10;
+pub const IPV6CTL_SOURCECHECK_LOGINT: u32 = 11;
+pub const IPV6CTL_ACCEPT_RTADV: u32 = 12;
+pub const IPV6CTL_LOG_INTERVAL: u32 = 14;
+pub const IPV6CTL_HDRNESTLIMIT: u32 = 15;
+pub const IPV6CTL_DAD_COUNT: u32 = 16;
+pub const IPV6CTL_AUTO_FLOWLABEL: u32 = 17;
+pub const IPV6CTL_DEFMCASTHLIM: u32 = 18;
+pub const IPV6CTL_USE_DEPRECATED: u32 = 21;
+pub const IPV6CTL_MAXFRAGS: u32 = 41;
+pub const IPV6CTL_MFORWARDING: u32 = 42;
+pub const IPV6CTL_MULTIPATH: u32 = 43;
+pub const IPV6CTL_MCAST_PMTU: u32 = 44;
+pub const IPV6CTL_NEIGHBORGCTHRESH: u32 = 45;
+pub const IPV6CTL_MAXDYNROUTES: u32 = 48;
+pub const IPV6CTL_DAD_PENDING: u32 = 49;
+pub const IPV6CTL_MTUDISCTIMEOUT: u32 = 50;
+pub const IPV6CTL_IFQUEUE: u32 = 51;
+pub const IPV6CTL_MRTMIF: u32 = 52;
+pub const IPV6CTL_MRTMFC: u32 = 53;
+pub const IPV6CTL_SOIIKEY: u32 = 54;
+pub const IPV6CTL_MAXID: u32 = 55;
+pub const RNF_NORMAL: u32 = 1;
+pub const RNF_ROOT: u32 = 2;
+pub const RNF_ACTIVE: u32 = 4;
+pub const RTF_UP: u32 = 1;
+pub const RTF_GATEWAY: u32 = 2;
+pub const RTF_HOST: u32 = 4;
+pub const RTF_REJECT: u32 = 8;
+pub const RTF_DYNAMIC: u32 = 16;
+pub const RTF_MODIFIED: u32 = 32;
+pub const RTF_DONE: u32 = 64;
+pub const RTF_CLONING: u32 = 256;
+pub const RTF_MULTICAST: u32 = 512;
+pub const RTF_LLINFO: u32 = 1024;
+pub const RTF_STATIC: u32 = 2048;
+pub const RTF_BLACKHOLE: u32 = 4096;
+pub const RTF_PROTO3: u32 = 8192;
+pub const RTF_PROTO2: u32 = 16384;
+pub const RTF_ANNOUNCE: u32 = 16384;
+pub const RTF_PROTO1: u32 = 32768;
+pub const RTF_CLONED: u32 = 65536;
+pub const RTF_CACHED: u32 = 131072;
+pub const RTF_MPATH: u32 = 262144;
+pub const RTF_MPLS: u32 = 1048576;
+pub const RTF_LOCAL: u32 = 2097152;
+pub const RTF_BROADCAST: u32 = 4194304;
+pub const RTF_CONNECTED: u32 = 8388608;
+pub const RTF_BFD: u32 = 16777216;
+pub const RTF_FMASK: u32 = 17890312;
+pub const RTP_NONE: u32 = 0;
+pub const RTP_LOCAL: u32 = 1;
+pub const RTP_CONNECTED: u32 = 4;
+pub const RTP_STATIC: u32 = 8;
+pub const RTP_EIGRP: u32 = 28;
+pub const RTP_OSPF: u32 = 32;
+pub const RTP_ISIS: u32 = 36;
+pub const RTP_RIP: u32 = 40;
+pub const RTP_BGP: u32 = 48;
+pub const RTP_DEFAULT: u32 = 56;
+pub const RTP_PROPOSAL_STATIC: u32 = 57;
+pub const RTP_PROPOSAL_DHCLIENT: u32 = 58;
+pub const RTP_PROPOSAL_SLAAC: u32 = 59;
+pub const RTP_PROPOSAL_UMB: u32 = 60;
+pub const RTP_PROPOSAL_PPP: u32 = 61;
+pub const RTP_PROPOSAL_SOLICIT: u32 = 62;
+pub const RTP_MAX: u32 = 63;
+pub const RTP_ANY: u32 = 64;
+pub const RTP_MASK: u32 = 127;
+pub const RTP_DOWN: u32 = 128;
+pub const RTM_VERSION: u32 = 5;
+pub const RTM_MAXSIZE: u32 = 2048;
+pub const RTM_ADD: u32 = 1;
+pub const RTM_DELETE: u32 = 2;
+pub const RTM_CHANGE: u32 = 3;
+pub const RTM_GET: u32 = 4;
+pub const RTM_LOSING: u32 = 5;
+pub const RTM_REDIRECT: u32 = 6;
+pub const RTM_MISS: u32 = 7;
+pub const RTM_RESOLVE: u32 = 11;
+pub const RTM_NEWADDR: u32 = 12;
+pub const RTM_DELADDR: u32 = 13;
+pub const RTM_IFINFO: u32 = 14;
+pub const RTM_IFANNOUNCE: u32 = 15;
+pub const RTM_DESYNC: u32 = 16;
+pub const RTM_INVALIDATE: u32 = 17;
+pub const RTM_BFD: u32 = 18;
+pub const RTM_PROPOSAL: u32 = 19;
+pub const RTM_CHGADDRATTR: u32 = 20;
+pub const RTM_80211INFO: u32 = 21;
+pub const RTM_SOURCE: u32 = 22;
+pub const RTV_MTU: u32 = 1;
+pub const RTV_HOPCOUNT: u32 = 2;
+pub const RTV_EXPIRE: u32 = 4;
+pub const RTV_RPIPE: u32 = 8;
+pub const RTV_SPIPE: u32 = 16;
+pub const RTV_SSTHRESH: u32 = 32;
+pub const RTV_RTT: u32 = 64;
+pub const RTV_RTTVAR: u32 = 128;
+pub const RTA_DST: u32 = 1;
+pub const RTA_GATEWAY: u32 = 2;
+pub const RTA_NETMASK: u32 = 4;
+pub const RTA_GENMASK: u32 = 8;
+pub const RTA_IFP: u32 = 16;
+pub const RTA_IFA: u32 = 32;
+pub const RTA_AUTHOR: u32 = 64;
+pub const RTA_BRD: u32 = 128;
+pub const RTA_SRC: u32 = 256;
+pub const RTA_SRCMASK: u32 = 512;
+pub const RTA_LABEL: u32 = 1024;
+pub const RTA_BFD: u32 = 2048;
+pub const RTA_DNS: u32 = 4096;
+pub const RTA_STATIC: u32 = 8192;
+pub const RTA_SEARCH: u32 = 16384;
+pub const RTAX_DST: u32 = 0;
+pub const RTAX_GATEWAY: u32 = 1;
+pub const RTAX_NETMASK: u32 = 2;
+pub const RTAX_GENMASK: u32 = 3;
+pub const RTAX_IFP: u32 = 4;
+pub const RTAX_IFA: u32 = 5;
+pub const RTAX_AUTHOR: u32 = 6;
+pub const RTAX_BRD: u32 = 7;
+pub const RTAX_SRC: u32 = 8;
+pub const RTAX_SRCMASK: u32 = 9;
+pub const RTAX_LABEL: u32 = 10;
+pub const RTAX_BFD: u32 = 11;
+pub const RTAX_DNS: u32 = 12;
+pub const RTAX_STATIC: u32 = 13;
+pub const RTAX_SEARCH: u32 = 14;
+pub const RTAX_MAX: u32 = 15;
+pub const ROUTE_MSGFILTER: u32 = 1;
+pub const ROUTE_TABLEFILTER: u32 = 2;
+pub const ROUTE_PRIOFILTER: u32 = 3;
+pub const ROUTE_FLAGFILTER: u32 = 4;
+pub const RTABLE_ANY: u32 = 4294967295;
+pub const RTLABEL_LEN: u32 = 32;
+pub const RTDNS_LEN: u32 = 128;
+pub const RTSTATIC_LEN: u32 = 128;
+pub const RTSEARCH_LEN: u32 = 128;
+pub const PF_MD5_DIGEST_LENGTH: u32 = 16;
+pub const PFTM_TCP_FIRST_PACKET_VAL: u32 = 120;
+pub const PFTM_TCP_OPENING_VAL: u32 = 30;
+pub const PFTM_TCP_ESTABLISHED_VAL: u32 = 86400;
+pub const PFTM_TCP_CLOSING_VAL: u32 = 900;
+pub const PFTM_TCP_FIN_WAIT_VAL: u32 = 45;
+pub const PFTM_TCP_CLOSED_VAL: u32 = 90;
+pub const PFTM_UDP_FIRST_PACKET_VAL: u32 = 60;
+pub const PFTM_UDP_SINGLE_VAL: u32 = 30;
+pub const PFTM_UDP_MULTIPLE_VAL: u32 = 60;
+pub const PFTM_ICMP_FIRST_PACKET_VAL: u32 = 20;
+pub const PFTM_ICMP_ERROR_REPLY_VAL: u32 = 10;
+pub const PFTM_OTHER_FIRST_PACKET_VAL: u32 = 60;
+pub const PFTM_OTHER_SINGLE_VAL: u32 = 30;
+pub const PFTM_OTHER_MULTIPLE_VAL: u32 = 60;
+pub const PFTM_FRAG_VAL: u32 = 60;
+pub const PFTM_INTERVAL_VAL: u32 = 10;
+pub const PFTM_SRC_NODE_VAL: u32 = 0;
+pub const PFTM_TS_DIFF_VAL: u32 = 30;
+pub const PF_FRAG_STALE: u32 = 200;
+pub const PF_FRAG_ENTRY_POINTS: u32 = 16;
+pub const PF_FRAG_ENTRY_LIMIT: u32 = 64;
+pub const PF_POOL_IDMASK: u32 = 15;
+pub const PF_POOL_TYPEMASK: u32 = 15;
+pub const PF_POOL_STICKYADDR: u32 = 32;
+pub const PF_WSCALE_FLAG: u32 = 128;
+pub const PF_WSCALE_MASK: u32 = 15;
+pub const PF_LOG: u32 = 1;
+pub const PF_LOG_ALL: u32 = 2;
+pub const PF_LOG_USER: u32 = 4;
+pub const PF_LOG_FORCE: u32 = 8;
+pub const PF_LOG_MATCHES: u32 = 16;
+pub const PF_TABLE_NAME_SIZE: u32 = 32;
+pub const PFI_AFLAG_NETWORK: u32 = 1;
+pub const PFI_AFLAG_BROADCAST: u32 = 2;
+pub const PFI_AFLAG_PEER: u32 = 4;
+pub const PFI_AFLAG_MODEMASK: u32 = 7;
+pub const PFI_AFLAG_NOALIAS: u32 = 8;
+pub const PF_DEBUGNAME: &[u8; 5] = b"pf: \0";
+pub const PF_THRESHOLD_MULT: u32 = 1000;
+pub const PF_THRESHOLD_MAX: u32 = 4294967;
+pub const PF_OSFP_EXPANDED: u32 = 1;
+pub const PF_OSFP_GENERIC: u32 = 2;
+pub const PF_OSFP_NODETAIL: u32 = 4;
+pub const PF_OSFP_LEN: u32 = 32;
+pub const _FP_RESERVED_BIT: u32 = 1;
+pub const _FP_UNUSED_BITS: u32 = 1;
+pub const _FP_CLASS_BITS: u32 = 10;
+pub const _FP_VERSION_BITS: u32 = 10;
+pub const _FP_SUBTYPE_BITS: u32 = 10;
+pub const PF_OSFP_WSIZE_MOD: u32 = 1;
+pub const PF_OSFP_WSIZE_DC: u32 = 2;
+pub const PF_OSFP_WSIZE_MSS: u32 = 4;
+pub const PF_OSFP_WSIZE_MTU: u32 = 8;
+pub const PF_OSFP_PSIZE_MOD: u32 = 16;
+pub const PF_OSFP_PSIZE_DC: u32 = 32;
+pub const PF_OSFP_WSCALE: u32 = 64;
+pub const PF_OSFP_WSCALE_MOD: u32 = 128;
+pub const PF_OSFP_WSCALE_DC: u32 = 256;
+pub const PF_OSFP_MSS: u32 = 512;
+pub const PF_OSFP_MSS_MOD: u32 = 1024;
+pub const PF_OSFP_MSS_DC: u32 = 2048;
+pub const PF_OSFP_DF: u32 = 4096;
+pub const PF_OSFP_TS0: u32 = 8192;
+pub const PF_OSFP_INET6: u32 = 16384;
+pub const PF_OSFP_MAXTTL_OFFSET: u32 = 40;
+pub const PF_OSFP_TCPOPT_NOP: u32 = 0;
+pub const PF_OSFP_TCPOPT_WSCALE: u32 = 1;
+pub const PF_OSFP_TCPOPT_MSS: u32 = 2;
+pub const PF_OSFP_TCPOPT_SACK: u32 = 3;
+pub const PF_OSFP_TCPOPT_TS: u32 = 4;
+pub const PF_OSFP_TCPOPT_BITS: u32 = 3;
+pub const PF_ANCHOR_STACK_MAX: u32 = 64;
+pub const PF_ANCHOR_NAME_SIZE: u32 = 64;
+pub const PF_ANCHOR_MAXPATH: u32 = 959;
+pub const PF_ANCHOR_HIWAT: u32 = 512;
+pub const PF_OPTIMIZER_TABLE_PFX: &[u8; 13] = b"__automatic_\0";
+pub const PF_SKIP_IFP: u32 = 0;
+pub const PF_SKIP_DIR: u32 = 1;
+pub const PF_SKIP_RDOM: u32 = 2;
+pub const PF_SKIP_AF: u32 = 3;
+pub const PF_SKIP_PROTO: u32 = 4;
+pub const PF_SKIP_SRC_ADDR: u32 = 5;
+pub const PF_SKIP_DST_ADDR: u32 = 6;
+pub const PF_SKIP_SRC_PORT: u32 = 7;
+pub const PF_SKIP_DST_PORT: u32 = 8;
+pub const PF_SKIP_COUNT: u32 = 9;
+pub const PF_RULE_LABEL_SIZE: u32 = 64;
+pub const PF_QNAME_SIZE: u32 = 64;
+pub const PF_TAG_NAME_SIZE: u32 = 64;
+pub const PF_STATE_NORMAL: u32 = 1;
+pub const PF_STATE_MODULATE: u32 = 2;
+pub const PF_STATE_SYNPROXY: u32 = 3;
+pub const PF_FLUSH: u32 = 1;
+pub const PF_FLUSH_GLOBAL: u32 = 2;
+pub const PFRULE_DROP: u32 = 0;
+pub const PFRULE_RETURNRST: u32 = 1;
+pub const PFRULE_FRAGMENT: u32 = 2;
+pub const PFRULE_RETURNICMP: u32 = 4;
+pub const PFRULE_RETURN: u32 = 8;
+pub const PFRULE_NOSYNC: u32 = 16;
+pub const PFRULE_SRCTRACK: u32 = 32;
+pub const PFRULE_RULESRCTRACK: u32 = 64;
+pub const PFRULE_SETDELAY: u32 = 128;
+pub const PFRULE_IFBOUND: u32 = 65536;
+pub const PFRULE_STATESLOPPY: u32 = 131072;
+pub const PFRULE_PFLOW: u32 = 262144;
+pub const PFRULE_ONCE: u32 = 1048576;
+pub const PFRULE_AFTO: u32 = 2097152;
+pub const PFRULE_EXPIRED: u32 = 4194304;
+pub const PFSTATE_HIWAT: u32 = 100000;
+pub const PFSTATE_ADAPT_START: u32 = 60000;
+pub const PFSTATE_ADAPT_END: u32 = 120000;
+pub const PF_PKTDELAY_MAXPKTS: u32 = 10000;
+pub const PFSNODE_HIWAT: u32 = 10000;
+pub const PFSS_TIMESTAMP: u32 = 1;
+pub const PFSS_PAWS: u32 = 16;
+pub const PFSS_PAWS_IDLED: u32 = 32;
+pub const PFSS_DATA_TS: u32 = 64;
+pub const PFSS_DATA_NOTS: u32 = 128;
+pub const PFSTATE_ALLOWOPTS: u32 = 1;
+pub const PFSTATE_SLOPPY: u32 = 2;
+pub const PFSTATE_PFLOW: u32 = 4;
+pub const PFSTATE_NOSYNC: u32 = 8;
+pub const PFSTATE_ACK: u32 = 16;
+pub const PFSTATE_NODF: u32 = 32;
+pub const PFSTATE_SETTOS: u32 = 64;
+pub const PFSTATE_RANDOMID: u32 = 128;
+pub const PFSTATE_SCRUB_TCP: u32 = 256;
+pub const PFSTATE_SETPRIO: u32 = 512;
+pub const PFSTATE_INP_UNLINKED: u32 = 1024;
+pub const PFSTATE_SCRUBMASK: u32 = 416;
+pub const PFSTATE_SETMASK: u32 = 576;
+pub const PFSYNC_SCRUB_FLAG_VALID: u32 = 1;
+pub const PFSYNC_FLAG_SRCNODE: u32 = 4;
+pub const PFSYNC_FLAG_NATSRCNODE: u32 = 8;
+pub const PF_RESERVED_ANCHOR: &[u8; 4] = b"_pf\0";
+pub const PFR_TFLAG_PERSIST: u32 = 1;
+pub const PFR_TFLAG_CONST: u32 = 2;
+pub const PFR_TFLAG_ACTIVE: u32 = 4;
+pub const PFR_TFLAG_INACTIVE: u32 = 8;
+pub const PFR_TFLAG_REFERENCED: u32 = 16;
+pub const PFR_TFLAG_REFDANCHOR: u32 = 32;
+pub const PFR_TFLAG_COUNTERS: u32 = 64;
+pub const PFR_TFLAG_USRMASK: u32 = 67;
+pub const PFR_TFLAG_SETMASK: u32 = 60;
+pub const PFR_TFLAG_ALLMASK: u32 = 127;
+pub const PFRKE_FLAG_NOT: u32 = 1;
+pub const PFRKE_FLAG_MARK: u32 = 2;
+pub const PFI_IFLAG_SKIP: u32 = 256;
+pub const PFI_IFLAG_ANY: u32 = 512;
+pub const PF_DPORT_RANGE: u32 = 1;
+pub const PF_RPORT_RANGE: u32 = 2;
+pub const PFRES_MATCH: u32 = 0;
+pub const PFRES_BADOFF: u32 = 1;
+pub const PFRES_FRAG: u32 = 2;
+pub const PFRES_SHORT: u32 = 3;
+pub const PFRES_NORM: u32 = 4;
+pub const PFRES_MEMORY: u32 = 5;
+pub const PFRES_TS: u32 = 6;
+pub const PFRES_CONGEST: u32 = 7;
+pub const PFRES_IPOPTIONS: u32 = 8;
+pub const PFRES_PROTCKSUM: u32 = 9;
+pub const PFRES_BADSTATE: u32 = 10;
+pub const PFRES_STATEINS: u32 = 11;
+pub const PFRES_MAXSTATES: u32 = 12;
+pub const PFRES_SRCLIMIT: u32 = 13;
+pub const PFRES_SYNPROXY: u32 = 14;
+pub const PFRES_TRANSLATE: u32 = 15;
+pub const PFRES_NOROUTE: u32 = 16;
+pub const PFRES_MAX: u32 = 17;
+pub const LCNT_STATES: u32 = 0;
+pub const LCNT_SRCSTATES: u32 = 1;
+pub const LCNT_SRCNODES: u32 = 2;
+pub const LCNT_SRCCONN: u32 = 3;
+pub const LCNT_SRCCONNRATE: u32 = 4;
+pub const LCNT_OVERLOAD_TABLE: u32 = 5;
+pub const LCNT_OVERLOAD_FLUSH: u32 = 6;
+pub const LCNT_SYNFLOODS: u32 = 7;
+pub const LCNT_SYNCOOKIES_SENT: u32 = 8;
+pub const LCNT_SYNCOOKIES_VALID: u32 = 9;
+pub const LCNT_MAX: u32 = 10;
+pub const PFUDPS_NO_TRAFFIC: u32 = 0;
+pub const PFUDPS_SINGLE: u32 = 1;
+pub const PFUDPS_MULTIPLE: u32 = 2;
+pub const PFUDPS_NSTATES: u32 = 3;
+pub const PFOTHERS_NO_TRAFFIC: u32 = 0;
+pub const PFOTHERS_SINGLE: u32 = 1;
+pub const PFOTHERS_MULTIPLE: u32 = 2;
+pub const PFOTHERS_NSTATES: u32 = 3;
+pub const FCNT_STATE_SEARCH: u32 = 0;
+pub const FCNT_STATE_INSERT: u32 = 1;
+pub const FCNT_STATE_REMOVALS: u32 = 2;
+pub const FCNT_MAX: u32 = 3;
+pub const SCNT_SRC_NODE_SEARCH: u32 = 0;
+pub const SCNT_SRC_NODE_INSERT: u32 = 1;
+pub const SCNT_SRC_NODE_REMOVALS: u32 = 2;
+pub const SCNT_MAX: u32 = 3;
+pub const PF_REASS_ENABLED: u32 = 1;
+pub const PF_REASS_NODF: u32 = 2;
+pub const PF_SYNCOOKIES_NEVER: u32 = 0;
+pub const PF_SYNCOOKIES_ALWAYS: u32 = 1;
+pub const PF_SYNCOOKIES_ADAPTIVE: u32 = 2;
+pub const PF_SYNCOOKIES_MODE_MAX: u32 = 2;
+pub const PF_SYNCOOKIES_HIWATPCT: u32 = 25;
+pub const PF_SYNCOOKIES_LOWATPCT: u32 = 12;
+pub const PF_PRIO_ZERO: u32 = 255;
+pub const PFQS_FLOWQUEUE: u32 = 1;
+pub const PFQS_ROOTCLASS: u32 = 2;
+pub const PFQS_DEFAULT: u32 = 4096;
+pub const PFR_KTABLE_HIWAT: u32 = 1000;
+pub const PFR_KENTRY_HIWAT: u32 = 200000;
+pub const PFR_KENTRY_HIWAT_SMALL: u32 = 100000;
+pub const PFR_FLAG_DUMMY: u32 = 2;
+pub const PFR_FLAG_FEEDBACK: u32 = 4;
+pub const PFR_FLAG_CLSTATS: u32 = 8;
+pub const PFR_FLAG_ADDRSTOO: u32 = 16;
+pub const PFR_FLAG_REPLACE: u32 = 32;
+pub const PFR_FLAG_ALLRSETS: u32 = 64;
+pub const PFR_FLAG_ALLMASK: u32 = 127;
+pub type __int8_t = ::std::os::raw::c_schar;
+pub type __uint8_t = ::std::os::raw::c_uchar;
+pub type __int16_t = ::std::os::raw::c_short;
+pub type __uint16_t = ::std::os::raw::c_ushort;
+pub type __int32_t = ::std::os::raw::c_int;
+pub type __uint32_t = ::std::os::raw::c_uint;
+pub type __int64_t = ::std::os::raw::c_longlong;
+pub type __uint64_t = ::std::os::raw::c_ulonglong;
+pub type __int_least8_t = __int8_t;
+pub type __uint_least8_t = __uint8_t;
+pub type __int_least16_t = __int16_t;
+pub type __uint_least16_t = __uint16_t;
+pub type __int_least32_t = __int32_t;
+pub type __uint_least32_t = __uint32_t;
+pub type __int_least64_t = __int64_t;
+pub type __uint_least64_t = __uint64_t;
+pub type __int_fast8_t = __int32_t;
+pub type __uint_fast8_t = __uint32_t;
+pub type __int_fast16_t = __int32_t;
+pub type __uint_fast16_t = __uint32_t;
+pub type __int_fast32_t = __int32_t;
+pub type __uint_fast32_t = __uint32_t;
+pub type __int_fast64_t = __int64_t;
+pub type __uint_fast64_t = __uint64_t;
+pub type __intptr_t = ::std::os::raw::c_long;
+pub type __uintptr_t = ::std::os::raw::c_ulong;
+pub type __intmax_t = __int64_t;
+pub type __uintmax_t = __uint64_t;
+pub type __register_t = ::std::os::raw::c_long;
+pub type __vaddr_t = ::std::os::raw::c_ulong;
+pub type __paddr_t = ::std::os::raw::c_ulong;
+pub type __vsize_t = ::std::os::raw::c_ulong;
+pub type __psize_t = ::std::os::raw::c_ulong;
+pub type __double_t = f64;
+pub type __float_t = f32;
+pub type __ptrdiff_t = ::std::os::raw::c_long;
+pub type __size_t = ::std::os::raw::c_ulong;
+pub type __ssize_t = ::std::os::raw::c_long;
+pub type __va_list = __builtin_va_list;
+pub type __wchar_t = ::std::os::raw::c_int;
+pub type __wint_t = ::std::os::raw::c_int;
+pub type __rune_t = ::std::os::raw::c_int;
+pub type __wctrans_t = *mut ::std::os::raw::c_void;
+pub type __wctype_t = *mut ::std::os::raw::c_void;
+pub type int_least8_t = __int_least8_t;
+pub type uint_least8_t = __uint_least8_t;
+pub type int_least16_t = __int_least16_t;
+pub type uint_least16_t = __uint_least16_t;
+pub type int_least32_t = __int_least32_t;
+pub type uint_least32_t = __uint_least32_t;
+pub type int_least64_t = __int_least64_t;
+pub type uint_least64_t = __uint_least64_t;
+pub type int_fast8_t = __int_fast8_t;
+pub type uint_fast8_t = __uint_fast8_t;
+pub type int_fast16_t = __int_fast16_t;
+pub type uint_fast16_t = __uint_fast16_t;
+pub type int_fast32_t = __int_fast32_t;
+pub type uint_fast32_t = __uint_fast32_t;
+pub type int_fast64_t = __int_fast64_t;
+pub type uint_fast64_t = __uint_fast64_t;
+pub type intmax_t = __intmax_t;
+pub type uintmax_t = __uintmax_t;
+pub type __blkcnt_t = __int64_t;
+pub type __blksize_t = __int32_t;
+pub type __clock_t = __int64_t;
+pub type __clockid_t = __int32_t;
+pub type __cpuid_t = ::std::os::raw::c_ulong;
+pub type __dev_t = __int32_t;
+pub type __fixpt_t = __uint32_t;
+pub type __fsblkcnt_t = __uint64_t;
+pub type __fsfilcnt_t = __uint64_t;
+pub type __gid_t = __uint32_t;
+pub type __id_t = __uint32_t;
+pub type __in_addr_t = __uint32_t;
+pub type __in_port_t = __uint16_t;
+pub type __ino_t = __uint64_t;
+pub type __key_t = ::std::os::raw::c_long;
+pub type __mode_t = __uint32_t;
+pub type __nlink_t = __uint32_t;
+pub type __off_t = __int64_t;
+pub type __pid_t = __int32_t;
+pub type __rlim_t = __uint64_t;
+pub type __sa_family_t = __uint8_t;
+pub type __segsz_t = __int32_t;
+pub type __socklen_t = __uint32_t;
+pub type __suseconds_t = ::std::os::raw::c_long;
+pub type __time_t = __int64_t;
+pub type __timer_t = __int32_t;
+pub type __uid_t = __uint32_t;
+pub type __useconds_t = __uint32_t;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __mbstate_t {
+    pub __mbstate8: [::std::os::raw::c_char; 128usize],
+    pub __mbstateL: __int64_t,
+}
+#[test]
+fn bindgen_test_layout___mbstate_t() {
+    const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<__mbstate_t>(),
+        128usize,
+        concat!("Size of: ", stringify!(__mbstate_t))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<__mbstate_t>(),
+        8usize,
+        concat!("Alignment of ", stringify!(__mbstate_t))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__mbstate8) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__mbstate_t),
+            "::",
+            stringify!(__mbstate8)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__mbstateL) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__mbstate_t),
+            "::",
+            stringify!(__mbstateL)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+    pub iov_base: *mut ::std::os::raw::c_void,
+    pub iov_len: usize,
+}
+#[test]
+fn bindgen_test_layout_iovec() {
+    const UNINIT: ::std::mem::MaybeUninit<iovec> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<iovec>(),
+        16usize,
+        concat!("Size of: ", stringify!(iovec))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<iovec>(),
+        8usize,
+        concat!("Alignment of ", stringify!(iovec))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(iovec),
+            "::",
+            stringify!(iov_base)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(iovec),
+            "::",
+            stringify!(iov_len)
+        )
+    );
+}
+pub const uio_rw_UIO_READ: uio_rw = 0;
+pub const uio_rw_UIO_WRITE: uio_rw = 1;
+pub type uio_rw = ::std::os::raw::c_uint;
+pub const uio_seg_UIO_USERSPACE: uio_seg = 0;
+pub const uio_seg_UIO_SYSSPACE: uio_seg = 1;
+pub type uio_seg = ::std::os::raw::c_uint;
+extern "C" {
+    pub fn preadv(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const iovec,
+        arg3: ::std::os::raw::c_int,
+        arg4: __off_t,
+    ) -> isize;
+}
+extern "C" {
+    pub fn pwritev(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const iovec,
+        arg3: ::std::os::raw::c_int,
+        arg4: __off_t,
+    ) -> isize;
+}
+extern "C" {
+    pub fn readv(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const iovec,
+        arg3: ::std::os::raw::c_int,
+    ) -> isize;
+}
+extern "C" {
+    pub fn writev(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const iovec,
+        arg3: ::std::os::raw::c_int,
+    ) -> isize;
+}
+pub type u_char = ::std::os::raw::c_uchar;
+pub type u_short = ::std::os::raw::c_ushort;
+pub type u_int = ::std::os::raw::c_uint;
+pub type u_long = ::std::os::raw::c_ulong;
+pub type unchar = ::std::os::raw::c_uchar;
+pub type ushort = ::std::os::raw::c_ushort;
+pub type uint = ::std::os::raw::c_uint;
+pub type ulong = ::std::os::raw::c_ulong;
+pub type cpuid_t = __cpuid_t;
+pub type register_t = __register_t;
+pub type u_int8_t = __uint8_t;
+pub type u_int16_t = __uint16_t;
+pub type u_int32_t = __uint32_t;
+pub type u_int64_t = __uint64_t;
+pub type quad_t = __int64_t;
+pub type u_quad_t = __uint64_t;
+pub type vaddr_t = __vaddr_t;
+pub type paddr_t = __paddr_t;
+pub type vsize_t = __vsize_t;
+pub type psize_t = __psize_t;
+pub type blkcnt_t = __blkcnt_t;
+pub type blksize_t = __blksize_t;
+pub type caddr_t = *mut ::std::os::raw::c_char;
+pub type daddr32_t = __int32_t;
+pub type daddr_t = __int64_t;
+pub type dev_t = __dev_t;
+pub type fixpt_t = __fixpt_t;
+pub type gid_t = __gid_t;
+pub type id_t = __id_t;
+pub type ino_t = __ino_t;
+pub type key_t = __key_t;
+pub type mode_t = __mode_t;
+pub type nlink_t = __nlink_t;
+pub type rlim_t = __rlim_t;
+pub type segsz_t = __segsz_t;
+pub type uid_t = __uid_t;
+pub type useconds_t = __useconds_t;
+pub type suseconds_t = __suseconds_t;
+pub type fsblkcnt_t = __fsblkcnt_t;
+pub type fsfilcnt_t = __fsfilcnt_t;
+pub type clock_t = __clock_t;
+pub type clockid_t = __clockid_t;
+pub type pid_t = __pid_t;
+pub type time_t = __time_t;
+pub type timer_t = __timer_t;
+pub type off_t = __off_t;
+extern "C" {
+    pub fn lseek(arg1: ::std::os::raw::c_int, arg2: off_t, arg3: ::std::os::raw::c_int) -> off_t;
+}
+extern "C" {
+    pub fn ftruncate(arg1: ::std::os::raw::c_int, arg2: off_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn truncate(arg1: *const ::std::os::raw::c_char, arg2: off_t) -> ::std::os::raw::c_int;
+}
+pub type socklen_t = __socklen_t;
+pub type sa_family_t = __sa_family_t;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct linger {
+    pub l_onoff: ::std::os::raw::c_int,
+    pub l_linger: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_linger() {
+    const UNINIT: ::std::mem::MaybeUninit<linger> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<linger>(),
+        8usize,
+        concat!("Size of: ", stringify!(linger))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<linger>(),
+        4usize,
+        concat!("Alignment of ", stringify!(linger))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(linger),
+            "::",
+            stringify!(l_onoff)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(linger),
+            "::",
+            stringify!(l_linger)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct timeval {
+    pub tv_sec: time_t,
+    pub tv_usec: suseconds_t,
+}
+#[test]
+fn bindgen_test_layout_timeval() {
+    const UNINIT: ::std::mem::MaybeUninit<timeval> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<timeval>(),
+        16usize,
+        concat!("Size of: ", stringify!(timeval))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<timeval>(),
+        8usize,
+        concat!("Alignment of ", stringify!(timeval))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeval),
+            "::",
+            stringify!(tv_sec)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeval),
+            "::",
+            stringify!(tv_usec)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct splice {
+    pub sp_fd: ::std::os::raw::c_int,
+    pub sp_max: off_t,
+    pub sp_idle: timeval,
+}
+#[test]
+fn bindgen_test_layout_splice() {
+    const UNINIT: ::std::mem::MaybeUninit<splice> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<splice>(),
+        32usize,
+        concat!("Size of: ", stringify!(splice))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<splice>(),
+        8usize,
+        concat!("Alignment of ", stringify!(splice))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sp_fd) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(splice),
+            "::",
+            stringify!(sp_fd)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sp_max) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(splice),
+            "::",
+            stringify!(sp_max)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sp_idle) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(splice),
+            "::",
+            stringify!(sp_idle)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr {
+    pub sa_len: __uint8_t,
+    pub sa_family: sa_family_t,
+    pub sa_data: [::std::os::raw::c_char; 14usize],
+}
+#[test]
+fn bindgen_test_layout_sockaddr() {
+    const UNINIT: ::std::mem::MaybeUninit<sockaddr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockaddr>(),
+        16usize,
+        concat!("Size of: ", stringify!(sockaddr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockaddr>(),
+        1usize,
+        concat!("Alignment of ", stringify!(sockaddr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sa_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr),
+            "::",
+            stringify!(sa_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr),
+            "::",
+            stringify!(sa_family)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr),
+            "::",
+            stringify!(sa_data)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_storage {
+    pub ss_len: __uint8_t,
+    pub ss_family: sa_family_t,
+    pub __ss_pad1: [::std::os::raw::c_uchar; 6usize],
+    pub __ss_pad2: __uint64_t,
+    pub __ss_pad3: [::std::os::raw::c_uchar; 240usize],
+}
+#[test]
+fn bindgen_test_layout_sockaddr_storage() {
+    const UNINIT: ::std::mem::MaybeUninit<sockaddr_storage> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockaddr_storage>(),
+        256usize,
+        concat!("Size of: ", stringify!(sockaddr_storage))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockaddr_storage>(),
+        8usize,
+        concat!("Alignment of ", stringify!(sockaddr_storage))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ss_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_storage),
+            "::",
+            stringify!(ss_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_storage),
+            "::",
+            stringify!(ss_family)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__ss_pad1) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_storage),
+            "::",
+            stringify!(__ss_pad1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__ss_pad2) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_storage),
+            "::",
+            stringify!(__ss_pad2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__ss_pad3) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_storage),
+            "::",
+            stringify!(__ss_pad3)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockpeercred {
+    pub uid: uid_t,
+    pub gid: gid_t,
+    pub pid: pid_t,
+}
+#[test]
+fn bindgen_test_layout_sockpeercred() {
+    const UNINIT: ::std::mem::MaybeUninit<sockpeercred> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockpeercred>(),
+        12usize,
+        concat!("Size of: ", stringify!(sockpeercred))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockpeercred>(),
+        4usize,
+        concat!("Alignment of ", stringify!(sockpeercred))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).uid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockpeercred),
+            "::",
+            stringify!(uid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).gid) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockpeercred),
+            "::",
+            stringify!(gid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pid) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockpeercred),
+            "::",
+            stringify!(pid)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct msghdr {
+    pub msg_name: *mut ::std::os::raw::c_void,
+    pub msg_namelen: socklen_t,
+    pub msg_iov: *mut iovec,
+    pub msg_iovlen: ::std::os::raw::c_uint,
+    pub msg_control: *mut ::std::os::raw::c_void,
+    pub msg_controllen: socklen_t,
+    pub msg_flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_msghdr() {
+    const UNINIT: ::std::mem::MaybeUninit<msghdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<msghdr>(),
+        48usize,
+        concat!("Size of: ", stringify!(msghdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<msghdr>(),
+        8usize,
+        concat!("Alignment of ", stringify!(msghdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(msghdr),
+            "::",
+            stringify!(msg_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(msghdr),
+            "::",
+            stringify!(msg_namelen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(msghdr),
+            "::",
+            stringify!(msg_iov)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(msghdr),
+            "::",
+            stringify!(msg_iovlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(msghdr),
+            "::",
+            stringify!(msg_control)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(msghdr),
+            "::",
+            stringify!(msg_controllen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize },
+        44usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(msghdr),
+            "::",
+            stringify!(msg_flags)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mmsghdr {
+    pub msg_hdr: msghdr,
+    pub msg_len: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_mmsghdr() {
+    const UNINIT: ::std::mem::MaybeUninit<mmsghdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<mmsghdr>(),
+        56usize,
+        concat!("Size of: ", stringify!(mmsghdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<mmsghdr>(),
+        8usize,
+        concat!("Alignment of ", stringify!(mmsghdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_hdr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(mmsghdr),
+            "::",
+            stringify!(msg_hdr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).msg_len) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(mmsghdr),
+            "::",
+            stringify!(msg_len)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cmsghdr {
+    pub cmsg_len: socklen_t,
+    pub cmsg_level: ::std::os::raw::c_int,
+    pub cmsg_type: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_cmsghdr() {
+    const UNINIT: ::std::mem::MaybeUninit<cmsghdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<cmsghdr>(),
+        12usize,
+        concat!("Size of: ", stringify!(cmsghdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<cmsghdr>(),
+        4usize,
+        concat!("Alignment of ", stringify!(cmsghdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cmsghdr),
+            "::",
+            stringify!(cmsg_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cmsghdr),
+            "::",
+            stringify!(cmsg_level)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(cmsghdr),
+            "::",
+            stringify!(cmsg_type)
+        )
+    );
+}
+extern "C" {
+    pub fn accept(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut sockaddr,
+        arg3: *mut socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bind(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const sockaddr,
+        arg3: socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn connect(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const sockaddr,
+        arg3: socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn getpeername(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut sockaddr,
+        arg3: *mut socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn getsockname(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut sockaddr,
+        arg3: *mut socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn getsockopt(
+        arg1: ::std::os::raw::c_int,
+        arg2: ::std::os::raw::c_int,
+        arg3: ::std::os::raw::c_int,
+        arg4: *mut ::std::os::raw::c_void,
+        arg5: *mut socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn listen(
+        arg1: ::std::os::raw::c_int,
+        arg2: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn recv(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: usize,
+        arg4: ::std::os::raw::c_int,
+    ) -> isize;
+}
+extern "C" {
+    pub fn recvfrom(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: usize,
+        arg4: ::std::os::raw::c_int,
+        arg5: *mut sockaddr,
+        arg6: *mut socklen_t,
+    ) -> isize;
+}
+extern "C" {
+    pub fn recvmsg(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut msghdr,
+        arg3: ::std::os::raw::c_int,
+    ) -> isize;
+}
+extern "C" {
+    pub fn recvmmsg(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut mmsghdr,
+        arg3: ::std::os::raw::c_uint,
+        arg4: ::std::os::raw::c_int,
+        arg5: *mut timespec,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn send(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const ::std::os::raw::c_void,
+        arg3: usize,
+        arg4: ::std::os::raw::c_int,
+    ) -> isize;
+}
+extern "C" {
+    pub fn sendto(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const ::std::os::raw::c_void,
+        arg3: usize,
+        arg4: ::std::os::raw::c_int,
+        arg5: *const sockaddr,
+        arg6: socklen_t,
+    ) -> isize;
+}
+extern "C" {
+    pub fn sendmsg(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const msghdr,
+        arg3: ::std::os::raw::c_int,
+    ) -> isize;
+}
+extern "C" {
+    pub fn sendmmsg(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut mmsghdr,
+        arg3: ::std::os::raw::c_uint,
+        arg4: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn setsockopt(
+        arg1: ::std::os::raw::c_int,
+        arg2: ::std::os::raw::c_int,
+        arg3: ::std::os::raw::c_int,
+        arg4: *const ::std::os::raw::c_void,
+        arg5: socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn shutdown(
+        arg1: ::std::os::raw::c_int,
+        arg2: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn sockatmark(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn socket(
+        arg1: ::std::os::raw::c_int,
+        arg2: ::std::os::raw::c_int,
+        arg3: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn socketpair(
+        arg1: ::std::os::raw::c_int,
+        arg2: ::std::os::raw::c_int,
+        arg3: ::std::os::raw::c_int,
+        arg4: *mut ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn accept4(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut sockaddr,
+        arg3: *mut socklen_t,
+        arg4: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn getpeereid(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut uid_t,
+        arg3: *mut gid_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn getrtable() -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn setrtable(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_nameindex {
+    pub if_index: ::std::os::raw::c_uint,
+    pub if_name: *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_if_nameindex() {
+    const UNINIT: ::std::mem::MaybeUninit<if_nameindex> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_nameindex>(),
+        16usize,
+        concat!("Size of: ", stringify!(if_nameindex))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_nameindex>(),
+        8usize,
+        concat!("Alignment of ", stringify!(if_nameindex))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_nameindex),
+            "::",
+            stringify!(if_index)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_nameindex),
+            "::",
+            stringify!(if_name)
+        )
+    );
+}
+extern "C" {
+    pub fn if_nametoindex(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn if_indextoname(
+        arg1: ::std::os::raw::c_uint,
+        arg2: *mut ::std::os::raw::c_char,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn if_nameindex() -> *mut if_nameindex;
+}
+extern "C" {
+    pub fn if_freenameindex(arg1: *mut if_nameindex);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct timespec {
+    pub tv_sec: time_t,
+    pub tv_nsec: ::std::os::raw::c_long,
+}
+#[test]
+fn bindgen_test_layout_timespec() {
+    const UNINIT: ::std::mem::MaybeUninit<timespec> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<timespec>(),
+        16usize,
+        concat!("Size of: ", stringify!(timespec))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<timespec>(),
+        8usize,
+        concat!("Alignment of ", stringify!(timespec))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timespec),
+            "::",
+            stringify!(tv_sec)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timespec),
+            "::",
+            stringify!(tv_nsec)
+        )
+    );
+}
+pub type __fd_mask = u32;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fd_set {
+    pub fds_bits: [__fd_mask; 32usize],
+}
+#[test]
+fn bindgen_test_layout_fd_set() {
+    const UNINIT: ::std::mem::MaybeUninit<fd_set> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<fd_set>(),
+        128usize,
+        concat!("Size of: ", stringify!(fd_set))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<fd_set>(),
+        4usize,
+        concat!("Alignment of ", stringify!(fd_set))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(fd_set),
+            "::",
+            stringify!(fds_bits)
+        )
+    );
+}
+pub type sigset_t = ::std::os::raw::c_uint;
+extern "C" {
+    pub fn select(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut fd_set,
+        arg3: *mut fd_set,
+        arg4: *mut fd_set,
+        arg5: *mut timeval,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn pselect(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut fd_set,
+        arg3: *mut fd_set,
+        arg4: *mut fd_set,
+        arg5: *const timespec,
+        arg6: *const sigset_t,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct timezone {
+    pub tz_minuteswest: ::std::os::raw::c_int,
+    pub tz_dsttime: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_timezone() {
+    const UNINIT: ::std::mem::MaybeUninit<timezone> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<timezone>(),
+        8usize,
+        concat!("Size of: ", stringify!(timezone))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<timezone>(),
+        4usize,
+        concat!("Alignment of ", stringify!(timezone))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timezone),
+            "::",
+            stringify!(tz_minuteswest)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timezone),
+            "::",
+            stringify!(tz_dsttime)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct itimerval {
+    pub it_interval: timeval,
+    pub it_value: timeval,
+}
+#[test]
+fn bindgen_test_layout_itimerval() {
+    const UNINIT: ::std::mem::MaybeUninit<itimerval> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<itimerval>(),
+        32usize,
+        concat!("Size of: ", stringify!(itimerval))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<itimerval>(),
+        8usize,
+        concat!("Alignment of ", stringify!(itimerval))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(itimerval),
+            "::",
+            stringify!(it_interval)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(itimerval),
+            "::",
+            stringify!(it_value)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct clockinfo {
+    pub hz: ::std::os::raw::c_int,
+    pub tick: ::std::os::raw::c_int,
+    pub stathz: ::std::os::raw::c_int,
+    pub profhz: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_clockinfo() {
+    const UNINIT: ::std::mem::MaybeUninit<clockinfo> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<clockinfo>(),
+        16usize,
+        concat!("Size of: ", stringify!(clockinfo))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<clockinfo>(),
+        4usize,
+        concat!("Alignment of ", stringify!(clockinfo))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).hz) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(clockinfo),
+            "::",
+            stringify!(hz)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tick) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(clockinfo),
+            "::",
+            stringify!(tick)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).stathz) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(clockinfo),
+            "::",
+            stringify!(stathz)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).profhz) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(clockinfo),
+            "::",
+            stringify!(profhz)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct itimerspec {
+    pub it_interval: timespec,
+    pub it_value: timespec,
+}
+#[test]
+fn bindgen_test_layout_itimerspec() {
+    const UNINIT: ::std::mem::MaybeUninit<itimerspec> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<itimerspec>(),
+        32usize,
+        concat!("Size of: ", stringify!(itimerspec))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<itimerspec>(),
+        8usize,
+        concat!("Alignment of ", stringify!(itimerspec))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(itimerspec),
+            "::",
+            stringify!(it_interval)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(itimerspec),
+            "::",
+            stringify!(it_value)
+        )
+    );
+}
+pub type locale_t = *mut ::std::os::raw::c_void;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tm {
+    pub tm_sec: ::std::os::raw::c_int,
+    pub tm_min: ::std::os::raw::c_int,
+    pub tm_hour: ::std::os::raw::c_int,
+    pub tm_mday: ::std::os::raw::c_int,
+    pub tm_mon: ::std::os::raw::c_int,
+    pub tm_year: ::std::os::raw::c_int,
+    pub tm_wday: ::std::os::raw::c_int,
+    pub tm_yday: ::std::os::raw::c_int,
+    pub tm_isdst: ::std::os::raw::c_int,
+    pub tm_gmtoff: ::std::os::raw::c_long,
+    pub tm_zone: *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_tm() {
+    const UNINIT: ::std::mem::MaybeUninit<tm> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<tm>(),
+        56usize,
+        concat!("Size of: ", stringify!(tm))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<tm>(),
+        8usize,
+        concat!("Alignment of ", stringify!(tm))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_sec)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_min)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_hour)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_mday)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_mon)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_year)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_wday)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_yday)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_isdst)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_gmtoff)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(tm),
+            "::",
+            stringify!(tm_zone)
+        )
+    );
+}
+extern "C" {
+    pub fn asctime(arg1: *const tm) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn clock() -> clock_t;
+}
+extern "C" {
+    pub fn ctime(arg1: *const time_t) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn difftime(arg1: time_t, arg2: time_t) -> f64;
+}
+extern "C" {
+    pub fn gmtime(arg1: *const time_t) -> *mut tm;
+}
+extern "C" {
+    pub fn localtime(arg1: *const time_t) -> *mut tm;
+}
+extern "C" {
+    pub fn mktime(arg1: *mut tm) -> time_t;
+}
+extern "C" {
+    pub fn strftime(
+        arg1: *mut ::std::os::raw::c_char,
+        arg2: usize,
+        arg3: *const ::std::os::raw::c_char,
+        arg4: *const tm,
+    ) -> usize;
+}
+extern "C" {
+    pub fn time(arg1: *mut time_t) -> time_t;
+}
+extern "C" {
+    pub static mut daylight: ::std::os::raw::c_int;
+}
+extern "C" {
+    pub static mut timezone: ::std::os::raw::c_long;
+}
+extern "C" {
+    pub fn strptime(
+        arg1: *const ::std::os::raw::c_char,
+        arg2: *const ::std::os::raw::c_char,
+        arg3: *mut tm,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn asctime_r(
+        arg1: *const tm,
+        arg2: *mut ::std::os::raw::c_char,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn ctime_r(
+        arg1: *const time_t,
+        arg2: *mut ::std::os::raw::c_char,
+    ) -> *mut ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
+}
+extern "C" {
+    pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
+}
+extern "C" {
+    pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize];
+}
+extern "C" {
+    pub fn tzset();
+}
+extern "C" {
+    pub fn clock_getres(arg1: clockid_t, arg2: *mut timespec) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn clock_gettime(arg1: clockid_t, arg2: *mut timespec) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn clock_settime(arg1: clockid_t, arg2: *const timespec) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn nanosleep(arg1: *const timespec, arg2: *mut timespec) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn clock_getcpuclockid(arg1: pid_t, arg2: *mut clockid_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn strftime_l(
+        arg1: *mut ::std::os::raw::c_char,
+        arg2: usize,
+        arg3: *const ::std::os::raw::c_char,
+        arg4: *const tm,
+        arg5: locale_t,
+    ) -> usize;
+}
+extern "C" {
+    pub fn timespec_get(_ts: *mut timespec, _base: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn tzsetwall();
+}
+extern "C" {
+    pub fn timelocal(arg1: *mut tm) -> time_t;
+}
+extern "C" {
+    pub fn timegm(arg1: *mut tm) -> time_t;
+}
+extern "C" {
+    pub fn timeoff(arg1: *mut tm, arg2: ::std::os::raw::c_long) -> time_t;
+}
+extern "C" {
+    pub fn adjtime(arg1: *const timeval, arg2: *mut timeval) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn adjfreq(arg1: *const i64, arg2: *mut i64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn futimes(arg1: ::std::os::raw::c_int, arg2: *const timeval) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn getitimer(arg1: ::std::os::raw::c_int, arg2: *mut itimerval) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn gettimeofday(arg1: *mut timeval, arg2: *mut timezone) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn setitimer(
+        arg1: ::std::os::raw::c_int,
+        arg2: *const itimerval,
+        arg3: *mut itimerval,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn settimeofday(arg1: *const timeval, arg2: *const timezone) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn utimes(
+        arg1: *const ::std::os::raw::c_char,
+        arg2: *const timeval,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_clonereq {
+    pub ifcr_total: ::std::os::raw::c_int,
+    pub ifcr_count: ::std::os::raw::c_int,
+    pub ifcr_buffer: *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_if_clonereq() {
+    const UNINIT: ::std::mem::MaybeUninit<if_clonereq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_clonereq>(),
+        16usize,
+        concat!("Size of: ", stringify!(if_clonereq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_clonereq>(),
+        8usize,
+        concat!("Alignment of ", stringify!(if_clonereq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifcr_total) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_clonereq),
+            "::",
+            stringify!(ifcr_total)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifcr_count) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_clonereq),
+            "::",
+            stringify!(ifcr_count)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifcr_buffer) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_clonereq),
+            "::",
+            stringify!(ifcr_buffer)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_rxring {
+    pub rxr_adjusted: ::std::os::raw::c_int,
+    pub rxr_alive: u_int,
+    pub rxr_cwm: u_int,
+    pub rxr_lwm: u_int,
+    pub rxr_hwm: u_int,
+}
+#[test]
+fn bindgen_test_layout_if_rxring() {
+    const UNINIT: ::std::mem::MaybeUninit<if_rxring> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_rxring>(),
+        20usize,
+        concat!("Size of: ", stringify!(if_rxring))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_rxring>(),
+        4usize,
+        concat!("Alignment of ", stringify!(if_rxring))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rxr_adjusted) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxring),
+            "::",
+            stringify!(rxr_adjusted)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rxr_alive) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxring),
+            "::",
+            stringify!(rxr_alive)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rxr_cwm) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxring),
+            "::",
+            stringify!(rxr_cwm)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rxr_lwm) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxring),
+            "::",
+            stringify!(rxr_lwm)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rxr_hwm) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxring),
+            "::",
+            stringify!(rxr_hwm)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_rxring_info {
+    pub ifr_name: [::std::os::raw::c_char; 16usize],
+    pub ifr_size: u_int,
+    pub ifr_info: if_rxring,
+}
+#[test]
+fn bindgen_test_layout_if_rxring_info() {
+    const UNINIT: ::std::mem::MaybeUninit<if_rxring_info> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_rxring_info>(),
+        40usize,
+        concat!("Size of: ", stringify!(if_rxring_info))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_rxring_info>(),
+        4usize,
+        concat!("Alignment of ", stringify!(if_rxring_info))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifr_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxring_info),
+            "::",
+            stringify!(ifr_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifr_size) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxring_info),
+            "::",
+            stringify!(ifr_size)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifr_info) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxring_info),
+            "::",
+            stringify!(ifr_info)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_rxrinfo {
+    pub ifri_total: u_int,
+    pub ifri_entries: *mut if_rxring_info,
+}
+#[test]
+fn bindgen_test_layout_if_rxrinfo() {
+    const UNINIT: ::std::mem::MaybeUninit<if_rxrinfo> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_rxrinfo>(),
+        16usize,
+        concat!("Size of: ", stringify!(if_rxrinfo))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_rxrinfo>(),
+        8usize,
+        concat!("Alignment of ", stringify!(if_rxrinfo))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifri_total) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxrinfo),
+            "::",
+            stringify!(ifri_total)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifri_entries) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_rxrinfo),
+            "::",
+            stringify!(ifri_entries)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_data {
+    pub ifi_type: u_char,
+    pub ifi_addrlen: u_char,
+    pub ifi_hdrlen: u_char,
+    pub ifi_link_state: u_char,
+    pub ifi_mtu: u_int32_t,
+    pub ifi_metric: u_int32_t,
+    pub ifi_rdomain: u_int32_t,
+    pub ifi_baudrate: u_int64_t,
+    pub ifi_ipackets: u_int64_t,
+    pub ifi_ierrors: u_int64_t,
+    pub ifi_opackets: u_int64_t,
+    pub ifi_oerrors: u_int64_t,
+    pub ifi_collisions: u_int64_t,
+    pub ifi_ibytes: u_int64_t,
+    pub ifi_obytes: u_int64_t,
+    pub ifi_imcasts: u_int64_t,
+    pub ifi_omcasts: u_int64_t,
+    pub ifi_iqdrops: u_int64_t,
+    pub ifi_oqdrops: u_int64_t,
+    pub ifi_noproto: u_int64_t,
+    pub ifi_capabilities: u_int32_t,
+    pub ifi_lastchange: timeval,
+}
+#[test]
+fn bindgen_test_layout_if_data() {
+    const UNINIT: ::std::mem::MaybeUninit<if_data> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_data>(),
+        144usize,
+        concat!("Size of: ", stringify!(if_data))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_data>(),
+        8usize,
+        concat!("Alignment of ", stringify!(if_data))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_type) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_addrlen) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_addrlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_hdrlen) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_hdrlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_link_state) as usize - ptr as usize },
+        3usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_link_state)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_mtu) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_mtu)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_metric) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_metric)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_rdomain) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_rdomain)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_baudrate) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_baudrate)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_ipackets) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_ipackets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_ierrors) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_ierrors)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_opackets) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_opackets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_oerrors) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_oerrors)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_collisions) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_collisions)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_ibytes) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_ibytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_obytes) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_obytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_imcasts) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_imcasts)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_omcasts) as usize - ptr as usize },
+        88usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_omcasts)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_iqdrops) as usize - ptr as usize },
+        96usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_iqdrops)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_oqdrops) as usize - ptr as usize },
+        104usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_oqdrops)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_noproto) as usize - ptr as usize },
+        112usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_noproto)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_capabilities) as usize - ptr as usize },
+        120usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_capabilities)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifi_lastchange) as usize - ptr as usize },
+        128usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_data),
+            "::",
+            stringify!(ifi_lastchange)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_status_description {
+    pub ifs_type: u_char,
+    pub ifs_state: u_char,
+    pub ifs_string: *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_if_status_description() {
+    const UNINIT: ::std::mem::MaybeUninit<if_status_description> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_status_description>(),
+        16usize,
+        concat!("Size of: ", stringify!(if_status_description))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_status_description>(),
+        8usize,
+        concat!("Alignment of ", stringify!(if_status_description))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifs_type) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_status_description),
+            "::",
+            stringify!(ifs_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifs_state) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_status_description),
+            "::",
+            stringify!(ifs_state)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifs_string) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_status_description),
+            "::",
+            stringify!(ifs_string)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_msghdr {
+    pub ifm_msglen: u_short,
+    pub ifm_version: u_char,
+    pub ifm_type: u_char,
+    pub ifm_hdrlen: u_short,
+    pub ifm_index: u_short,
+    pub ifm_tableid: u_short,
+    pub ifm_pad1: u_char,
+    pub ifm_pad2: u_char,
+    pub ifm_addrs: ::std::os::raw::c_int,
+    pub ifm_flags: ::std::os::raw::c_int,
+    pub ifm_xflags: ::std::os::raw::c_int,
+    pub ifm_data: if_data,
+}
+#[test]
+fn bindgen_test_layout_if_msghdr() {
+    const UNINIT: ::std::mem::MaybeUninit<if_msghdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_msghdr>(),
+        168usize,
+        concat!("Size of: ", stringify!(if_msghdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_msghdr>(),
+        8usize,
+        concat!("Alignment of ", stringify!(if_msghdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_msglen) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_msglen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_version) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_type) as usize - ptr as usize },
+        3usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_hdrlen) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_hdrlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_index) as usize - ptr as usize },
+        6usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_index)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_tableid) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_tableid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_pad1) as usize - ptr as usize },
+        10usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_pad1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_pad2) as usize - ptr as usize },
+        11usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_pad2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_addrs) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_addrs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_flags) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_xflags) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_xflags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_data) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_msghdr),
+            "::",
+            stringify!(ifm_data)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_msghdr {
+    pub ifam_msglen: u_short,
+    pub ifam_version: u_char,
+    pub ifam_type: u_char,
+    pub ifam_hdrlen: u_short,
+    pub ifam_index: u_short,
+    pub ifam_tableid: u_short,
+    pub ifam_pad1: u_char,
+    pub ifam_pad2: u_char,
+    pub ifam_addrs: ::std::os::raw::c_int,
+    pub ifam_flags: ::std::os::raw::c_int,
+    pub ifam_metric: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ifa_msghdr() {
+    const UNINIT: ::std::mem::MaybeUninit<ifa_msghdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifa_msghdr>(),
+        24usize,
+        concat!("Size of: ", stringify!(ifa_msghdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifa_msghdr>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ifa_msghdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_msglen) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_msglen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_version) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_type) as usize - ptr as usize },
+        3usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_hdrlen) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_hdrlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_index) as usize - ptr as usize },
+        6usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_index)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_tableid) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_tableid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_pad1) as usize - ptr as usize },
+        10usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_pad1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_pad2) as usize - ptr as usize },
+        11usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_pad2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_addrs) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_addrs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_flags) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifam_metric) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifa_msghdr),
+            "::",
+            stringify!(ifam_metric)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_announcemsghdr {
+    pub ifan_msglen: u_short,
+    pub ifan_version: u_char,
+    pub ifan_type: u_char,
+    pub ifan_hdrlen: u_short,
+    pub ifan_index: u_short,
+    pub ifan_what: u_short,
+    pub ifan_name: [::std::os::raw::c_char; 16usize],
+}
+#[test]
+fn bindgen_test_layout_if_announcemsghdr() {
+    const UNINIT: ::std::mem::MaybeUninit<if_announcemsghdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_announcemsghdr>(),
+        26usize,
+        concat!("Size of: ", stringify!(if_announcemsghdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_announcemsghdr>(),
+        2usize,
+        concat!("Alignment of ", stringify!(if_announcemsghdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifan_msglen) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_announcemsghdr),
+            "::",
+            stringify!(ifan_msglen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifan_version) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_announcemsghdr),
+            "::",
+            stringify!(ifan_version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifan_type) as usize - ptr as usize },
+        3usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_announcemsghdr),
+            "::",
+            stringify!(ifan_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifan_hdrlen) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_announcemsghdr),
+            "::",
+            stringify!(ifan_hdrlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifan_index) as usize - ptr as usize },
+        6usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_announcemsghdr),
+            "::",
+            stringify!(ifan_index)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifan_what) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_announcemsghdr),
+            "::",
+            stringify!(ifan_what)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifan_name) as usize - ptr as usize },
+        10usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_announcemsghdr),
+            "::",
+            stringify!(ifan_name)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_ieee80211_data {
+    pub ifie_channel: u8,
+    pub ifie_nwid_len: u8,
+    pub ifie_flags: u32,
+    pub ifie_xflags: u32,
+    pub ifie_nwid: [u8; 32usize],
+    pub ifie_addr: [u8; 6usize],
+}
+#[test]
+fn bindgen_test_layout_if_ieee80211_data() {
+    const UNINIT: ::std::mem::MaybeUninit<if_ieee80211_data> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_ieee80211_data>(),
+        52usize,
+        concat!("Size of: ", stringify!(if_ieee80211_data))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_ieee80211_data>(),
+        4usize,
+        concat!("Alignment of ", stringify!(if_ieee80211_data))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifie_channel) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_data),
+            "::",
+            stringify!(ifie_channel)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifie_nwid_len) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_data),
+            "::",
+            stringify!(ifie_nwid_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifie_flags) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_data),
+            "::",
+            stringify!(ifie_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifie_xflags) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_data),
+            "::",
+            stringify!(ifie_xflags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifie_nwid) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_data),
+            "::",
+            stringify!(ifie_nwid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifie_addr) as usize - ptr as usize },
+        44usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_data),
+            "::",
+            stringify!(ifie_addr)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_ieee80211_msghdr {
+    pub ifim_msglen: u16,
+    pub ifim_version: u8,
+    pub ifim_type: u8,
+    pub ifim_hdrlen: u16,
+    pub ifim_index: u16,
+    pub ifim_tableid: u16,
+    pub ifim_ifie: if_ieee80211_data,
+}
+#[test]
+fn bindgen_test_layout_if_ieee80211_msghdr() {
+    const UNINIT: ::std::mem::MaybeUninit<if_ieee80211_msghdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_ieee80211_msghdr>(),
+        64usize,
+        concat!("Size of: ", stringify!(if_ieee80211_msghdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_ieee80211_msghdr>(),
+        4usize,
+        concat!("Alignment of ", stringify!(if_ieee80211_msghdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifim_msglen) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_msghdr),
+            "::",
+            stringify!(ifim_msglen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifim_version) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_msghdr),
+            "::",
+            stringify!(ifim_version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifim_type) as usize - ptr as usize },
+        3usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_msghdr),
+            "::",
+            stringify!(ifim_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifim_hdrlen) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_msghdr),
+            "::",
+            stringify!(ifim_hdrlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifim_index) as usize - ptr as usize },
+        6usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_msghdr),
+            "::",
+            stringify!(ifim_index)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifim_tableid) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_msghdr),
+            "::",
+            stringify!(ifim_tableid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifim_ifie) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_ieee80211_msghdr),
+            "::",
+            stringify!(ifim_ifie)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_nameindex_msg {
+    pub if_index: ::std::os::raw::c_uint,
+    pub if_name: [::std::os::raw::c_char; 16usize],
+}
+#[test]
+fn bindgen_test_layout_if_nameindex_msg() {
+    const UNINIT: ::std::mem::MaybeUninit<if_nameindex_msg> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_nameindex_msg>(),
+        20usize,
+        concat!("Size of: ", stringify!(if_nameindex_msg))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_nameindex_msg>(),
+        4usize,
+        concat!("Alignment of ", stringify!(if_nameindex_msg))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_nameindex_msg),
+            "::",
+            stringify!(if_index)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_nameindex_msg),
+            "::",
+            stringify!(if_name)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifg_req {
+    pub ifgrq_ifgrqu: ifg_req__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifg_req__bindgen_ty_1 {
+    pub ifgrqu_group: [::std::os::raw::c_char; 16usize],
+    pub ifgrqu_member: [::std::os::raw::c_char; 16usize],
+}
+#[test]
+fn bindgen_test_layout_ifg_req__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<ifg_req__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifg_req__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(ifg_req__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifg_req__bindgen_ty_1>(),
+        1usize,
+        concat!("Alignment of ", stringify!(ifg_req__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgrqu_group) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifg_req__bindgen_ty_1),
+            "::",
+            stringify!(ifgrqu_group)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgrqu_member) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifg_req__bindgen_ty_1),
+            "::",
+            stringify!(ifgrqu_member)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_ifg_req() {
+    const UNINIT: ::std::mem::MaybeUninit<ifg_req> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifg_req>(),
+        16usize,
+        concat!("Size of: ", stringify!(ifg_req))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifg_req>(),
+        1usize,
+        concat!("Alignment of ", stringify!(ifg_req))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgrq_ifgrqu) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifg_req),
+            "::",
+            stringify!(ifgrq_ifgrqu)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifg_attrib {
+    pub ifg_carp_demoted: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ifg_attrib() {
+    const UNINIT: ::std::mem::MaybeUninit<ifg_attrib> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifg_attrib>(),
+        4usize,
+        concat!("Size of: ", stringify!(ifg_attrib))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifg_attrib>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ifg_attrib))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifg_carp_demoted) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifg_attrib),
+            "::",
+            stringify!(ifg_carp_demoted)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifgroupreq {
+    pub ifgr_name: [::std::os::raw::c_char; 16usize],
+    pub ifgr_len: u_int,
+    pub ifgr_ifgru: ifgroupreq__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifgroupreq__bindgen_ty_1 {
+    pub ifgru_group: [::std::os::raw::c_char; 16usize],
+    pub ifgru_groups: *mut ifg_req,
+    pub ifgru_attrib: ifg_attrib,
+}
+#[test]
+fn bindgen_test_layout_ifgroupreq__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<ifgroupreq__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifgroupreq__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(ifgroupreq__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifgroupreq__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ifgroupreq__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgru_group) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifgroupreq__bindgen_ty_1),
+            "::",
+            stringify!(ifgru_group)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgru_groups) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifgroupreq__bindgen_ty_1),
+            "::",
+            stringify!(ifgru_groups)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgru_attrib) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifgroupreq__bindgen_ty_1),
+            "::",
+            stringify!(ifgru_attrib)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_ifgroupreq() {
+    const UNINIT: ::std::mem::MaybeUninit<ifgroupreq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifgroupreq>(),
+        40usize,
+        concat!("Size of: ", stringify!(ifgroupreq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifgroupreq>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ifgroupreq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgr_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifgroupreq),
+            "::",
+            stringify!(ifgr_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgr_len) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifgroupreq),
+            "::",
+            stringify!(ifgr_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifgr_ifgru) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifgroupreq),
+            "::",
+            stringify!(ifgr_ifgru)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+    pub ifr_name: [::std::os::raw::c_char; 16usize],
+    pub ifr_ifru: ifreq__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+    pub ifru_addr: sockaddr,
+    pub ifru_dstaddr: sockaddr,
+    pub ifru_broadaddr: sockaddr,
+    pub ifru_flags: ::std::os::raw::c_short,
+    pub ifru_metric: ::std::os::raw::c_int,
+    pub ifru_vnetid: i64,
+    pub ifru_media: u64,
+    pub ifru_data: caddr_t,
+    pub ifru_index: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_ifreq__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<ifreq__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifreq__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(ifreq__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifreq__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_dstaddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_broadaddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_metric) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_metric)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_vnetid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_vnetid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_media) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_media)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_data)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifru_index) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq__bindgen_ty_1),
+            "::",
+            stringify!(ifru_index)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_ifreq() {
+    const UNINIT: ::std::mem::MaybeUninit<ifreq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifreq>(),
+        32usize,
+        concat!("Size of: ", stringify!(ifreq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifreq>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ifreq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifr_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq),
+            "::",
+            stringify!(ifr_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifreq),
+            "::",
+            stringify!(ifr_ifru)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifaliasreq {
+    pub ifra_name: [::std::os::raw::c_char; 16usize],
+    pub ifra_ifrau: ifaliasreq__bindgen_ty_1,
+    pub ifra_dstaddr: sockaddr,
+    pub ifra_mask: sockaddr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifaliasreq__bindgen_ty_1 {
+    pub ifrau_addr: sockaddr,
+    pub ifrau_align: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ifaliasreq__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<ifaliasreq__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifaliasreq__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(ifaliasreq__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifaliasreq__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ifaliasreq__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifrau_addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifaliasreq__bindgen_ty_1),
+            "::",
+            stringify!(ifrau_addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifrau_align) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifaliasreq__bindgen_ty_1),
+            "::",
+            stringify!(ifrau_align)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_ifaliasreq() {
+    const UNINIT: ::std::mem::MaybeUninit<ifaliasreq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifaliasreq>(),
+        64usize,
+        concat!("Size of: ", stringify!(ifaliasreq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifaliasreq>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ifaliasreq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifra_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifaliasreq),
+            "::",
+            stringify!(ifra_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifra_ifrau) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifaliasreq),
+            "::",
+            stringify!(ifra_ifrau)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifra_dstaddr) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifaliasreq),
+            "::",
+            stringify!(ifra_dstaddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifra_mask) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifaliasreq),
+            "::",
+            stringify!(ifra_mask)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmediareq {
+    pub ifm_name: [::std::os::raw::c_char; 16usize],
+    pub ifm_current: u64,
+    pub ifm_mask: u64,
+    pub ifm_status: u64,
+    pub ifm_active: u64,
+    pub ifm_count: ::std::os::raw::c_int,
+    pub ifm_ulist: *mut u64,
+}
+#[test]
+fn bindgen_test_layout_ifmediareq() {
+    const UNINIT: ::std::mem::MaybeUninit<ifmediareq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifmediareq>(),
+        64usize,
+        concat!("Size of: ", stringify!(ifmediareq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifmediareq>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ifmediareq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifmediareq),
+            "::",
+            stringify!(ifm_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_current) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifmediareq),
+            "::",
+            stringify!(ifm_current)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_mask) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifmediareq),
+            "::",
+            stringify!(ifm_mask)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_status) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifmediareq),
+            "::",
+            stringify!(ifm_status)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_active) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifmediareq),
+            "::",
+            stringify!(ifm_active)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_count) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifmediareq),
+            "::",
+            stringify!(ifm_count)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifm_ulist) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifmediareq),
+            "::",
+            stringify!(ifm_ulist)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifkalivereq {
+    pub ikar_name: [::std::os::raw::c_char; 16usize],
+    pub ikar_timeo: ::std::os::raw::c_int,
+    pub ikar_cnt: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ifkalivereq() {
+    const UNINIT: ::std::mem::MaybeUninit<ifkalivereq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifkalivereq>(),
+        24usize,
+        concat!("Size of: ", stringify!(ifkalivereq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifkalivereq>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ifkalivereq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ikar_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifkalivereq),
+            "::",
+            stringify!(ikar_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ikar_timeo) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifkalivereq),
+            "::",
+            stringify!(ikar_timeo)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ikar_cnt) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifkalivereq),
+            "::",
+            stringify!(ikar_cnt)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+    pub ifc_len: ::std::os::raw::c_int,
+    pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+    pub ifcu_buf: caddr_t,
+    pub ifcu_req: *mut ifreq,
+}
+#[test]
+fn bindgen_test_layout_ifconf__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<ifconf__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifconf__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(ifconf__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifconf__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifconf__bindgen_ty_1),
+            "::",
+            stringify!(ifcu_buf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifconf__bindgen_ty_1),
+            "::",
+            stringify!(ifcu_req)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_ifconf() {
+    const UNINIT: ::std::mem::MaybeUninit<ifconf> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ifconf>(),
+        16usize,
+        concat!("Size of: ", stringify!(ifconf))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ifconf>(),
+        8usize,
+        concat!("Alignment of ", stringify!(ifconf))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifconf),
+            "::",
+            stringify!(ifc_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ifconf),
+            "::",
+            stringify!(ifc_ifcu)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_laddrreq {
+    pub iflr_name: [::std::os::raw::c_char; 16usize],
+    pub flags: ::std::os::raw::c_uint,
+    pub prefixlen: ::std::os::raw::c_uint,
+    pub addr: sockaddr_storage,
+    pub dstaddr: sockaddr_storage,
+}
+#[test]
+fn bindgen_test_layout_if_laddrreq() {
+    const UNINIT: ::std::mem::MaybeUninit<if_laddrreq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_laddrreq>(),
+        536usize,
+        concat!("Size of: ", stringify!(if_laddrreq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_laddrreq>(),
+        8usize,
+        concat!("Alignment of ", stringify!(if_laddrreq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).iflr_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_laddrreq),
+            "::",
+            stringify!(iflr_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_laddrreq),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).prefixlen) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_laddrreq),
+            "::",
+            stringify!(prefixlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_laddrreq),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dstaddr) as usize - ptr as usize },
+        280usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_laddrreq),
+            "::",
+            stringify!(dstaddr)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_afreq {
+    pub ifar_name: [::std::os::raw::c_char; 16usize],
+    pub ifar_af: sa_family_t,
+}
+#[test]
+fn bindgen_test_layout_if_afreq() {
+    const UNINIT: ::std::mem::MaybeUninit<if_afreq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_afreq>(),
+        17usize,
+        concat!("Size of: ", stringify!(if_afreq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_afreq>(),
+        1usize,
+        concat!("Alignment of ", stringify!(if_afreq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifar_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_afreq),
+            "::",
+            stringify!(ifar_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifar_af) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_afreq),
+            "::",
+            stringify!(ifar_af)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_parent {
+    pub ifp_name: [::std::os::raw::c_char; 16usize],
+    pub ifp_parent: [::std::os::raw::c_char; 16usize],
+}
+#[test]
+fn bindgen_test_layout_if_parent() {
+    const UNINIT: ::std::mem::MaybeUninit<if_parent> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_parent>(),
+        32usize,
+        concat!("Size of: ", stringify!(if_parent))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_parent>(),
+        1usize,
+        concat!("Alignment of ", stringify!(if_parent))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifp_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_parent),
+            "::",
+            stringify!(ifp_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifp_parent) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_parent),
+            "::",
+            stringify!(ifp_parent)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_sffpage {
+    pub sff_ifname: [::std::os::raw::c_char; 16usize],
+    pub sff_addr: u8,
+    pub sff_page: u8,
+    pub sff_data: [u8; 256usize],
+}
+#[test]
+fn bindgen_test_layout_if_sffpage() {
+    const UNINIT: ::std::mem::MaybeUninit<if_sffpage> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<if_sffpage>(),
+        274usize,
+        concat!("Size of: ", stringify!(if_sffpage))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<if_sffpage>(),
+        1usize,
+        concat!("Alignment of ", stringify!(if_sffpage))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sff_ifname) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_sffpage),
+            "::",
+            stringify!(sff_ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sff_addr) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_sffpage),
+            "::",
+            stringify!(sff_addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sff_page) as usize - ptr as usize },
+        17usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_sffpage),
+            "::",
+            stringify!(sff_page)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sff_data) as usize - ptr as usize },
+        18usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(if_sffpage),
+            "::",
+            stringify!(sff_data)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct arphdr {
+    pub ar_hrd: u_int16_t,
+    pub ar_pro: u_int16_t,
+    pub ar_hln: u_int8_t,
+    pub ar_pln: u_int8_t,
+    pub ar_op: u_int16_t,
+}
+#[test]
+fn bindgen_test_layout_arphdr() {
+    const UNINIT: ::std::mem::MaybeUninit<arphdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<arphdr>(),
+        8usize,
+        concat!("Size of: ", stringify!(arphdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<arphdr>(),
+        2usize,
+        concat!("Alignment of ", stringify!(arphdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(arphdr),
+            "::",
+            stringify!(ar_hrd)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(arphdr),
+            "::",
+            stringify!(ar_pro)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(arphdr),
+            "::",
+            stringify!(ar_hln)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize },
+        5usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(arphdr),
+            "::",
+            stringify!(ar_pln)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize },
+        6usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(arphdr),
+            "::",
+            stringify!(ar_op)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct arpreq {
+    pub arp_pa: sockaddr,
+    pub arp_ha: sockaddr,
+    pub arp_flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_arpreq() {
+    const UNINIT: ::std::mem::MaybeUninit<arpreq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<arpreq>(),
+        36usize,
+        concat!("Size of: ", stringify!(arpreq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<arpreq>(),
+        4usize,
+        concat!("Alignment of ", stringify!(arpreq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(arpreq),
+            "::",
+            stringify!(arp_pa)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(arpreq),
+            "::",
+            stringify!(arp_ha)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(arpreq),
+            "::",
+            stringify!(arp_flags)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rb_type {
+    pub t_compare: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *const ::std::os::raw::c_void,
+            arg2: *const ::std::os::raw::c_void,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub t_augment: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
+    pub t_offset: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_rb_type() {
+    const UNINIT: ::std::mem::MaybeUninit<rb_type> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rb_type>(),
+        24usize,
+        concat!("Size of: ", stringify!(rb_type))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rb_type>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rb_type))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).t_compare) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rb_type),
+            "::",
+            stringify!(t_compare)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).t_augment) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rb_type),
+            "::",
+            stringify!(t_augment)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).t_offset) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rb_type),
+            "::",
+            stringify!(t_offset)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rb_tree {
+    pub rbt_root: *mut rb_entry,
+}
+#[test]
+fn bindgen_test_layout_rb_tree() {
+    const UNINIT: ::std::mem::MaybeUninit<rb_tree> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rb_tree>(),
+        8usize,
+        concat!("Size of: ", stringify!(rb_tree))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rb_tree>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rb_tree))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbt_root) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rb_tree),
+            "::",
+            stringify!(rbt_root)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rb_entry {
+    pub rbt_parent: *mut rb_entry,
+    pub rbt_left: *mut rb_entry,
+    pub rbt_right: *mut rb_entry,
+    pub rbt_color: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_rb_entry() {
+    const UNINIT: ::std::mem::MaybeUninit<rb_entry> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rb_entry>(),
+        32usize,
+        concat!("Size of: ", stringify!(rb_entry))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rb_entry>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rb_entry))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbt_parent) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rb_entry),
+            "::",
+            stringify!(rbt_parent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbt_left) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rb_entry),
+            "::",
+            stringify!(rbt_left)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbt_right) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rb_entry),
+            "::",
+            stringify!(rbt_right)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbt_color) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rb_entry),
+            "::",
+            stringify!(rbt_color)
+        )
+    );
+}
+extern "C" {
+    pub fn _rb_insert(
+        arg1: *const rb_type,
+        arg2: *mut rb_tree,
+        arg3: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_remove(
+        arg1: *const rb_type,
+        arg2: *mut rb_tree,
+        arg3: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_find(
+        arg1: *const rb_type,
+        arg2: *mut rb_tree,
+        arg3: *const ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_nfind(
+        arg1: *const rb_type,
+        arg2: *mut rb_tree,
+        arg3: *const ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_root(arg1: *const rb_type, arg2: *mut rb_tree) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_min(arg1: *const rb_type, arg2: *mut rb_tree) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_max(arg1: *const rb_type, arg2: *mut rb_tree) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_next(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_prev(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_left(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_right(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_parent(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn _rb_set_left(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn _rb_set_right(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn _rb_set_parent(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn _rb_poison(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: ::std::os::raw::c_ulong,
+    );
+}
+extern "C" {
+    pub fn _rb_check(
+        arg1: *const rb_type,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: ::std::os::raw::c_ulong,
+    ) -> ::std::os::raw::c_int;
+}
+pub const lock_class_index_LO_CLASS_KERNEL_LOCK: lock_class_index = 0;
+pub const lock_class_index_LO_CLASS_SCHED_LOCK: lock_class_index = 1;
+pub const lock_class_index_LO_CLASS_MUTEX: lock_class_index = 2;
+pub const lock_class_index_LO_CLASS_RWLOCK: lock_class_index = 3;
+pub const lock_class_index_LO_CLASS_RRWLOCK: lock_class_index = 4;
+pub type lock_class_index = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct lock_object {
+    pub lo_type: *const lock_type,
+    pub lo_name: *const ::std::os::raw::c_char,
+    pub lo_witness: *mut witness,
+    pub lo_flags: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_lock_object() {
+    const UNINIT: ::std::mem::MaybeUninit<lock_object> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<lock_object>(),
+        32usize,
+        concat!("Size of: ", stringify!(lock_object))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<lock_object>(),
+        8usize,
+        concat!("Alignment of ", stringify!(lock_object))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lo_type) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(lock_object),
+            "::",
+            stringify!(lo_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lo_name) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(lock_object),
+            "::",
+            stringify!(lo_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lo_witness) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(lock_object),
+            "::",
+            stringify!(lo_witness)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lo_flags) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(lock_object),
+            "::",
+            stringify!(lo_flags)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct lock_type {
+    pub lt_name: *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_lock_type() {
+    const UNINIT: ::std::mem::MaybeUninit<lock_type> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<lock_type>(),
+        8usize,
+        concat!("Size of: ", stringify!(lock_type))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<lock_type>(),
+        8usize,
+        concat!("Alignment of ", stringify!(lock_type))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lt_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(lock_type),
+            "::",
+            stringify!(lt_name)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct proc_ {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rwlock {
+    pub rwl_owner: ::std::os::raw::c_ulong,
+    pub rwl_name: *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout_rwlock() {
+    const UNINIT: ::std::mem::MaybeUninit<rwlock> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rwlock>(),
+        16usize,
+        concat!("Size of: ", stringify!(rwlock))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rwlock>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rwlock))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rwl_owner) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rwlock),
+            "::",
+            stringify!(rwl_owner)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rwl_name) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rwlock),
+            "::",
+            stringify!(rwl_name)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rrwlock {
+    pub rrwl_lock: rwlock,
+    pub rrwl_wcnt: u32,
+}
+#[test]
+fn bindgen_test_layout_rrwlock() {
+    const UNINIT: ::std::mem::MaybeUninit<rrwlock> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rrwlock>(),
+        24usize,
+        concat!("Size of: ", stringify!(rrwlock))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rrwlock>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rrwlock))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rrwl_lock) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rrwlock),
+            "::",
+            stringify!(rrwl_lock)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rrwl_wcnt) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rrwlock),
+            "::",
+            stringify!(rrwl_wcnt)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct refcnt {
+    pub r_refs: ::std::os::raw::c_uint,
+    pub r_traceidx: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_refcnt() {
+    const UNINIT: ::std::mem::MaybeUninit<refcnt> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<refcnt>(),
+        8usize,
+        concat!("Size of: ", stringify!(refcnt))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<refcnt>(),
+        4usize,
+        concat!("Alignment of ", stringify!(refcnt))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).r_refs) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(refcnt),
+            "::",
+            stringify!(r_refs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).r_traceidx) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(refcnt),
+            "::",
+            stringify!(r_traceidx)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct circq {
+    pub next: *mut circq,
+    pub prev: *mut circq,
+}
+#[test]
+fn bindgen_test_layout_circq() {
+    const UNINIT: ::std::mem::MaybeUninit<circq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<circq>(),
+        16usize,
+        concat!("Size of: ", stringify!(circq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<circq>(),
+        8usize,
+        concat!("Alignment of ", stringify!(circq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(circq),
+            "::",
+            stringify!(next)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(circq),
+            "::",
+            stringify!(prev)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct timeout {
+    pub to_list: circq,
+    pub to_abstime: timespec,
+    pub to_func: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
+    pub to_arg: *mut ::std::os::raw::c_void,
+    pub to_process: *mut process,
+    pub to_time: ::std::os::raw::c_int,
+    pub to_flags: ::std::os::raw::c_int,
+    pub to_kclock: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_timeout() {
+    const UNINIT: ::std::mem::MaybeUninit<timeout> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<timeout>(),
+        72usize,
+        concat!("Size of: ", stringify!(timeout))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<timeout>(),
+        8usize,
+        concat!("Alignment of ", stringify!(timeout))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to_list) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeout),
+            "::",
+            stringify!(to_list)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to_abstime) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeout),
+            "::",
+            stringify!(to_abstime)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to_func) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeout),
+            "::",
+            stringify!(to_func)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to_arg) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeout),
+            "::",
+            stringify!(to_arg)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to_process) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeout),
+            "::",
+            stringify!(to_process)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to_time) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeout),
+            "::",
+            stringify!(to_time)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to_flags) as usize - ptr as usize },
+        60usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeout),
+            "::",
+            stringify!(to_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to_kclock) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeout),
+            "::",
+            stringify!(to_kclock)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct timeoutstat {
+    pub tos_added: u64,
+    pub tos_cancelled: u64,
+    pub tos_deleted: u64,
+    pub tos_late: u64,
+    pub tos_pending: u64,
+    pub tos_readded: u64,
+    pub tos_rescheduled: u64,
+    pub tos_run_softclock: u64,
+    pub tos_run_thread: u64,
+    pub tos_scheduled: u64,
+    pub tos_softclocks: u64,
+    pub tos_thread_wakeups: u64,
+}
+#[test]
+fn bindgen_test_layout_timeoutstat() {
+    const UNINIT: ::std::mem::MaybeUninit<timeoutstat> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<timeoutstat>(),
+        96usize,
+        concat!("Size of: ", stringify!(timeoutstat))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<timeoutstat>(),
+        8usize,
+        concat!("Alignment of ", stringify!(timeoutstat))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_added) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_added)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_cancelled) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_cancelled)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_deleted) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_deleted)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_late) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_late)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_pending) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_pending)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_readded) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_readded)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_rescheduled) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_rescheduled)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_run_softclock) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_run_softclock)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_run_thread) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_run_thread)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_scheduled) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_scheduled)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_softclocks) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_softclocks)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos_thread_wakeups) as usize - ptr as usize },
+        88usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(timeoutstat),
+            "::",
+            stringify!(tos_thread_wakeups)
+        )
+    );
+}
+pub type in_addr_t = __in_addr_t;
+pub type in_port_t = __in_port_t;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+    pub s_addr: in_addr_t,
+}
+#[test]
+fn bindgen_test_layout_in_addr() {
+    const UNINIT: ::std::mem::MaybeUninit<in_addr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<in_addr>(),
+        4usize,
+        concat!("Size of: ", stringify!(in_addr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<in_addr>(),
+        4usize,
+        concat!("Alignment of ", stringify!(in_addr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).s_addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(in_addr),
+            "::",
+            stringify!(s_addr)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+    pub sin_len: u_int8_t,
+    pub sin_family: sa_family_t,
+    pub sin_port: in_port_t,
+    pub sin_addr: in_addr,
+    pub sin_zero: [i8; 8usize],
+}
+#[test]
+fn bindgen_test_layout_sockaddr_in() {
+    const UNINIT: ::std::mem::MaybeUninit<sockaddr_in> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockaddr_in>(),
+        16usize,
+        concat!("Size of: ", stringify!(sockaddr_in))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockaddr_in>(),
+        4usize,
+        concat!("Alignment of ", stringify!(sockaddr_in))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in),
+            "::",
+            stringify!(sin_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin_family) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in),
+            "::",
+            stringify!(sin_family)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin_port) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in),
+            "::",
+            stringify!(sin_port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin_addr) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in),
+            "::",
+            stringify!(sin_addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin_zero) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in),
+            "::",
+            stringify!(sin_zero)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_opts {
+    pub ip_dst: in_addr,
+    pub ip_opts: [i8; 40usize],
+}
+#[test]
+fn bindgen_test_layout_ip_opts() {
+    const UNINIT: ::std::mem::MaybeUninit<ip_opts> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ip_opts>(),
+        44usize,
+        concat!("Size of: ", stringify!(ip_opts))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ip_opts>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ip_opts))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ip_dst) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip_opts),
+            "::",
+            stringify!(ip_dst)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ip_opts) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip_opts),
+            "::",
+            stringify!(ip_opts)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+    pub imr_multiaddr: in_addr,
+    pub imr_interface: in_addr,
+}
+#[test]
+fn bindgen_test_layout_ip_mreq() {
+    const UNINIT: ::std::mem::MaybeUninit<ip_mreq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ip_mreq>(),
+        8usize,
+        concat!("Size of: ", stringify!(ip_mreq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ip_mreq>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ip_mreq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).imr_multiaddr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip_mreq),
+            "::",
+            stringify!(imr_multiaddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).imr_interface) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip_mreq),
+            "::",
+            stringify!(imr_interface)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+    pub imr_multiaddr: in_addr,
+    pub imr_address: in_addr,
+    pub imr_ifindex: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_ip_mreqn() {
+    const UNINIT: ::std::mem::MaybeUninit<ip_mreqn> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ip_mreqn>(),
+        12usize,
+        concat!("Size of: ", stringify!(ip_mreqn))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ip_mreqn>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ip_mreqn))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).imr_multiaddr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip_mreqn),
+            "::",
+            stringify!(imr_multiaddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).imr_address) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip_mreqn),
+            "::",
+            stringify!(imr_address)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).imr_ifindex) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip_mreqn),
+            "::",
+            stringify!(imr_ifindex)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+    pub __u6_addr: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+    pub __u6_addr8: [u_int8_t; 16usize],
+    pub __u6_addr16: [u_int16_t; 8usize],
+    pub __u6_addr32: [u_int32_t; 4usize],
+}
+#[test]
+fn bindgen_test_layout_in6_addr__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<in6_addr__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<in6_addr__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(in6_addr__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<in6_addr__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(in6_addr__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__u6_addr8) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(in6_addr__bindgen_ty_1),
+            "::",
+            stringify!(__u6_addr8)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__u6_addr16) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(in6_addr__bindgen_ty_1),
+            "::",
+            stringify!(__u6_addr16)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__u6_addr32) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(in6_addr__bindgen_ty_1),
+            "::",
+            stringify!(__u6_addr32)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_in6_addr() {
+    const UNINIT: ::std::mem::MaybeUninit<in6_addr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<in6_addr>(),
+        16usize,
+        concat!("Size of: ", stringify!(in6_addr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<in6_addr>(),
+        4usize,
+        concat!("Alignment of ", stringify!(in6_addr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).__u6_addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(in6_addr),
+            "::",
+            stringify!(__u6_addr)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+    pub sin6_len: u_int8_t,
+    pub sin6_family: sa_family_t,
+    pub sin6_port: in_port_t,
+    pub sin6_flowinfo: u_int32_t,
+    pub sin6_addr: in6_addr,
+    pub sin6_scope_id: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_sockaddr_in6() {
+    const UNINIT: ::std::mem::MaybeUninit<sockaddr_in6> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockaddr_in6>(),
+        28usize,
+        concat!("Size of: ", stringify!(sockaddr_in6))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockaddr_in6>(),
+        4usize,
+        concat!("Alignment of ", stringify!(sockaddr_in6))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin6_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in6),
+            "::",
+            stringify!(sin6_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin6_family) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in6),
+            "::",
+            stringify!(sin6_family)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin6_port) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in6),
+            "::",
+            stringify!(sin6_port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin6_flowinfo) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in6),
+            "::",
+            stringify!(sin6_flowinfo)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin6_addr) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in6),
+            "::",
+            stringify!(sin6_addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin6_scope_id) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_in6),
+            "::",
+            stringify!(sin6_scope_id)
+        )
+    );
+}
+extern "C" {
+    pub static in6addr_any: in6_addr;
+}
+extern "C" {
+    pub static in6addr_loopback: in6_addr;
+}
+extern "C" {
+    pub static in6addr_intfacelocal_allnodes: in6_addr;
+}
+extern "C" {
+    pub static in6addr_linklocal_allnodes: in6_addr;
+}
+extern "C" {
+    pub static in6addr_linklocal_allrouters: in6_addr;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+    pub ipv6mr_multiaddr: in6_addr,
+    pub ipv6mr_interface: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_ipv6_mreq() {
+    const UNINIT: ::std::mem::MaybeUninit<ipv6_mreq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ipv6_mreq>(),
+        20usize,
+        concat!("Size of: ", stringify!(ipv6_mreq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ipv6_mreq>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ipv6_mreq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ipv6mr_multiaddr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ipv6_mreq),
+            "::",
+            stringify!(ipv6mr_multiaddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ipv6mr_interface) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ipv6_mreq),
+            "::",
+            stringify!(ipv6mr_interface)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+    pub ipi6_addr: in6_addr,
+    pub ipi6_ifindex: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_in6_pktinfo() {
+    const UNINIT: ::std::mem::MaybeUninit<in6_pktinfo> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<in6_pktinfo>(),
+        20usize,
+        concat!("Size of: ", stringify!(in6_pktinfo))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<in6_pktinfo>(),
+        4usize,
+        concat!("Alignment of ", stringify!(in6_pktinfo))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ipi6_addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(in6_pktinfo),
+            "::",
+            stringify!(ipi6_addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ipi6_ifindex) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(in6_pktinfo),
+            "::",
+            stringify!(ipi6_ifindex)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+    pub ip6m_addr: sockaddr_in6,
+    pub ip6m_mtu: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_ip6_mtuinfo() {
+    const UNINIT: ::std::mem::MaybeUninit<ip6_mtuinfo> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<ip6_mtuinfo>(),
+        32usize,
+        concat!("Size of: ", stringify!(ip6_mtuinfo))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<ip6_mtuinfo>(),
+        4usize,
+        concat!("Alignment of ", stringify!(ip6_mtuinfo))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ip6m_addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip6_mtuinfo),
+            "::",
+            stringify!(ip6m_addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ip6m_mtu) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(ip6_mtuinfo),
+            "::",
+            stringify!(ip6m_mtu)
+        )
+    );
+}
+extern "C" {
+    pub fn inet6_opt_init(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_opt_append(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: socklen_t,
+        arg3: ::std::os::raw::c_int,
+        arg4: u_int8_t,
+        arg5: socklen_t,
+        arg6: u_int8_t,
+        arg7: *mut *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_opt_finish(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: socklen_t,
+        arg3: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_opt_set_val(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: ::std::os::raw::c_int,
+        arg3: *mut ::std::os::raw::c_void,
+        arg4: socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_opt_next(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: socklen_t,
+        arg3: ::std::os::raw::c_int,
+        arg4: *mut u_int8_t,
+        arg5: *mut socklen_t,
+        arg6: *mut *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_opt_find(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: socklen_t,
+        arg3: ::std::os::raw::c_int,
+        arg4: u_int8_t,
+        arg5: *mut socklen_t,
+        arg6: *mut *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_opt_get_val(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: ::std::os::raw::c_int,
+        arg3: *mut ::std::os::raw::c_void,
+        arg4: socklen_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_rth_space(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) -> socklen_t;
+}
+extern "C" {
+    pub fn inet6_rth_init(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: socklen_t,
+        arg3: ::std::os::raw::c_int,
+        arg4: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn inet6_rth_add(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: *const in6_addr,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_rth_reverse(
+        arg1: *const ::std::os::raw::c_void,
+        arg2: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_rth_segments(arg1: *const ::std::os::raw::c_void) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn inet6_rth_getaddr(
+        arg1: *const ::std::os::raw::c_void,
+        arg2: ::std::os::raw::c_int,
+    ) -> *mut in6_addr;
+}
+extern "C" {
+    pub fn bindresvport(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut sockaddr_in,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bindresvport_sa(
+        arg1: ::std::os::raw::c_int,
+        arg2: *mut sockaddr,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct radix_node {
+    pub rn_mklist: *mut radix_mask,
+    pub rn_p: *mut radix_node,
+    pub rn_b: ::std::os::raw::c_short,
+    pub rn_bmask: ::std::os::raw::c_char,
+    pub rn_flags: u_char,
+    pub rn_u: radix_node__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union radix_node__bindgen_ty_1 {
+    pub rn_leaf: radix_node__bindgen_ty_1__bindgen_ty_1,
+    pub rn_node: radix_node__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct radix_node__bindgen_ty_1__bindgen_ty_1 {
+    pub rn_Key: caddr_t,
+    pub rn_Mask: caddr_t,
+    pub rn_Dupedkey: *mut radix_node,
+}
+#[test]
+fn bindgen_test_layout_radix_node__bindgen_ty_1__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<radix_node__bindgen_ty_1__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<radix_node__bindgen_ty_1__bindgen_ty_1>(),
+        24usize,
+        concat!(
+            "Size of: ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_1)
+        )
+    );
+    assert_eq!(
+        ::std::mem::align_of::<radix_node__bindgen_ty_1__bindgen_ty_1>(),
+        8usize,
+        concat!(
+            "Alignment of ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_Key) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(rn_Key)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_Mask) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(rn_Mask)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_Dupedkey) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(rn_Dupedkey)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct radix_node__bindgen_ty_1__bindgen_ty_2 {
+    pub rn_Off: ::std::os::raw::c_int,
+    pub rn_L: *mut radix_node,
+    pub rn_R: *mut radix_node,
+}
+#[test]
+fn bindgen_test_layout_radix_node__bindgen_ty_1__bindgen_ty_2() {
+    const UNINIT: ::std::mem::MaybeUninit<radix_node__bindgen_ty_1__bindgen_ty_2> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<radix_node__bindgen_ty_1__bindgen_ty_2>(),
+        24usize,
+        concat!(
+            "Size of: ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_2)
+        )
+    );
+    assert_eq!(
+        ::std::mem::align_of::<radix_node__bindgen_ty_1__bindgen_ty_2>(),
+        8usize,
+        concat!(
+            "Alignment of ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_Off) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_2),
+            "::",
+            stringify!(rn_Off)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_L) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_2),
+            "::",
+            stringify!(rn_L)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_R) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node__bindgen_ty_1__bindgen_ty_2),
+            "::",
+            stringify!(rn_R)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_radix_node__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<radix_node__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<radix_node__bindgen_ty_1>(),
+        24usize,
+        concat!("Size of: ", stringify!(radix_node__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<radix_node__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(radix_node__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_leaf) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node__bindgen_ty_1),
+            "::",
+            stringify!(rn_leaf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_node) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node__bindgen_ty_1),
+            "::",
+            stringify!(rn_node)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_radix_node() {
+    const UNINIT: ::std::mem::MaybeUninit<radix_node> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<radix_node>(),
+        48usize,
+        concat!("Size of: ", stringify!(radix_node))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<radix_node>(),
+        8usize,
+        concat!("Alignment of ", stringify!(radix_node))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_mklist) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node),
+            "::",
+            stringify!(rn_mklist)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_p) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node),
+            "::",
+            stringify!(rn_p)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_b) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node),
+            "::",
+            stringify!(rn_b)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_bmask) as usize - ptr as usize },
+        18usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node),
+            "::",
+            stringify!(rn_bmask)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_flags) as usize - ptr as usize },
+        19usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node),
+            "::",
+            stringify!(rn_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rn_u) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node),
+            "::",
+            stringify!(rn_u)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct radix_mask {
+    pub rm_b: ::std::os::raw::c_short,
+    pub rm_unused: ::std::os::raw::c_char,
+    pub rm_flags: u_char,
+    pub rm_mklist: *mut radix_mask,
+    pub rm_rmu: radix_mask__bindgen_ty_1,
+    pub rm_refs: ::std::os::raw::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union radix_mask__bindgen_ty_1 {
+    pub rmu_mask: caddr_t,
+    pub rmu_leaf: *mut radix_node,
+}
+#[test]
+fn bindgen_test_layout_radix_mask__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<radix_mask__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<radix_mask__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(radix_mask__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<radix_mask__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(radix_mask__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmu_mask) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_mask__bindgen_ty_1),
+            "::",
+            stringify!(rmu_mask)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmu_leaf) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_mask__bindgen_ty_1),
+            "::",
+            stringify!(rmu_leaf)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_radix_mask() {
+    const UNINIT: ::std::mem::MaybeUninit<radix_mask> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<radix_mask>(),
+        32usize,
+        concat!("Size of: ", stringify!(radix_mask))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<radix_mask>(),
+        8usize,
+        concat!("Alignment of ", stringify!(radix_mask))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rm_b) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_mask),
+            "::",
+            stringify!(rm_b)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rm_unused) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_mask),
+            "::",
+            stringify!(rm_unused)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rm_flags) as usize - ptr as usize },
+        3usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_mask),
+            "::",
+            stringify!(rm_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rm_mklist) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_mask),
+            "::",
+            stringify!(rm_mklist)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rm_rmu) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_mask),
+            "::",
+            stringify!(rm_rmu)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rm_refs) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_mask),
+            "::",
+            stringify!(rm_refs)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct radix_node_head {
+    pub rnh_treetop: *mut radix_node,
+    pub rnh_addrsize: ::std::os::raw::c_int,
+    pub rnh_pktsize: ::std::os::raw::c_int,
+    pub rnh_nodes: [radix_node; 3usize],
+    pub rnh_rtableid: u_int,
+}
+#[test]
+fn bindgen_test_layout_radix_node_head() {
+    const UNINIT: ::std::mem::MaybeUninit<radix_node_head> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<radix_node_head>(),
+        168usize,
+        concat!("Size of: ", stringify!(radix_node_head))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<radix_node_head>(),
+        8usize,
+        concat!("Alignment of ", stringify!(radix_node_head))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rnh_treetop) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node_head),
+            "::",
+            stringify!(rnh_treetop)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rnh_addrsize) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node_head),
+            "::",
+            stringify!(rnh_addrsize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rnh_pktsize) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node_head),
+            "::",
+            stringify!(rnh_pktsize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rnh_nodes) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node_head),
+            "::",
+            stringify!(rnh_nodes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rnh_rtableid) as usize - ptr as usize },
+        160usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(radix_node_head),
+            "::",
+            stringify!(rnh_rtableid)
+        )
+    );
+}
+extern "C" {
+    pub fn rn_init(arg1: ::std::os::raw::c_uint);
+}
+extern "C" {
+    pub fn rn_inithead(
+        arg1: *mut *mut ::std::os::raw::c_void,
+        arg2: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn rn_walktree(
+        arg1: *mut radix_node_head,
+        arg2: ::std::option::Option<
+            unsafe extern "C" fn(
+                arg1: *mut radix_node,
+                arg2: *mut ::std::os::raw::c_void,
+                arg3: u_int,
+            ) -> ::std::os::raw::c_int,
+        >,
+        arg3: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn rn_addroute(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: *mut radix_node_head,
+        arg4: *mut radix_node,
+        arg5: u_int8_t,
+    ) -> *mut radix_node;
+}
+extern "C" {
+    pub fn rn_delete(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: *mut radix_node_head,
+        arg4: *mut radix_node,
+    ) -> *mut radix_node;
+}
+extern "C" {
+    pub fn rn_lookup(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: *mut ::std::os::raw::c_void,
+        arg3: *mut radix_node_head,
+    ) -> *mut radix_node;
+}
+extern "C" {
+    pub fn rn_match(
+        arg1: *mut ::std::os::raw::c_void,
+        arg2: *mut radix_node_head,
+    ) -> *mut radix_node;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rt_metrics {
+    pub rmx_pksent: u_int64_t,
+    pub rmx_expire: i64,
+    pub rmx_locks: u_int,
+    pub rmx_mtu: u_int,
+    pub rmx_refcnt: u_int,
+    pub rmx_hopcount: u_int,
+    pub rmx_recvpipe: u_int,
+    pub rmx_sendpipe: u_int,
+    pub rmx_ssthresh: u_int,
+    pub rmx_rtt: u_int,
+    pub rmx_rttvar: u_int,
+    pub rmx_pad: u_int,
+}
+#[test]
+fn bindgen_test_layout_rt_metrics() {
+    const UNINIT: ::std::mem::MaybeUninit<rt_metrics> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rt_metrics>(),
+        56usize,
+        concat!("Size of: ", stringify!(rt_metrics))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rt_metrics>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rt_metrics))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_pksent) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_pksent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_expire) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_expire)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_locks) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_locks)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_mtu) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_mtu)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_refcnt) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_refcnt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_hopcount) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_hopcount)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_recvpipe) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_recvpipe)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_sendpipe) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_sendpipe)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_ssthresh) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_ssthresh)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_rtt) as usize - ptr as usize },
+        44usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_rtt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_rttvar) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_rttvar)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rmx_pad) as usize - ptr as usize },
+        52usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_metrics),
+            "::",
+            stringify!(rmx_pad)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtstat {
+    pub rts_badredirect: u_int32_t,
+    pub rts_dynamic: u_int32_t,
+    pub rts_newgateway: u_int32_t,
+    pub rts_unreach: u_int32_t,
+    pub rts_wildcard: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_rtstat() {
+    const UNINIT: ::std::mem::MaybeUninit<rtstat> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rtstat>(),
+        20usize,
+        concat!("Size of: ", stringify!(rtstat))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rtstat>(),
+        4usize,
+        concat!("Alignment of ", stringify!(rtstat))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rts_badredirect) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rtstat),
+            "::",
+            stringify!(rts_badredirect)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rts_dynamic) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rtstat),
+            "::",
+            stringify!(rts_dynamic)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rts_newgateway) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rtstat),
+            "::",
+            stringify!(rts_newgateway)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rts_unreach) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rtstat),
+            "::",
+            stringify!(rts_unreach)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rts_wildcard) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rtstat),
+            "::",
+            stringify!(rts_wildcard)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rt_tableinfo {
+    pub rti_tableid: u_short,
+    pub rti_domainid: u_short,
+}
+#[test]
+fn bindgen_test_layout_rt_tableinfo() {
+    const UNINIT: ::std::mem::MaybeUninit<rt_tableinfo> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rt_tableinfo>(),
+        4usize,
+        concat!("Size of: ", stringify!(rt_tableinfo))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rt_tableinfo>(),
+        2usize,
+        concat!("Alignment of ", stringify!(rt_tableinfo))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rti_tableid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_tableinfo),
+            "::",
+            stringify!(rti_tableid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rti_domainid) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_tableinfo),
+            "::",
+            stringify!(rti_domainid)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rt_msghdr {
+    pub rtm_msglen: u_short,
+    pub rtm_version: u_char,
+    pub rtm_type: u_char,
+    pub rtm_hdrlen: u_short,
+    pub rtm_index: u_short,
+    pub rtm_tableid: u_short,
+    pub rtm_priority: u_char,
+    pub rtm_mpls: u_char,
+    pub rtm_addrs: ::std::os::raw::c_int,
+    pub rtm_flags: ::std::os::raw::c_int,
+    pub rtm_fmask: ::std::os::raw::c_int,
+    pub rtm_pid: pid_t,
+    pub rtm_seq: ::std::os::raw::c_int,
+    pub rtm_errno: ::std::os::raw::c_int,
+    pub rtm_inits: u_int,
+    pub rtm_rmx: rt_metrics,
+}
+#[test]
+fn bindgen_test_layout_rt_msghdr() {
+    const UNINIT: ::std::mem::MaybeUninit<rt_msghdr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rt_msghdr>(),
+        96usize,
+        concat!("Size of: ", stringify!(rt_msghdr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rt_msghdr>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rt_msghdr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_msglen) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_msglen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_version) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_type) as usize - ptr as usize },
+        3usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_hdrlen) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_hdrlen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_index) as usize - ptr as usize },
+        6usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_index)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_tableid) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_tableid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_priority) as usize - ptr as usize },
+        10usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_priority)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_mpls) as usize - ptr as usize },
+        11usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_mpls)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_addrs) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_addrs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_flags) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_fmask) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_fmask)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_pid) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_pid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_seq) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_seq)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_errno) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_errno)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_inits) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_inits)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtm_rmx) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_msghdr),
+            "::",
+            stringify!(rtm_rmx)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_rtlabel {
+    pub sr_len: u_int8_t,
+    pub sr_family: sa_family_t,
+    pub sr_label: [::std::os::raw::c_char; 32usize],
+}
+#[test]
+fn bindgen_test_layout_sockaddr_rtlabel() {
+    const UNINIT: ::std::mem::MaybeUninit<sockaddr_rtlabel> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockaddr_rtlabel>(),
+        34usize,
+        concat!("Size of: ", stringify!(sockaddr_rtlabel))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockaddr_rtlabel>(),
+        1usize,
+        concat!("Alignment of ", stringify!(sockaddr_rtlabel))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtlabel),
+            "::",
+            stringify!(sr_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_family) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtlabel),
+            "::",
+            stringify!(sr_family)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_label) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtlabel),
+            "::",
+            stringify!(sr_label)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_rtdns {
+    pub sr_len: u_int8_t,
+    pub sr_family: sa_family_t,
+    pub sr_dns: [::std::os::raw::c_char; 128usize],
+}
+#[test]
+fn bindgen_test_layout_sockaddr_rtdns() {
+    const UNINIT: ::std::mem::MaybeUninit<sockaddr_rtdns> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockaddr_rtdns>(),
+        130usize,
+        concat!("Size of: ", stringify!(sockaddr_rtdns))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockaddr_rtdns>(),
+        1usize,
+        concat!("Alignment of ", stringify!(sockaddr_rtdns))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtdns),
+            "::",
+            stringify!(sr_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_family) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtdns),
+            "::",
+            stringify!(sr_family)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_dns) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtdns),
+            "::",
+            stringify!(sr_dns)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_rtstatic {
+    pub sr_len: u_int8_t,
+    pub sr_family: sa_family_t,
+    pub sr_static: [::std::os::raw::c_char; 128usize],
+}
+#[test]
+fn bindgen_test_layout_sockaddr_rtstatic() {
+    const UNINIT: ::std::mem::MaybeUninit<sockaddr_rtstatic> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockaddr_rtstatic>(),
+        130usize,
+        concat!("Size of: ", stringify!(sockaddr_rtstatic))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockaddr_rtstatic>(),
+        1usize,
+        concat!("Alignment of ", stringify!(sockaddr_rtstatic))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtstatic),
+            "::",
+            stringify!(sr_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_family) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtstatic),
+            "::",
+            stringify!(sr_family)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_static) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtstatic),
+            "::",
+            stringify!(sr_static)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_rtsearch {
+    pub sr_len: u_int8_t,
+    pub sr_family: sa_family_t,
+    pub sr_search: [::std::os::raw::c_char; 128usize],
+}
+#[test]
+fn bindgen_test_layout_sockaddr_rtsearch() {
+    const UNINIT: ::std::mem::MaybeUninit<sockaddr_rtsearch> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<sockaddr_rtsearch>(),
+        130usize,
+        concat!("Size of: ", stringify!(sockaddr_rtsearch))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<sockaddr_rtsearch>(),
+        1usize,
+        concat!("Alignment of ", stringify!(sockaddr_rtsearch))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtsearch),
+            "::",
+            stringify!(sr_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_family) as usize - ptr as usize },
+        1usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtsearch),
+            "::",
+            stringify!(sr_family)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sr_search) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(sockaddr_rtsearch),
+            "::",
+            stringify!(sr_search)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rt_addrinfo {
+    pub rti_addrs: ::std::os::raw::c_int,
+    pub rti_info: [*const sockaddr; 15usize],
+    pub rti_flags: ::std::os::raw::c_int,
+    pub rti_ifa: *mut ifaddr,
+    pub rti_rtm: *mut rt_msghdr,
+    pub rti_mpls: u_char,
+}
+#[test]
+fn bindgen_test_layout_rt_addrinfo() {
+    const UNINIT: ::std::mem::MaybeUninit<rt_addrinfo> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<rt_addrinfo>(),
+        160usize,
+        concat!("Size of: ", stringify!(rt_addrinfo))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<rt_addrinfo>(),
+        8usize,
+        concat!("Alignment of ", stringify!(rt_addrinfo))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rti_addrs) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_addrinfo),
+            "::",
+            stringify!(rti_addrs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rti_info) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_addrinfo),
+            "::",
+            stringify!(rti_info)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rti_flags) as usize - ptr as usize },
+        128usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_addrinfo),
+            "::",
+            stringify!(rti_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rti_ifa) as usize - ptr as usize },
+        136usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_addrinfo),
+            "::",
+            stringify!(rti_ifa)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rti_rtm) as usize - ptr as usize },
+        144usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_addrinfo),
+            "::",
+            stringify!(rti_rtm)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rti_mpls) as usize - ptr as usize },
+        152usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(rt_addrinfo),
+            "::",
+            stringify!(rti_mpls)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct route {
+    pub ro_rt: *mut rtentry,
+    pub ro_generation: u_long,
+    pub ro_tableid: u_long,
+    pub __bindgen_anon_1: route__bindgen_ty_1,
+    pub __bindgen_anon_2: route__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union route__bindgen_ty_1 {
+    pub ro_dstsa: sockaddr,
+    pub ro_dstsin: sockaddr_in,
+    pub ro_dstsin6: sockaddr_in6,
+}
+#[test]
+fn bindgen_test_layout_route__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<route__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<route__bindgen_ty_1>(),
+        28usize,
+        concat!("Size of: ", stringify!(route__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<route__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(route__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ro_dstsa) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(route__bindgen_ty_1),
+            "::",
+            stringify!(ro_dstsa)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ro_dstsin) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(route__bindgen_ty_1),
+            "::",
+            stringify!(ro_dstsin)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ro_dstsin6) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(route__bindgen_ty_1),
+            "::",
+            stringify!(ro_dstsin6)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union route__bindgen_ty_2 {
+    pub ro_srcin: in_addr,
+    pub ro_srcin6: in6_addr,
+}
+#[test]
+fn bindgen_test_layout_route__bindgen_ty_2() {
+    const UNINIT: ::std::mem::MaybeUninit<route__bindgen_ty_2> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<route__bindgen_ty_2>(),
+        16usize,
+        concat!("Size of: ", stringify!(route__bindgen_ty_2))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<route__bindgen_ty_2>(),
+        4usize,
+        concat!("Alignment of ", stringify!(route__bindgen_ty_2))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ro_srcin) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(route__bindgen_ty_2),
+            "::",
+            stringify!(ro_srcin)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ro_srcin6) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(route__bindgen_ty_2),
+            "::",
+            stringify!(ro_srcin6)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_route() {
+    const UNINIT: ::std::mem::MaybeUninit<route> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<route>(),
+        72usize,
+        concat!("Size of: ", stringify!(route))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<route>(),
+        8usize,
+        concat!("Alignment of ", stringify!(route))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ro_rt) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(route),
+            "::",
+            stringify!(ro_rt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ro_generation) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(route),
+            "::",
+            stringify!(ro_generation)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ro_tableid) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(route),
+            "::",
+            stringify!(ro_tableid)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6_hdr {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mbuf_list {
+    _unused: [u8; 0],
+}
+pub type pf_refcnt_t = refcnt;
+pub const PF_INOUT: _bindgen_ty_1 = 0;
+pub const PF_IN: _bindgen_ty_1 = 1;
+pub const PF_OUT: _bindgen_ty_1 = 2;
+pub const PF_FWD: _bindgen_ty_1 = 3;
+pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
+pub const PF_PASS: _bindgen_ty_2 = 0;
+pub const PF_DROP: _bindgen_ty_2 = 1;
+pub const PF_SCRUB: _bindgen_ty_2 = 2;
+pub const PF_NOSCRUB: _bindgen_ty_2 = 3;
+pub const PF_NAT: _bindgen_ty_2 = 4;
+pub const PF_NONAT: _bindgen_ty_2 = 5;
+pub const PF_BINAT: _bindgen_ty_2 = 6;
+pub const PF_NOBINAT: _bindgen_ty_2 = 7;
+pub const PF_RDR: _bindgen_ty_2 = 8;
+pub const PF_NORDR: _bindgen_ty_2 = 9;
+pub const PF_SYNPROXY_DROP: _bindgen_ty_2 = 10;
+pub const PF_DEFER: _bindgen_ty_2 = 11;
+pub const PF_MATCH: _bindgen_ty_2 = 12;
+pub const PF_DIVERT: _bindgen_ty_2 = 13;
+pub const PF_RT: _bindgen_ty_2 = 14;
+pub const PF_AFRT: _bindgen_ty_2 = 15;
+pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
+pub const PF_TRANS_RULESET: _bindgen_ty_3 = 0;
+pub const PF_TRANS_TABLE: _bindgen_ty_3 = 1;
+pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
+pub const PF_OP_NONE: _bindgen_ty_4 = 0;
+pub const PF_OP_IRG: _bindgen_ty_4 = 1;
+pub const PF_OP_EQ: _bindgen_ty_4 = 2;
+pub const PF_OP_NE: _bindgen_ty_4 = 3;
+pub const PF_OP_LT: _bindgen_ty_4 = 4;
+pub const PF_OP_LE: _bindgen_ty_4 = 5;
+pub const PF_OP_GT: _bindgen_ty_4 = 6;
+pub const PF_OP_GE: _bindgen_ty_4 = 7;
+pub const PF_OP_XRG: _bindgen_ty_4 = 8;
+pub const PF_OP_RRG: _bindgen_ty_4 = 9;
+pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
+pub const PF_CHANGE_NONE: _bindgen_ty_5 = 0;
+pub const PF_CHANGE_ADD_HEAD: _bindgen_ty_5 = 1;
+pub const PF_CHANGE_ADD_TAIL: _bindgen_ty_5 = 2;
+pub const PF_CHANGE_ADD_BEFORE: _bindgen_ty_5 = 3;
+pub const PF_CHANGE_ADD_AFTER: _bindgen_ty_5 = 4;
+pub const PF_CHANGE_REMOVE: _bindgen_ty_5 = 5;
+pub const PF_CHANGE_GET_TICKET: _bindgen_ty_5 = 6;
+pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
+pub const PF_GET_NONE: _bindgen_ty_6 = 0;
+pub const PF_GET_CLR_CNTR: _bindgen_ty_6 = 1;
+pub type _bindgen_ty_6 = ::std::os::raw::c_uint;
+pub const PF_SK_WIRE: _bindgen_ty_7 = 0;
+pub const PF_SK_STACK: _bindgen_ty_7 = 1;
+pub const PF_SK_BOTH: _bindgen_ty_7 = 2;
+pub type _bindgen_ty_7 = ::std::os::raw::c_uint;
+pub const PF_PEER_SRC: _bindgen_ty_8 = 0;
+pub const PF_PEER_DST: _bindgen_ty_8 = 1;
+pub const PF_PEER_BOTH: _bindgen_ty_8 = 2;
+pub type _bindgen_ty_8 = ::std::os::raw::c_uint;
+pub const PFTM_TCP_FIRST_PACKET: _bindgen_ty_9 = 0;
+pub const PFTM_TCP_OPENING: _bindgen_ty_9 = 1;
+pub const PFTM_TCP_ESTABLISHED: _bindgen_ty_9 = 2;
+pub const PFTM_TCP_CLOSING: _bindgen_ty_9 = 3;
+pub const PFTM_TCP_FIN_WAIT: _bindgen_ty_9 = 4;
+pub const PFTM_TCP_CLOSED: _bindgen_ty_9 = 5;
+pub const PFTM_UDP_FIRST_PACKET: _bindgen_ty_9 = 6;
+pub const PFTM_UDP_SINGLE: _bindgen_ty_9 = 7;
+pub const PFTM_UDP_MULTIPLE: _bindgen_ty_9 = 8;
+pub const PFTM_ICMP_FIRST_PACKET: _bindgen_ty_9 = 9;
+pub const PFTM_ICMP_ERROR_REPLY: _bindgen_ty_9 = 10;
+pub const PFTM_OTHER_FIRST_PACKET: _bindgen_ty_9 = 11;
+pub const PFTM_OTHER_SINGLE: _bindgen_ty_9 = 12;
+pub const PFTM_OTHER_MULTIPLE: _bindgen_ty_9 = 13;
+pub const PFTM_FRAG: _bindgen_ty_9 = 14;
+pub const PFTM_INTERVAL: _bindgen_ty_9 = 15;
+pub const PFTM_ADAPTIVE_START: _bindgen_ty_9 = 16;
+pub const PFTM_ADAPTIVE_END: _bindgen_ty_9 = 17;
+pub const PFTM_SRC_NODE: _bindgen_ty_9 = 18;
+pub const PFTM_TS_DIFF: _bindgen_ty_9 = 19;
+pub const PFTM_MAX: _bindgen_ty_9 = 20;
+pub const PFTM_PURGE: _bindgen_ty_9 = 21;
+pub const PFTM_UNLINKED: _bindgen_ty_9 = 22;
+pub type _bindgen_ty_9 = ::std::os::raw::c_uint;
+pub const PF_NOPFROUTE: _bindgen_ty_10 = 0;
+pub const PF_ROUTETO: _bindgen_ty_10 = 1;
+pub const PF_DUPTO: _bindgen_ty_10 = 2;
+pub const PF_REPLYTO: _bindgen_ty_10 = 3;
+pub type _bindgen_ty_10 = ::std::os::raw::c_uint;
+pub const PF_LIMIT_STATES: _bindgen_ty_11 = 0;
+pub const PF_LIMIT_SRC_NODES: _bindgen_ty_11 = 1;
+pub const PF_LIMIT_FRAGS: _bindgen_ty_11 = 2;
+pub const PF_LIMIT_TABLES: _bindgen_ty_11 = 3;
+pub const PF_LIMIT_TABLE_ENTRIES: _bindgen_ty_11 = 4;
+pub const PF_LIMIT_PKTDELAY_PKTS: _bindgen_ty_11 = 5;
+pub const PF_LIMIT_ANCHORS: _bindgen_ty_11 = 6;
+pub const PF_LIMIT_MAX: _bindgen_ty_11 = 7;
+pub type _bindgen_ty_11 = ::std::os::raw::c_uint;
+pub const PF_POOL_NONE: _bindgen_ty_12 = 0;
+pub const PF_POOL_BITMASK: _bindgen_ty_12 = 1;
+pub const PF_POOL_RANDOM: _bindgen_ty_12 = 2;
+pub const PF_POOL_SRCHASH: _bindgen_ty_12 = 3;
+pub const PF_POOL_ROUNDROBIN: _bindgen_ty_12 = 4;
+pub const PF_POOL_LEASTSTATES: _bindgen_ty_12 = 5;
+pub type _bindgen_ty_12 = ::std::os::raw::c_uint;
+pub const PF_ADDR_ADDRMASK: _bindgen_ty_13 = 0;
+pub const PF_ADDR_NOROUTE: _bindgen_ty_13 = 1;
+pub const PF_ADDR_DYNIFTL: _bindgen_ty_13 = 2;
+pub const PF_ADDR_TABLE: _bindgen_ty_13 = 3;
+pub const PF_ADDR_RTLABEL: _bindgen_ty_13 = 4;
+pub const PF_ADDR_URPFFAILED: _bindgen_ty_13 = 5;
+pub const PF_ADDR_RANGE: _bindgen_ty_13 = 6;
+pub const PF_ADDR_NONE: _bindgen_ty_13 = 7;
+pub type _bindgen_ty_13 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_addr {
+    pub pfa: pf_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pf_addr__bindgen_ty_1 {
+    pub v4: in_addr,
+    pub v6: in6_addr,
+    pub addr8: [u_int8_t; 16usize],
+    pub addr16: [u_int16_t; 8usize],
+    pub addr32: [u_int32_t; 4usize],
+}
+#[test]
+fn bindgen_test_layout_pf_addr__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_addr__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_addr__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_addr__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_addr__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_addr__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).v4) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr__bindgen_ty_1),
+            "::",
+            stringify!(v4)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).v6) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr__bindgen_ty_1),
+            "::",
+            stringify!(v6)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr8) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr__bindgen_ty_1),
+            "::",
+            stringify!(addr8)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr16) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr__bindgen_ty_1),
+            "::",
+            stringify!(addr16)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr32) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr__bindgen_ty_1),
+            "::",
+            stringify!(addr32)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_addr() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_addr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_addr>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_addr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_addr>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_addr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfa) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr),
+            "::",
+            stringify!(pfa)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_addr_wrap {
+    pub v: pf_addr_wrap__bindgen_ty_1,
+    pub p: pf_addr_wrap__bindgen_ty_2,
+    pub type_: u_int8_t,
+    pub iflags: u_int8_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pf_addr_wrap__bindgen_ty_1 {
+    pub a: pf_addr_wrap__bindgen_ty_1__bindgen_ty_1,
+    pub ifname: [::std::os::raw::c_char; 16usize],
+    pub tblname: [::std::os::raw::c_char; 32usize],
+    pub rtlabelname: [::std::os::raw::c_char; 32usize],
+    pub rtlabel: u_int32_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_addr_wrap__bindgen_ty_1__bindgen_ty_1 {
+    pub addr: pf_addr,
+    pub mask: pf_addr,
+}
+#[test]
+fn bindgen_test_layout_pf_addr_wrap__bindgen_ty_1__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_addr_wrap__bindgen_ty_1__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_addr_wrap__bindgen_ty_1__bindgen_ty_1>(),
+        32usize,
+        concat!(
+            "Size of: ",
+            stringify!(pf_addr_wrap__bindgen_ty_1__bindgen_ty_1)
+        )
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_addr_wrap__bindgen_ty_1__bindgen_ty_1>(),
+        4usize,
+        concat!(
+            "Alignment of ",
+            stringify!(pf_addr_wrap__bindgen_ty_1__bindgen_ty_1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(mask)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_addr_wrap__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_addr_wrap__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_addr_wrap__bindgen_ty_1>(),
+        32usize,
+        concat!("Size of: ", stringify!(pf_addr_wrap__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_addr_wrap__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_addr_wrap__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_1),
+            "::",
+            stringify!(a)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifname) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_1),
+            "::",
+            stringify!(ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tblname) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_1),
+            "::",
+            stringify!(tblname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtlabelname) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_1),
+            "::",
+            stringify!(rtlabelname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtlabel) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_1),
+            "::",
+            stringify!(rtlabel)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pf_addr_wrap__bindgen_ty_2 {
+    pub dyn_: *mut pfi_dynaddr,
+    pub tbl: *mut pfr_ktable,
+    pub dyncnt: ::std::os::raw::c_int,
+    pub tblcnt: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pf_addr_wrap__bindgen_ty_2() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_addr_wrap__bindgen_ty_2> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_addr_wrap__bindgen_ty_2>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_addr_wrap__bindgen_ty_2))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_addr_wrap__bindgen_ty_2>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_addr_wrap__bindgen_ty_2))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dyn_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_2),
+            "::",
+            stringify!(dyn_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tbl) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_2),
+            "::",
+            stringify!(tbl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dyncnt) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_2),
+            "::",
+            stringify!(dyncnt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tblcnt) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap__bindgen_ty_2),
+            "::",
+            stringify!(tblcnt)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_addr_wrap() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_addr_wrap> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_addr_wrap>(),
+        48usize,
+        concat!("Size of: ", stringify!(pf_addr_wrap))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_addr_wrap>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_addr_wrap))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap),
+            "::",
+            stringify!(v)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap),
+            "::",
+            stringify!(p)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).iflags) as usize - ptr as usize },
+        41usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_addr_wrap),
+            "::",
+            stringify!(iflags)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rule_uid {
+    pub uid: [uid_t; 2usize],
+    pub op: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pf_rule_uid() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule_uid> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule_uid>(),
+        12usize,
+        concat!("Size of: ", stringify!(pf_rule_uid))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule_uid>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_rule_uid))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).uid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_uid),
+            "::",
+            stringify!(uid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).op) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_uid),
+            "::",
+            stringify!(op)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rule_gid {
+    pub gid: [uid_t; 2usize],
+    pub op: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pf_rule_gid() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule_gid> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule_gid>(),
+        12usize,
+        concat!("Size of: ", stringify!(pf_rule_gid))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule_gid>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_rule_gid))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).gid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_gid),
+            "::",
+            stringify!(gid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).op) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_gid),
+            "::",
+            stringify!(op)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_rule_addr {
+    pub addr: pf_addr_wrap,
+    pub port: [u_int16_t; 2usize],
+    pub neg: u_int8_t,
+    pub port_op: u_int8_t,
+    pub weight: u_int16_t,
+}
+#[test]
+fn bindgen_test_layout_pf_rule_addr() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule_addr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule_addr>(),
+        56usize,
+        concat!("Size of: ", stringify!(pf_rule_addr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule_addr>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_rule_addr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_addr),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_addr),
+            "::",
+            stringify!(port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).neg) as usize - ptr as usize },
+        52usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_addr),
+            "::",
+            stringify!(neg)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).port_op) as usize - ptr as usize },
+        53usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_addr),
+            "::",
+            stringify!(port_op)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).weight) as usize - ptr as usize },
+        54usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_addr),
+            "::",
+            stringify!(weight)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_threshold {
+    pub limit: u_int32_t,
+    pub seconds: u_int32_t,
+    pub count: u_int32_t,
+    pub last: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_pf_threshold() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_threshold> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_threshold>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_threshold))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_threshold>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_threshold))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_threshold),
+            "::",
+            stringify!(limit)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seconds) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_threshold),
+            "::",
+            stringify!(seconds)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_threshold),
+            "::",
+            stringify!(count)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).last) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_threshold),
+            "::",
+            stringify!(last)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_poolhashkey {
+    pub pfk: pf_poolhashkey__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pf_poolhashkey__bindgen_ty_1 {
+    pub key8: [u_int8_t; 16usize],
+    pub key16: [u_int16_t; 8usize],
+    pub key32: [u_int32_t; 4usize],
+}
+#[test]
+fn bindgen_test_layout_pf_poolhashkey__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_poolhashkey__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_poolhashkey__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_poolhashkey__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_poolhashkey__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_poolhashkey__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).key8) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_poolhashkey__bindgen_ty_1),
+            "::",
+            stringify!(key8)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).key16) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_poolhashkey__bindgen_ty_1),
+            "::",
+            stringify!(key16)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).key32) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_poolhashkey__bindgen_ty_1),
+            "::",
+            stringify!(key32)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_poolhashkey() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_poolhashkey> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_poolhashkey>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_poolhashkey))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_poolhashkey>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_poolhashkey))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfk) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_poolhashkey),
+            "::",
+            stringify!(pfk)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_pool {
+    pub addr: pf_addr_wrap,
+    pub key: pf_poolhashkey,
+    pub counter: pf_addr,
+    pub ifname: [::std::os::raw::c_char; 16usize],
+    pub kif: *mut pfi_kif,
+    pub tblidx: ::std::os::raw::c_int,
+    pub states: u_int64_t,
+    pub curweight: ::std::os::raw::c_int,
+    pub weight: u_int16_t,
+    pub proxy_port: [u_int16_t; 2usize],
+    pub port_op: u_int8_t,
+    pub opts: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pf_pool() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_pool> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_pool>(),
+        136usize,
+        concat!("Size of: ", stringify!(pf_pool))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_pool>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_pool))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(key)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).counter) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(counter)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifname) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kif) as usize - ptr as usize },
+        96usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(kif)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tblidx) as usize - ptr as usize },
+        104usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(tblidx)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).states) as usize - ptr as usize },
+        112usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(states)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).curweight) as usize - ptr as usize },
+        120usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(curweight)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).weight) as usize - ptr as usize },
+        124usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(weight)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).proxy_port) as usize - ptr as usize },
+        126usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(proxy_port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).port_op) as usize - ptr as usize },
+        130usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(port_op)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).opts) as usize - ptr as usize },
+        131usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pool),
+            "::",
+            stringify!(opts)
+        )
+    );
+}
+pub type pf_osfp_t = u_int32_t;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_osfp_entry {
+    pub fp_entry: pf_osfp_entry__bindgen_ty_1,
+    pub fp_os: pf_osfp_t,
+    pub fp_enflags: ::std::os::raw::c_int,
+    pub fp_class_nm: [u_char; 32usize],
+    pub fp_version_nm: [u_char; 32usize],
+    pub fp_subtype_nm: [u_char; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_osfp_entry__bindgen_ty_1 {
+    pub sle_next: *mut pf_osfp_entry,
+}
+#[test]
+fn bindgen_test_layout_pf_osfp_entry__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_osfp_entry__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_osfp_entry__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_osfp_entry__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_osfp_entry__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_osfp_entry__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sle_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_entry__bindgen_ty_1),
+            "::",
+            stringify!(sle_next)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_osfp_entry() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_osfp_entry> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_osfp_entry>(),
+        112usize,
+        concat!("Size of: ", stringify!(pf_osfp_entry))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_osfp_entry>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_osfp_entry))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_entry) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_entry),
+            "::",
+            stringify!(fp_entry)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_os) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_entry),
+            "::",
+            stringify!(fp_os)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_enflags) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_entry),
+            "::",
+            stringify!(fp_enflags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_class_nm) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_entry),
+            "::",
+            stringify!(fp_class_nm)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_version_nm) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_entry),
+            "::",
+            stringify!(fp_version_nm)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_subtype_nm) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_entry),
+            "::",
+            stringify!(fp_subtype_nm)
+        )
+    );
+}
+pub type pf_tcpopts_t = u_int64_t;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_os_fingerprint {
+    pub fp_oses: pf_os_fingerprint_pf_osfp_enlist,
+    pub fp_tcpopts: pf_tcpopts_t,
+    pub fp_wsize: u_int16_t,
+    pub fp_psize: u_int16_t,
+    pub fp_mss: u_int16_t,
+    pub fp_flags: u_int16_t,
+    pub fp_optcnt: u_int8_t,
+    pub fp_wscale: u_int8_t,
+    pub fp_ttl: u_int8_t,
+    pub fp_next: pf_os_fingerprint__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_os_fingerprint_pf_osfp_enlist {
+    pub slh_first: *mut pf_osfp_entry,
+}
+#[test]
+fn bindgen_test_layout_pf_os_fingerprint_pf_osfp_enlist() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_os_fingerprint_pf_osfp_enlist> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_os_fingerprint_pf_osfp_enlist>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_os_fingerprint_pf_osfp_enlist))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_os_fingerprint_pf_osfp_enlist>(),
+        8usize,
+        concat!(
+            "Alignment of ",
+            stringify!(pf_os_fingerprint_pf_osfp_enlist)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).slh_first) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint_pf_osfp_enlist),
+            "::",
+            stringify!(slh_first)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_os_fingerprint__bindgen_ty_1 {
+    pub sle_next: *mut pf_os_fingerprint,
+}
+#[test]
+fn bindgen_test_layout_pf_os_fingerprint__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_os_fingerprint__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_os_fingerprint__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_os_fingerprint__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_os_fingerprint__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_os_fingerprint__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sle_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint__bindgen_ty_1),
+            "::",
+            stringify!(sle_next)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_os_fingerprint() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_os_fingerprint> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_os_fingerprint>(),
+        40usize,
+        concat!("Size of: ", stringify!(pf_os_fingerprint))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_os_fingerprint>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_os_fingerprint))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_oses) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_oses)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_tcpopts) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_tcpopts)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_wsize) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_wsize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_psize) as usize - ptr as usize },
+        18usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_psize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_mss) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_mss)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_flags) as usize - ptr as usize },
+        22usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_optcnt) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_optcnt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_wscale) as usize - ptr as usize },
+        25usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_wscale)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_ttl) as usize - ptr as usize },
+        26usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_ttl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_next) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_os_fingerprint),
+            "::",
+            stringify!(fp_next)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_osfp_ioctl {
+    pub fp_os: pf_osfp_entry,
+    pub fp_tcpopts: pf_tcpopts_t,
+    pub fp_wsize: u_int16_t,
+    pub fp_psize: u_int16_t,
+    pub fp_mss: u_int16_t,
+    pub fp_flags: u_int16_t,
+    pub fp_optcnt: u_int8_t,
+    pub fp_wscale: u_int8_t,
+    pub fp_ttl: u_int8_t,
+    pub fp_getnum: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pf_osfp_ioctl() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_osfp_ioctl> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_osfp_ioctl>(),
+        136usize,
+        concat!("Size of: ", stringify!(pf_osfp_ioctl))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_osfp_ioctl>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_osfp_ioctl))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_os) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_os)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_tcpopts) as usize - ptr as usize },
+        112usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_tcpopts)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_wsize) as usize - ptr as usize },
+        120usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_wsize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_psize) as usize - ptr as usize },
+        122usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_psize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_mss) as usize - ptr as usize },
+        124usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_mss)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_flags) as usize - ptr as usize },
+        126usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_optcnt) as usize - ptr as usize },
+        128usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_optcnt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_wscale) as usize - ptr as usize },
+        129usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_wscale)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_ttl) as usize - ptr as usize },
+        130usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_ttl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_getnum) as usize - ptr as usize },
+        132usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_osfp_ioctl),
+            "::",
+            stringify!(fp_getnum)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rule_actions {
+    pub rtableid: ::std::os::raw::c_int,
+    pub qid: u_int16_t,
+    pub pqid: u_int16_t,
+    pub max_mss: u_int16_t,
+    pub flags: u_int16_t,
+    pub delay: u_int16_t,
+    pub log: u_int8_t,
+    pub set_tos: u_int8_t,
+    pub min_ttl: u_int8_t,
+    pub set_prio: [u_int8_t; 2usize],
+    pub pad: [u_int8_t; 1usize],
+}
+#[test]
+fn bindgen_test_layout_pf_rule_actions() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule_actions> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule_actions>(),
+        20usize,
+        concat!("Size of: ", stringify!(pf_rule_actions))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule_actions>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_rule_actions))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtableid) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(rtableid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).qid) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(qid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pqid) as usize - ptr as usize },
+        6usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(pqid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_mss) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(max_mss)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        10usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).delay) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(delay)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize },
+        14usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(log)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).set_tos) as usize - ptr as usize },
+        15usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(set_tos)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).min_ttl) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(min_ttl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).set_prio) as usize - ptr as usize },
+        17usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(set_prio)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        19usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_actions),
+            "::",
+            stringify!(pad)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pf_rule_ptr {
+    pub ptr: *mut pf_rule,
+    pub nr: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_pf_rule_ptr() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule_ptr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule_ptr>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_rule_ptr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule_ptr>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_rule_ptr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_ptr),
+            "::",
+            stringify!(ptr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_ptr),
+            "::",
+            stringify!(nr)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_rule {
+    pub src: pf_rule_addr,
+    pub dst: pf_rule_addr,
+    pub skip: [pf_rule_ptr; 9usize],
+    pub label: [::std::os::raw::c_char; 64usize],
+    pub ifname: [::std::os::raw::c_char; 16usize],
+    pub rcv_ifname: [::std::os::raw::c_char; 16usize],
+    pub qname: [::std::os::raw::c_char; 64usize],
+    pub pqname: [::std::os::raw::c_char; 64usize],
+    pub tagname: [::std::os::raw::c_char; 64usize],
+    pub match_tagname: [::std::os::raw::c_char; 64usize],
+    pub overload_tblname: [::std::os::raw::c_char; 32usize],
+    pub entries: pf_rule__bindgen_ty_1,
+    pub nat: pf_pool,
+    pub rdr: pf_pool,
+    pub route: pf_pool,
+    pub pktrate: pf_threshold,
+    pub evaluations: u_int64_t,
+    pub packets: [u_int64_t; 2usize],
+    pub bytes: [u_int64_t; 2usize],
+    pub kif: *mut pfi_kif,
+    pub rcv_kif: *mut pfi_kif,
+    pub anchor: *mut pf_anchor,
+    pub overload_tbl: *mut pfr_ktable,
+    pub os_fingerprint: pf_osfp_t,
+    pub rtableid: ::std::os::raw::c_int,
+    pub onrdomain: ::std::os::raw::c_int,
+    pub timeout: [u_int32_t; 20usize],
+    pub states_cur: u_int32_t,
+    pub states_tot: u_int32_t,
+    pub max_states: u_int32_t,
+    pub src_nodes: u_int32_t,
+    pub max_src_nodes: u_int32_t,
+    pub max_src_states: u_int32_t,
+    pub max_src_conn: u_int32_t,
+    pub max_src_conn_rate: pf_rule__bindgen_ty_2,
+    pub qid: u_int32_t,
+    pub pqid: u_int32_t,
+    pub rt_listid: u_int32_t,
+    pub nr: u_int32_t,
+    pub prob: u_int32_t,
+    pub cuid: uid_t,
+    pub cpid: pid_t,
+    pub return_icmp: u_int16_t,
+    pub return_icmp6: u_int16_t,
+    pub max_mss: u_int16_t,
+    pub tag: u_int16_t,
+    pub match_tag: u_int16_t,
+    pub scrub_flags: u_int16_t,
+    pub delay: u_int16_t,
+    pub uid: pf_rule_uid,
+    pub gid: pf_rule_gid,
+    pub rule_flag: u_int32_t,
+    pub action: u_int8_t,
+    pub direction: u_int8_t,
+    pub log: u_int8_t,
+    pub logif: u_int8_t,
+    pub quick: u_int8_t,
+    pub ifnot: u_int8_t,
+    pub match_tag_not: u_int8_t,
+    pub keep_state: u_int8_t,
+    pub af: sa_family_t,
+    pub proto: u_int8_t,
+    pub type_: u_int16_t,
+    pub code: u_int16_t,
+    pub flags: u_int8_t,
+    pub flagset: u_int8_t,
+    pub min_ttl: u_int8_t,
+    pub allow_opts: u_int8_t,
+    pub rt: u_int8_t,
+    pub return_ttl: u_int8_t,
+    pub tos: u_int8_t,
+    pub set_tos: u_int8_t,
+    pub anchor_relative: u_int8_t,
+    pub anchor_wildcard: u_int8_t,
+    pub flush: u_int8_t,
+    pub prio: u_int8_t,
+    pub set_prio: [u_int8_t; 2usize],
+    pub naf: sa_family_t,
+    pub rcvifnot: u_int8_t,
+    pub divert: pf_rule__bindgen_ty_3,
+    pub exptime: time_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rule__bindgen_ty_1 {
+    pub tqe_next: *mut pf_rule,
+    pub tqe_prev: *mut *mut pf_rule,
+}
+#[test]
+fn bindgen_test_layout_pf_rule__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_rule__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_rule__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqe_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule__bindgen_ty_1),
+            "::",
+            stringify!(tqe_next)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqe_prev) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule__bindgen_ty_1),
+            "::",
+            stringify!(tqe_prev)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rule__bindgen_ty_2 {
+    pub limit: u_int32_t,
+    pub seconds: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_pf_rule__bindgen_ty_2() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule__bindgen_ty_2> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule__bindgen_ty_2>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_rule__bindgen_ty_2))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule__bindgen_ty_2>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_rule__bindgen_ty_2))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule__bindgen_ty_2),
+            "::",
+            stringify!(limit)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seconds) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule__bindgen_ty_2),
+            "::",
+            stringify!(seconds)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_rule__bindgen_ty_3 {
+    pub addr: pf_addr,
+    pub port: u_int16_t,
+    pub type_: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pf_rule__bindgen_ty_3() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule__bindgen_ty_3> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule__bindgen_ty_3>(),
+        20usize,
+        concat!("Size of: ", stringify!(pf_rule__bindgen_ty_3))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule__bindgen_ty_3>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_rule__bindgen_ty_3))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule__bindgen_ty_3),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule__bindgen_ty_3),
+            "::",
+            stringify!(port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        18usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule__bindgen_ty_3),
+            "::",
+            stringify!(type_)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_rule() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule>(),
+        1344usize,
+        concat!("Size of: ", stringify!(pf_rule))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_rule))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).src) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(src)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dst) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(dst)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize },
+        112usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(skip)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize },
+        184usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(label)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifname) as usize - ptr as usize },
+        248usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rcv_ifname) as usize - ptr as usize },
+        264usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(rcv_ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).qname) as usize - ptr as usize },
+        280usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(qname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pqname) as usize - ptr as usize },
+        344usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(pqname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tagname) as usize - ptr as usize },
+        408usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(tagname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).match_tagname) as usize - ptr as usize },
+        472usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(match_tagname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).overload_tblname) as usize - ptr as usize },
+        536usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(overload_tblname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).entries) as usize - ptr as usize },
+        568usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(entries)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nat) as usize - ptr as usize },
+        584usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(nat)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rdr) as usize - ptr as usize },
+        720usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(rdr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).route) as usize - ptr as usize },
+        856usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(route)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pktrate) as usize - ptr as usize },
+        992usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(pktrate)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).evaluations) as usize - ptr as usize },
+        1008usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(evaluations)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).packets) as usize - ptr as usize },
+        1016usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(packets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
+        1032usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(bytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kif) as usize - ptr as usize },
+        1048usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(kif)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rcv_kif) as usize - ptr as usize },
+        1056usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(rcv_kif)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).anchor) as usize - ptr as usize },
+        1064usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(anchor)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).overload_tbl) as usize - ptr as usize },
+        1072usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(overload_tbl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).os_fingerprint) as usize - ptr as usize },
+        1080usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(os_fingerprint)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtableid) as usize - ptr as usize },
+        1084usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(rtableid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).onrdomain) as usize - ptr as usize },
+        1088usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(onrdomain)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).timeout) as usize - ptr as usize },
+        1092usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(timeout)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).states_cur) as usize - ptr as usize },
+        1172usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(states_cur)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).states_tot) as usize - ptr as usize },
+        1176usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(states_tot)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_states) as usize - ptr as usize },
+        1180usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(max_states)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).src_nodes) as usize - ptr as usize },
+        1184usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(src_nodes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_src_nodes) as usize - ptr as usize },
+        1188usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(max_src_nodes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_src_states) as usize - ptr as usize },
+        1192usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(max_src_states)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_src_conn) as usize - ptr as usize },
+        1196usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(max_src_conn)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_src_conn_rate) as usize - ptr as usize },
+        1200usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(max_src_conn_rate)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).qid) as usize - ptr as usize },
+        1208usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(qid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pqid) as usize - ptr as usize },
+        1212usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(pqid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rt_listid) as usize - ptr as usize },
+        1216usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(rt_listid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nr) as usize - ptr as usize },
+        1220usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(nr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).prob) as usize - ptr as usize },
+        1224usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(prob)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cuid) as usize - ptr as usize },
+        1228usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(cuid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).cpid) as usize - ptr as usize },
+        1232usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(cpid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).return_icmp) as usize - ptr as usize },
+        1236usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(return_icmp)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).return_icmp6) as usize - ptr as usize },
+        1238usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(return_icmp6)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_mss) as usize - ptr as usize },
+        1240usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(max_mss)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
+        1242usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(tag)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).match_tag) as usize - ptr as usize },
+        1244usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(match_tag)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).scrub_flags) as usize - ptr as usize },
+        1246usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(scrub_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).delay) as usize - ptr as usize },
+        1248usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(delay)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).uid) as usize - ptr as usize },
+        1252usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(uid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).gid) as usize - ptr as usize },
+        1264usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(gid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rule_flag) as usize - ptr as usize },
+        1276usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(rule_flag)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).action) as usize - ptr as usize },
+        1280usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(action)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize },
+        1281usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(direction)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize },
+        1282usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(log)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).logif) as usize - ptr as usize },
+        1283usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(logif)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).quick) as usize - ptr as usize },
+        1284usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(quick)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifnot) as usize - ptr as usize },
+        1285usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(ifnot)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).match_tag_not) as usize - ptr as usize },
+        1286usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(match_tag_not)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).keep_state) as usize - ptr as usize },
+        1287usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(keep_state)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).af) as usize - ptr as usize },
+        1288usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).proto) as usize - ptr as usize },
+        1289usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(proto)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        1290usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize },
+        1292usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(code)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        1294usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flagset) as usize - ptr as usize },
+        1295usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(flagset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).min_ttl) as usize - ptr as usize },
+        1296usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(min_ttl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).allow_opts) as usize - ptr as usize },
+        1297usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(allow_opts)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rt) as usize - ptr as usize },
+        1298usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(rt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).return_ttl) as usize - ptr as usize },
+        1299usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(return_ttl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tos) as usize - ptr as usize },
+        1300usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(tos)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).set_tos) as usize - ptr as usize },
+        1301usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(set_tos)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).anchor_relative) as usize - ptr as usize },
+        1302usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(anchor_relative)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).anchor_wildcard) as usize - ptr as usize },
+        1303usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(anchor_wildcard)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize },
+        1304usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(flush)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).prio) as usize - ptr as usize },
+        1305usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(prio)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).set_prio) as usize - ptr as usize },
+        1306usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(set_prio)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).naf) as usize - ptr as usize },
+        1308usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(naf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rcvifnot) as usize - ptr as usize },
+        1309usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(rcvifnot)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).divert) as usize - ptr as usize },
+        1312usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(divert)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).exptime) as usize - ptr as usize },
+        1336usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule),
+            "::",
+            stringify!(exptime)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rule_item {
+    pub entry: pf_rule_item__bindgen_ty_1,
+    pub r: *mut pf_rule,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rule_item__bindgen_ty_1 {
+    pub sle_next: *mut pf_rule_item,
+}
+#[test]
+fn bindgen_test_layout_pf_rule_item__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule_item__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule_item__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_rule_item__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule_item__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_rule_item__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sle_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_item__bindgen_ty_1),
+            "::",
+            stringify!(sle_next)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_rule_item() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule_item> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule_item>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_rule_item))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule_item>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_rule_item))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).entry) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_item),
+            "::",
+            stringify!(entry)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_item),
+            "::",
+            stringify!(r)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rule_slist {
+    pub slh_first: *mut pf_rule_item,
+}
+#[test]
+fn bindgen_test_layout_pf_rule_slist() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rule_slist> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rule_slist>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_rule_slist))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rule_slist>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_rule_slist))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).slh_first) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rule_slist),
+            "::",
+            stringify!(slh_first)
+        )
+    );
+}
+pub const pf_sn_types_PF_SN_NONE: pf_sn_types = 0;
+pub const pf_sn_types_PF_SN_NAT: pf_sn_types = 1;
+pub const pf_sn_types_PF_SN_RDR: pf_sn_types = 2;
+pub const pf_sn_types_PF_SN_ROUTE: pf_sn_types = 3;
+pub const pf_sn_types_PF_SN_MAX: pf_sn_types = 4;
+pub type pf_sn_types = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_src_node {
+    pub entry: pf_src_node__bindgen_ty_1,
+    pub addr: pf_addr,
+    pub raddr: pf_addr,
+    pub rule: pf_rule_ptr,
+    pub kif: *mut pfi_kif,
+    pub bytes: [u_int64_t; 2usize],
+    pub packets: [u_int64_t; 2usize],
+    pub states: u_int32_t,
+    pub conn: u_int32_t,
+    pub conn_rate: pf_threshold,
+    pub creation: i32,
+    pub expire: i32,
+    pub af: sa_family_t,
+    pub naf: sa_family_t,
+    pub type_: u_int8_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_src_node__bindgen_ty_1 {
+    pub rbe_left: *mut pf_src_node,
+    pub rbe_right: *mut pf_src_node,
+    pub rbe_parent: *mut pf_src_node,
+    pub rbe_color: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pf_src_node__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_src_node__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_src_node__bindgen_ty_1>(),
+        32usize,
+        concat!("Size of: ", stringify!(pf_src_node__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_src_node__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_src_node__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_left) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node__bindgen_ty_1),
+            "::",
+            stringify!(rbe_left)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_right) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node__bindgen_ty_1),
+            "::",
+            stringify!(rbe_right)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_parent) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node__bindgen_ty_1),
+            "::",
+            stringify!(rbe_parent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_color) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node__bindgen_ty_1),
+            "::",
+            stringify!(rbe_color)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_src_node() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_src_node> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_src_node>(),
+        152usize,
+        concat!("Size of: ", stringify!(pf_src_node))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_src_node>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_src_node))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).entry) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(entry)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).raddr) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(raddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rule) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(rule)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kif) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(kif)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(bytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).packets) as usize - ptr as usize },
+        96usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(packets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).states) as usize - ptr as usize },
+        112usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(states)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).conn) as usize - ptr as usize },
+        116usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(conn)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).conn_rate) as usize - ptr as usize },
+        120usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(conn_rate)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).creation) as usize - ptr as usize },
+        136usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(creation)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).expire) as usize - ptr as usize },
+        140usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(expire)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).af) as usize - ptr as usize },
+        144usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).naf) as usize - ptr as usize },
+        145usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(naf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        146usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_src_node),
+            "::",
+            stringify!(type_)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_sn_item {
+    pub next: pf_sn_item__bindgen_ty_1,
+    pub sn: *mut pf_src_node,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_sn_item__bindgen_ty_1 {
+    pub sle_next: *mut pf_sn_item,
+}
+#[test]
+fn bindgen_test_layout_pf_sn_item__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_sn_item__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_sn_item__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_sn_item__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_sn_item__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_sn_item__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sle_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_sn_item__bindgen_ty_1),
+            "::",
+            stringify!(sle_next)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_sn_item() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_sn_item> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_sn_item>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_sn_item))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_sn_item>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_sn_item))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_sn_item),
+            "::",
+            stringify!(next)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sn) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_sn_item),
+            "::",
+            stringify!(sn)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_sn_head {
+    pub slh_first: *mut pf_sn_item,
+}
+#[test]
+fn bindgen_test_layout_pf_sn_head() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_sn_head> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_sn_head>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_sn_head))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_sn_head>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_sn_head))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).slh_first) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_sn_head),
+            "::",
+            stringify!(slh_first)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_state_scrub {
+    pub pfss_last: timeval,
+    pub pfss_tsecr: u_int32_t,
+    pub pfss_tsval: u_int32_t,
+    pub pfss_tsval0: u_int32_t,
+    pub pfss_flags: u_int16_t,
+    pub pfss_ttl: u_int8_t,
+    pub pad: u_int8_t,
+    pub pfss_ts_mod: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_pf_state_scrub() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_state_scrub> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_state_scrub>(),
+        40usize,
+        concat!("Size of: ", stringify!(pf_state_scrub))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_state_scrub>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_state_scrub))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_last) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_scrub),
+            "::",
+            stringify!(pfss_last)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_tsecr) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_scrub),
+            "::",
+            stringify!(pfss_tsecr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_tsval) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_scrub),
+            "::",
+            stringify!(pfss_tsval)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_tsval0) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_scrub),
+            "::",
+            stringify!(pfss_tsval0)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_flags) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_scrub),
+            "::",
+            stringify!(pfss_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_ttl) as usize - ptr as usize },
+        30usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_scrub),
+            "::",
+            stringify!(pfss_ttl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        31usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_scrub),
+            "::",
+            stringify!(pad)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_ts_mod) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_scrub),
+            "::",
+            stringify!(pfss_ts_mod)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_state_host {
+    pub addr: pf_addr,
+    pub port: u_int16_t,
+    pub pad: u_int16_t,
+}
+#[test]
+fn bindgen_test_layout_pf_state_host() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_state_host> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_state_host>(),
+        20usize,
+        concat!("Size of: ", stringify!(pf_state_host))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_state_host>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_state_host))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_host),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_host),
+            "::",
+            stringify!(port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        18usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_host),
+            "::",
+            stringify!(pad)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_state_peer {
+    pub scrub: *mut pf_state_scrub,
+    pub seqlo: u_int32_t,
+    pub seqhi: u_int32_t,
+    pub seqdiff: u_int32_t,
+    pub max_win: u_int16_t,
+    pub mss: u_int16_t,
+    pub state: u_int8_t,
+    pub wscale: u_int8_t,
+    pub tcp_est: u_int8_t,
+    pub pad: [u_int8_t; 1usize],
+}
+#[test]
+fn bindgen_test_layout_pf_state_peer() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_state_peer> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_state_peer>(),
+        32usize,
+        concat!("Size of: ", stringify!(pf_state_peer))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_state_peer>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_state_peer))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).scrub) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(scrub)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seqlo) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(seqlo)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seqhi) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(seqhi)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seqdiff) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(seqdiff)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_win) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(max_win)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).mss) as usize - ptr as usize },
+        22usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(mss)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(state)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).wscale) as usize - ptr as usize },
+        25usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(wscale)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tcp_est) as usize - ptr as usize },
+        26usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(tcp_est)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        27usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_peer),
+            "::",
+            stringify!(pad)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_state_queue {
+    pub tqh_first: *mut pf_state,
+    pub tqh_last: *mut *mut pf_state,
+}
+#[test]
+fn bindgen_test_layout_pf_state_queue() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_state_queue> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_state_queue>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_state_queue))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_state_queue>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_state_queue))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqh_first) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_queue),
+            "::",
+            stringify!(tqh_first)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqh_last) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_queue),
+            "::",
+            stringify!(tqh_last)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_state_key_cmp {
+    pub addr: [pf_addr; 2usize],
+    pub port: [u_int16_t; 2usize],
+    pub rdomain: u_int16_t,
+    pub hash: u_int16_t,
+    pub af: sa_family_t,
+    pub proto: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pf_state_key_cmp() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_state_key_cmp> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_state_key_cmp>(),
+        44usize,
+        concat!("Size of: ", stringify!(pf_state_key_cmp))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_state_key_cmp>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_state_key_cmp))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_key_cmp),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_key_cmp),
+            "::",
+            stringify!(port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rdomain) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_key_cmp),
+            "::",
+            stringify!(rdomain)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize },
+        38usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_key_cmp),
+            "::",
+            stringify!(hash)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).af) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_key_cmp),
+            "::",
+            stringify!(af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).proto) as usize - ptr as usize },
+        41usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_key_cmp),
+            "::",
+            stringify!(proto)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_state_cmp {
+    pub id: u_int64_t,
+    pub creatorid: u_int32_t,
+    pub direction: u_int8_t,
+    pub pad: [u_int8_t; 3usize],
+}
+#[test]
+fn bindgen_test_layout_pf_state_cmp() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_state_cmp> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_state_cmp>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_state_cmp))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_state_cmp>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_state_cmp))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_cmp),
+            "::",
+            stringify!(id)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).creatorid) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_cmp),
+            "::",
+            stringify!(creatorid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_cmp),
+            "::",
+            stringify!(direction)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        13usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_cmp),
+            "::",
+            stringify!(pad)
+        )
+    );
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfsync_state_scrub {
+    pub pfss_flags: u_int16_t,
+    pub pfss_ttl: u_int8_t,
+    pub scrub_flag: u_int8_t,
+    pub pfss_ts_mod: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_pfsync_state_scrub() {
+    const UNINIT: ::std::mem::MaybeUninit<pfsync_state_scrub> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfsync_state_scrub>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfsync_state_scrub))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfsync_state_scrub>(),
+        1usize,
+        concat!("Alignment of ", stringify!(pfsync_state_scrub))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_flags) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_scrub),
+            "::",
+            stringify!(pfss_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_ttl) as usize - ptr as usize },
+        2usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_scrub),
+            "::",
+            stringify!(pfss_ttl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).scrub_flag) as usize - ptr as usize },
+        3usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_scrub),
+            "::",
+            stringify!(scrub_flag)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfss_ts_mod) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_scrub),
+            "::",
+            stringify!(pfss_ts_mod)
+        )
+    );
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfsync_state_peer {
+    pub scrub: pfsync_state_scrub,
+    pub seqlo: u_int32_t,
+    pub seqhi: u_int32_t,
+    pub seqdiff: u_int32_t,
+    pub max_win: u_int16_t,
+    pub mss: u_int16_t,
+    pub state: u_int8_t,
+    pub wscale: u_int8_t,
+    pub pad: [u_int8_t; 6usize],
+}
+#[test]
+fn bindgen_test_layout_pfsync_state_peer() {
+    const UNINIT: ::std::mem::MaybeUninit<pfsync_state_peer> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfsync_state_peer>(),
+        32usize,
+        concat!("Size of: ", stringify!(pfsync_state_peer))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfsync_state_peer>(),
+        1usize,
+        concat!("Alignment of ", stringify!(pfsync_state_peer))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).scrub) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(scrub)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seqlo) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(seqlo)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seqhi) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(seqhi)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seqdiff) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(seqdiff)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_win) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(max_win)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).mss) as usize - ptr as usize },
+        22usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(mss)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(state)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).wscale) as usize - ptr as usize },
+        25usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(wscale)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        26usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_peer),
+            "::",
+            stringify!(pad)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfsync_state_key {
+    pub addr: [pf_addr; 2usize],
+    pub port: [u_int16_t; 2usize],
+    pub rdomain: u_int16_t,
+    pub af: sa_family_t,
+    pub pad: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pfsync_state_key() {
+    const UNINIT: ::std::mem::MaybeUninit<pfsync_state_key> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfsync_state_key>(),
+        40usize,
+        concat!("Size of: ", stringify!(pfsync_state_key))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfsync_state_key>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfsync_state_key))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_key),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_key),
+            "::",
+            stringify!(port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rdomain) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_key),
+            "::",
+            stringify!(rdomain)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).af) as usize - ptr as usize },
+        38usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_key),
+            "::",
+            stringify!(af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        39usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state_key),
+            "::",
+            stringify!(pad)
+        )
+    );
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct pfsync_state {
+    pub id: u_int64_t,
+    pub ifname: [::std::os::raw::c_char; 16usize],
+    pub key: [pfsync_state_key; 2usize],
+    pub src: pfsync_state_peer,
+    pub dst: pfsync_state_peer,
+    pub rt_addr: pf_addr,
+    pub rule: u_int32_t,
+    pub anchor: u_int32_t,
+    pub nat_rule: u_int32_t,
+    pub creation: u_int32_t,
+    pub expire: u_int32_t,
+    pub packets: [[u_int32_t; 2usize]; 2usize],
+    pub bytes: [[u_int32_t; 2usize]; 2usize],
+    pub creatorid: u_int32_t,
+    pub rtableid: [i32; 2usize],
+    pub max_mss: u_int16_t,
+    pub af: sa_family_t,
+    pub proto: u_int8_t,
+    pub direction: u_int8_t,
+    pub log: u_int8_t,
+    pub rt: u_int8_t,
+    pub timeout: u_int8_t,
+    pub sync_flags: u_int8_t,
+    pub updates: u_int8_t,
+    pub min_ttl: u_int8_t,
+    pub set_tos: u_int8_t,
+    pub state_flags: u_int16_t,
+    pub set_prio: [u_int8_t; 2usize],
+}
+#[test]
+fn bindgen_test_layout_pfsync_state() {
+    const UNINIT: ::std::mem::MaybeUninit<pfsync_state> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfsync_state>(),
+        264usize,
+        concat!("Size of: ", stringify!(pfsync_state))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfsync_state>(),
+        1usize,
+        concat!("Alignment of ", stringify!(pfsync_state))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(id)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifname) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(key)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).src) as usize - ptr as usize },
+        104usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(src)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dst) as usize - ptr as usize },
+        136usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(dst)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rt_addr) as usize - ptr as usize },
+        168usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(rt_addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rule) as usize - ptr as usize },
+        184usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(rule)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).anchor) as usize - ptr as usize },
+        188usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(anchor)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nat_rule) as usize - ptr as usize },
+        192usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(nat_rule)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).creation) as usize - ptr as usize },
+        196usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(creation)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).expire) as usize - ptr as usize },
+        200usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(expire)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).packets) as usize - ptr as usize },
+        204usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(packets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize },
+        220usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(bytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).creatorid) as usize - ptr as usize },
+        236usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(creatorid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtableid) as usize - ptr as usize },
+        240usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(rtableid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).max_mss) as usize - ptr as usize },
+        248usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(max_mss)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).af) as usize - ptr as usize },
+        250usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).proto) as usize - ptr as usize },
+        251usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(proto)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize },
+        252usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(direction)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize },
+        253usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(log)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rt) as usize - ptr as usize },
+        254usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(rt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).timeout) as usize - ptr as usize },
+        255usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(timeout)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sync_flags) as usize - ptr as usize },
+        256usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(sync_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).updates) as usize - ptr as usize },
+        257usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(updates)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).min_ttl) as usize - ptr as usize },
+        258usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(min_ttl)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).set_tos) as usize - ptr as usize },
+        259usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(set_tos)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).state_flags) as usize - ptr as usize },
+        260usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(state_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).set_prio) as usize - ptr as usize },
+        262usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsync_state),
+            "::",
+            stringify!(set_prio)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_rulequeue {
+    pub tqh_first: *mut pf_rule,
+    pub tqh_last: *mut *mut pf_rule,
+}
+#[test]
+fn bindgen_test_layout_pf_rulequeue() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_rulequeue> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_rulequeue>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_rulequeue))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_rulequeue>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_rulequeue))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqh_first) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rulequeue),
+            "::",
+            stringify!(tqh_first)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqh_last) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_rulequeue),
+            "::",
+            stringify!(tqh_last)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_ruleset {
+    pub rules: pf_ruleset__bindgen_ty_1,
+    pub anchor: *mut pf_anchor,
+    pub tticket: u_int32_t,
+    pub tables: ::std::os::raw::c_int,
+    pub topen: ::std::os::raw::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_ruleset__bindgen_ty_1 {
+    pub queues: [pf_rulequeue; 2usize],
+    pub active: pf_ruleset__bindgen_ty_1__bindgen_ty_1,
+    pub inactive: pf_ruleset__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_ruleset__bindgen_ty_1__bindgen_ty_1 {
+    pub ptr: *mut pf_rulequeue,
+    pub rcount: u_int32_t,
+    pub version: u_int32_t,
+    pub open: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pf_ruleset__bindgen_ty_1__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_ruleset__bindgen_ty_1__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_ruleset__bindgen_ty_1__bindgen_ty_1>(),
+        24usize,
+        concat!(
+            "Size of: ",
+            stringify!(pf_ruleset__bindgen_ty_1__bindgen_ty_1)
+        )
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_ruleset__bindgen_ty_1__bindgen_ty_1>(),
+        8usize,
+        concat!(
+            "Alignment of ",
+            stringify!(pf_ruleset__bindgen_ty_1__bindgen_ty_1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(ptr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rcount) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(rcount)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(version)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).open) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset__bindgen_ty_1__bindgen_ty_1),
+            "::",
+            stringify!(open)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_ruleset__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_ruleset__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_ruleset__bindgen_ty_1>(),
+        80usize,
+        concat!("Size of: ", stringify!(pf_ruleset__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_ruleset__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_ruleset__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).queues) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset__bindgen_ty_1),
+            "::",
+            stringify!(queues)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).active) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset__bindgen_ty_1),
+            "::",
+            stringify!(active)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).inactive) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset__bindgen_ty_1),
+            "::",
+            stringify!(inactive)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_ruleset() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_ruleset> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_ruleset>(),
+        104usize,
+        concat!("Size of: ", stringify!(pf_ruleset))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_ruleset>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_ruleset))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rules) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset),
+            "::",
+            stringify!(rules)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).anchor) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset),
+            "::",
+            stringify!(anchor)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tticket) as usize - ptr as usize },
+        88usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset),
+            "::",
+            stringify!(tticket)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tables) as usize - ptr as usize },
+        92usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset),
+            "::",
+            stringify!(tables)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).topen) as usize - ptr as usize },
+        96usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_ruleset),
+            "::",
+            stringify!(topen)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_anchor_global {
+    pub rbh_root: *mut pf_anchor,
+}
+#[test]
+fn bindgen_test_layout_pf_anchor_global() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_anchor_global> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_anchor_global>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_anchor_global))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_anchor_global>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_anchor_global))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbh_root) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor_global),
+            "::",
+            stringify!(rbh_root)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_anchor_node {
+    pub rbh_root: *mut pf_anchor,
+}
+#[test]
+fn bindgen_test_layout_pf_anchor_node() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_anchor_node> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_anchor_node>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_anchor_node))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_anchor_node>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_anchor_node))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbh_root) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor_node),
+            "::",
+            stringify!(rbh_root)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_anchor {
+    pub entry_global: pf_anchor__bindgen_ty_1,
+    pub entry_node: pf_anchor__bindgen_ty_2,
+    pub parent: *mut pf_anchor,
+    pub children: pf_anchor_node,
+    pub name: [::std::os::raw::c_char; 64usize],
+    pub path: [::std::os::raw::c_char; 1024usize],
+    pub ruleset: pf_ruleset,
+    pub refcnt: ::std::os::raw::c_int,
+    pub match_: ::std::os::raw::c_int,
+    pub ref_: refcnt,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_anchor__bindgen_ty_1 {
+    pub rbe_left: *mut pf_anchor,
+    pub rbe_right: *mut pf_anchor,
+    pub rbe_parent: *mut pf_anchor,
+    pub rbe_color: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pf_anchor__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_anchor__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_anchor__bindgen_ty_1>(),
+        32usize,
+        concat!("Size of: ", stringify!(pf_anchor__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_anchor__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_anchor__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_left) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor__bindgen_ty_1),
+            "::",
+            stringify!(rbe_left)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_right) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor__bindgen_ty_1),
+            "::",
+            stringify!(rbe_right)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_parent) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor__bindgen_ty_1),
+            "::",
+            stringify!(rbe_parent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_color) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor__bindgen_ty_1),
+            "::",
+            stringify!(rbe_color)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_anchor__bindgen_ty_2 {
+    pub rbe_left: *mut pf_anchor,
+    pub rbe_right: *mut pf_anchor,
+    pub rbe_parent: *mut pf_anchor,
+    pub rbe_color: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pf_anchor__bindgen_ty_2() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_anchor__bindgen_ty_2> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_anchor__bindgen_ty_2>(),
+        32usize,
+        concat!("Size of: ", stringify!(pf_anchor__bindgen_ty_2))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_anchor__bindgen_ty_2>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_anchor__bindgen_ty_2))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_left) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor__bindgen_ty_2),
+            "::",
+            stringify!(rbe_left)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_right) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor__bindgen_ty_2),
+            "::",
+            stringify!(rbe_right)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_parent) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor__bindgen_ty_2),
+            "::",
+            stringify!(rbe_parent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_color) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor__bindgen_ty_2),
+            "::",
+            stringify!(rbe_color)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_anchor() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_anchor> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_anchor>(),
+        1288usize,
+        concat!("Size of: ", stringify!(pf_anchor))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_anchor>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_anchor))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).entry_global) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(entry_global)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).entry_node) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(entry_node)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).parent) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(parent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).children) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(children)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize },
+        144usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(path)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ruleset) as usize - ptr as usize },
+        1168usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(ruleset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).refcnt) as usize - ptr as usize },
+        1272usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(refcnt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize },
+        1276usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(match_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ref_) as usize - ptr as usize },
+        1280usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_anchor),
+            "::",
+            stringify!(ref_)
+        )
+    );
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_INSERT_COLOR(arg1: *mut pf_anchor_global, arg2: *mut pf_anchor);
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_REMOVE_COLOR(
+        arg1: *mut pf_anchor_global,
+        arg2: *mut pf_anchor,
+        arg3: *mut pf_anchor,
+    );
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_REMOVE(
+        arg1: *mut pf_anchor_global,
+        arg2: *mut pf_anchor,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_INSERT(
+        arg1: *mut pf_anchor_global,
+        arg2: *mut pf_anchor,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_FIND(
+        arg1: *mut pf_anchor_global,
+        arg2: *mut pf_anchor,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_NFIND(
+        arg1: *mut pf_anchor_global,
+        arg2: *mut pf_anchor,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_NEXT(arg1: *mut pf_anchor) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_PREV(arg1: *mut pf_anchor) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_global_RB_MINMAX(
+        arg1: *mut pf_anchor_global,
+        arg2: ::std::os::raw::c_int,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_INSERT_COLOR(arg1: *mut pf_anchor_node, arg2: *mut pf_anchor);
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_REMOVE_COLOR(
+        arg1: *mut pf_anchor_node,
+        arg2: *mut pf_anchor,
+        arg3: *mut pf_anchor,
+    );
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_REMOVE(
+        arg1: *mut pf_anchor_node,
+        arg2: *mut pf_anchor,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_INSERT(
+        arg1: *mut pf_anchor_node,
+        arg2: *mut pf_anchor,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_FIND(
+        arg1: *mut pf_anchor_node,
+        arg2: *mut pf_anchor,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_NFIND(
+        arg1: *mut pf_anchor_node,
+        arg2: *mut pf_anchor,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_NEXT(arg1: *mut pf_anchor) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_PREV(arg1: *mut pf_anchor) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_anchor_node_RB_MINMAX(
+        arg1: *mut pf_anchor_node,
+        arg2: ::std::os::raw::c_int,
+    ) -> *mut pf_anchor;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_table {
+    pub pfrt_anchor: [::std::os::raw::c_char; 1024usize],
+    pub pfrt_name: [::std::os::raw::c_char; 32usize],
+    pub pfrt_flags: u_int32_t,
+    pub pfrt_fback: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pfr_table() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_table> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_table>(),
+        1064usize,
+        concat!("Size of: ", stringify!(pfr_table))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_table>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfr_table))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrt_anchor) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_table),
+            "::",
+            stringify!(pfrt_anchor)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrt_name) as usize - ptr as usize },
+        1024usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_table),
+            "::",
+            stringify!(pfrt_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrt_flags) as usize - ptr as usize },
+        1056usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_table),
+            "::",
+            stringify!(pfrt_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrt_fback) as usize - ptr as usize },
+        1060usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_table),
+            "::",
+            stringify!(pfrt_fback)
+        )
+    );
+}
+pub const PFR_FB_NONE: _bindgen_ty_14 = 0;
+pub const PFR_FB_MATCH: _bindgen_ty_14 = 1;
+pub const PFR_FB_ADDED: _bindgen_ty_14 = 2;
+pub const PFR_FB_DELETED: _bindgen_ty_14 = 3;
+pub const PFR_FB_CHANGED: _bindgen_ty_14 = 4;
+pub const PFR_FB_CLEARED: _bindgen_ty_14 = 5;
+pub const PFR_FB_DUPLICATE: _bindgen_ty_14 = 6;
+pub const PFR_FB_NOTMATCH: _bindgen_ty_14 = 7;
+pub const PFR_FB_CONFLICT: _bindgen_ty_14 = 8;
+pub const PFR_FB_NOCOUNT: _bindgen_ty_14 = 9;
+pub const PFR_FB_MAX: _bindgen_ty_14 = 10;
+pub type _bindgen_ty_14 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfr_addr {
+    pub pfra_u: pfr_addr__bindgen_ty_1,
+    pub pfra_ifname: [::std::os::raw::c_char; 16usize],
+    pub pfra_states: u_int32_t,
+    pub pfra_weight: u_int16_t,
+    pub pfra_af: u_int8_t,
+    pub pfra_net: u_int8_t,
+    pub pfra_not: u_int8_t,
+    pub pfra_fback: u_int8_t,
+    pub pfra_type: u_int8_t,
+    pub pad: [u_int8_t; 7usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pfr_addr__bindgen_ty_1 {
+    pub _pfra_ip4addr: in_addr,
+    pub _pfra_ip6addr: in6_addr,
+}
+#[test]
+fn bindgen_test_layout_pfr_addr__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_addr__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_addr__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(pfr_addr__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_addr__bindgen_ty_1>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfr_addr__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfra_ip4addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr__bindgen_ty_1),
+            "::",
+            stringify!(_pfra_ip4addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfra_ip6addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr__bindgen_ty_1),
+            "::",
+            stringify!(_pfra_ip6addr)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfr_addr() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_addr> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_addr>(),
+        52usize,
+        concat!("Size of: ", stringify!(pfr_addr))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_addr>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfr_addr))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_u) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_u)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_ifname) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_states) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_states)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_weight) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_weight)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_af) as usize - ptr as usize },
+        38usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_net) as usize - ptr as usize },
+        39usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_net)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_not) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_not)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_fback) as usize - ptr as usize },
+        41usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_fback)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfra_type) as usize - ptr as usize },
+        42usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pfra_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        43usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_addr),
+            "::",
+            stringify!(pad)
+        )
+    );
+}
+pub const PFR_DIR_IN: _bindgen_ty_15 = 0;
+pub const PFR_DIR_OUT: _bindgen_ty_15 = 1;
+pub const PFR_DIR_MAX: _bindgen_ty_15 = 2;
+pub type _bindgen_ty_15 = ::std::os::raw::c_uint;
+pub const PFR_OP_BLOCK: _bindgen_ty_16 = 0;
+pub const PFR_OP_MATCH: _bindgen_ty_16 = 1;
+pub const PFR_OP_PASS: _bindgen_ty_16 = 2;
+pub const PFR_OP_ADDR_MAX: _bindgen_ty_16 = 3;
+pub const PFR_OP_TABLE_MAX: _bindgen_ty_16 = 4;
+pub type _bindgen_ty_16 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfr_astats {
+    pub pfras_a: pfr_addr,
+    pub pfras_packets: [[u_int64_t; 3usize]; 2usize],
+    pub pfras_bytes: [[u_int64_t; 3usize]; 2usize],
+    pub pfras_tzero: time_t,
+}
+#[test]
+fn bindgen_test_layout_pfr_astats() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_astats> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_astats>(),
+        160usize,
+        concat!("Size of: ", stringify!(pfr_astats))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_astats>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_astats))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfras_a) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_astats),
+            "::",
+            stringify!(pfras_a)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfras_packets) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_astats),
+            "::",
+            stringify!(pfras_packets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfras_bytes) as usize - ptr as usize },
+        104usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_astats),
+            "::",
+            stringify!(pfras_bytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfras_tzero) as usize - ptr as usize },
+        152usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_astats),
+            "::",
+            stringify!(pfras_tzero)
+        )
+    );
+}
+pub const PFR_REFCNT_RULE: _bindgen_ty_17 = 0;
+pub const PFR_REFCNT_ANCHOR: _bindgen_ty_17 = 1;
+pub const PFR_REFCNT_MAX: _bindgen_ty_17 = 2;
+pub type _bindgen_ty_17 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_tstats {
+    pub pfrts_t: pfr_table,
+    pub pfrts_packets: [[u_int64_t; 4usize]; 2usize],
+    pub pfrts_bytes: [[u_int64_t; 4usize]; 2usize],
+    pub pfrts_match: u_int64_t,
+    pub pfrts_nomatch: u_int64_t,
+    pub pfrts_tzero: time_t,
+    pub pfrts_cnt: ::std::os::raw::c_int,
+    pub pfrts_refcnt: [::std::os::raw::c_int; 2usize],
+}
+#[test]
+fn bindgen_test_layout_pfr_tstats() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_tstats> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_tstats>(),
+        1232usize,
+        concat!("Size of: ", stringify!(pfr_tstats))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_tstats>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_tstats))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrts_t) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_tstats),
+            "::",
+            stringify!(pfrts_t)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrts_packets) as usize - ptr as usize },
+        1064usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_tstats),
+            "::",
+            stringify!(pfrts_packets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrts_bytes) as usize - ptr as usize },
+        1128usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_tstats),
+            "::",
+            stringify!(pfrts_bytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrts_match) as usize - ptr as usize },
+        1192usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_tstats),
+            "::",
+            stringify!(pfrts_match)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrts_nomatch) as usize - ptr as usize },
+        1200usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_tstats),
+            "::",
+            stringify!(pfrts_nomatch)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrts_tzero) as usize - ptr as usize },
+        1208usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_tstats),
+            "::",
+            stringify!(pfrts_tzero)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrts_cnt) as usize - ptr as usize },
+        1216usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_tstats),
+            "::",
+            stringify!(pfrts_cnt)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrts_refcnt) as usize - ptr as usize },
+        1220usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_tstats),
+            "::",
+            stringify!(pfrts_refcnt)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_kcounters {
+    pub pfrkc_packets: [[u_int64_t; 3usize]; 2usize],
+    pub pfrkc_bytes: [[u_int64_t; 3usize]; 2usize],
+    pub states: u_int64_t,
+}
+#[test]
+fn bindgen_test_layout_pfr_kcounters() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kcounters> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kcounters>(),
+        104usize,
+        concat!("Size of: ", stringify!(pfr_kcounters))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kcounters>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kcounters))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkc_packets) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kcounters),
+            "::",
+            stringify!(pfrkc_packets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkc_bytes) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kcounters),
+            "::",
+            stringify!(pfrkc_bytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).states) as usize - ptr as usize },
+        96usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kcounters),
+            "::",
+            stringify!(states)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pfsockaddr_union {
+    pub sa: sockaddr,
+    pub sin: sockaddr_in,
+    pub sin6: sockaddr_in6,
+}
+#[test]
+fn bindgen_test_layout_pfsockaddr_union() {
+    const UNINIT: ::std::mem::MaybeUninit<pfsockaddr_union> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfsockaddr_union>(),
+        28usize,
+        concat!("Size of: ", stringify!(pfsockaddr_union))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfsockaddr_union>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfsockaddr_union))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sa) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsockaddr_union),
+            "::",
+            stringify!(sa)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsockaddr_union),
+            "::",
+            stringify!(sin)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sin6) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfsockaddr_union),
+            "::",
+            stringify!(sin6)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_kentryworkq {
+    pub slh_first: *mut pfr_kentry,
+}
+#[test]
+fn bindgen_test_layout_pfr_kentryworkq() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentryworkq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentryworkq>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfr_kentryworkq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentryworkq>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentryworkq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).slh_first) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentryworkq),
+            "::",
+            stringify!(slh_first)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct _pfr_kentry {
+    pub _pfrke_node: [radix_node; 2usize],
+    pub _pfrke_sa: pfsockaddr_union,
+    pub _pfrke_workq: _pfr_kentry__bindgen_ty_1,
+    pub _pfrke_ioq: _pfr_kentry__bindgen_ty_2,
+    pub _pfrke_counters: *mut pfr_kcounters,
+    pub _pfrke_tzero: time_t,
+    pub _pfrke_af: u_int8_t,
+    pub _pfrke_net: u_int8_t,
+    pub _pfrke_flags: u_int8_t,
+    pub _pfrke_type: u_int8_t,
+    pub _pfrke_fb: u_int8_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _pfr_kentry__bindgen_ty_1 {
+    pub sle_next: *mut pfr_kentry,
+}
+#[test]
+fn bindgen_test_layout__pfr_kentry__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<_pfr_kentry__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<_pfr_kentry__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(_pfr_kentry__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<_pfr_kentry__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(_pfr_kentry__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sle_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry__bindgen_ty_1),
+            "::",
+            stringify!(sle_next)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _pfr_kentry__bindgen_ty_2 {
+    pub sle_next: *mut pfr_kentry,
+}
+#[test]
+fn bindgen_test_layout__pfr_kentry__bindgen_ty_2() {
+    const UNINIT: ::std::mem::MaybeUninit<_pfr_kentry__bindgen_ty_2> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<_pfr_kentry__bindgen_ty_2>(),
+        8usize,
+        concat!("Size of: ", stringify!(_pfr_kentry__bindgen_ty_2))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<_pfr_kentry__bindgen_ty_2>(),
+        8usize,
+        concat!("Alignment of ", stringify!(_pfr_kentry__bindgen_ty_2))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sle_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry__bindgen_ty_2),
+            "::",
+            stringify!(sle_next)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout__pfr_kentry() {
+    const UNINIT: ::std::mem::MaybeUninit<_pfr_kentry> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<_pfr_kentry>(),
+        168usize,
+        concat!("Size of: ", stringify!(_pfr_kentry))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<_pfr_kentry>(),
+        8usize,
+        concat!("Alignment of ", stringify!(_pfr_kentry))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_node) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_node)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_sa) as usize - ptr as usize },
+        96usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_sa)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_workq) as usize - ptr as usize },
+        128usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_workq)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_ioq) as usize - ptr as usize },
+        136usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_ioq)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_counters) as usize - ptr as usize },
+        144usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_counters)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_tzero) as usize - ptr as usize },
+        152usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_tzero)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_af) as usize - ptr as usize },
+        160usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_net) as usize - ptr as usize },
+        161usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_net)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_flags) as usize - ptr as usize },
+        162usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_type) as usize - ptr as usize },
+        163usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_type)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._pfrke_fb) as usize - ptr as usize },
+        164usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(_pfr_kentry),
+            "::",
+            stringify!(_pfrke_fb)
+        )
+    );
+}
+pub const PFRKE_PLAIN: _bindgen_ty_18 = 0;
+pub const PFRKE_ROUTE: _bindgen_ty_18 = 1;
+pub const PFRKE_COST: _bindgen_ty_18 = 2;
+pub const PFRKE_MAX: _bindgen_ty_18 = 3;
+pub type _bindgen_ty_18 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfr_kentry {
+    pub u: pfr_kentry__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pfr_kentry__bindgen_ty_1 {
+    pub _ke: _pfr_kentry,
+}
+#[test]
+fn bindgen_test_layout_pfr_kentry__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentry__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentry__bindgen_ty_1>(),
+        168usize,
+        concat!("Size of: ", stringify!(pfr_kentry__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentry__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentry__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._ke) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry__bindgen_ty_1),
+            "::",
+            stringify!(_ke)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfr_kentry() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentry> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentry>(),
+        168usize,
+        concat!("Size of: ", stringify!(pfr_kentry))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentry>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentry))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry),
+            "::",
+            stringify!(u)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfr_kentry_route {
+    pub u: pfr_kentry_route__bindgen_ty_1,
+    pub kif: *mut pfi_kif,
+    pub ifname: [::std::os::raw::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pfr_kentry_route__bindgen_ty_1 {
+    pub _ke: _pfr_kentry,
+}
+#[test]
+fn bindgen_test_layout_pfr_kentry_route__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentry_route__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentry_route__bindgen_ty_1>(),
+        168usize,
+        concat!("Size of: ", stringify!(pfr_kentry_route__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentry_route__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentry_route__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._ke) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_route__bindgen_ty_1),
+            "::",
+            stringify!(_ke)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfr_kentry_route() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentry_route> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentry_route>(),
+        192usize,
+        concat!("Size of: ", stringify!(pfr_kentry_route))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentry_route>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentry_route))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_route),
+            "::",
+            stringify!(u)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kif) as usize - ptr as usize },
+        168usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_route),
+            "::",
+            stringify!(kif)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifname) as usize - ptr as usize },
+        176usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_route),
+            "::",
+            stringify!(ifname)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfr_kentry_cost {
+    pub u: pfr_kentry_cost__bindgen_ty_1,
+    pub kif: *mut pfi_kif,
+    pub ifname: [::std::os::raw::c_char; 16usize],
+    pub weight: u_int16_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pfr_kentry_cost__bindgen_ty_1 {
+    pub _ke: _pfr_kentry,
+}
+#[test]
+fn bindgen_test_layout_pfr_kentry_cost__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentry_cost__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentry_cost__bindgen_ty_1>(),
+        168usize,
+        concat!("Size of: ", stringify!(pfr_kentry_cost__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentry_cost__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentry_cost__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._ke) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_cost__bindgen_ty_1),
+            "::",
+            stringify!(_ke)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfr_kentry_cost() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentry_cost> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentry_cost>(),
+        200usize,
+        concat!("Size of: ", stringify!(pfr_kentry_cost))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentry_cost>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentry_cost))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_cost),
+            "::",
+            stringify!(u)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kif) as usize - ptr as usize },
+        168usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_cost),
+            "::",
+            stringify!(kif)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifname) as usize - ptr as usize },
+        176usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_cost),
+            "::",
+            stringify!(ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).weight) as usize - ptr as usize },
+        192usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_cost),
+            "::",
+            stringify!(weight)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfr_kentry_all {
+    pub u: pfr_kentry_all__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pfr_kentry_all__bindgen_ty_1 {
+    pub _ke: _pfr_kentry,
+    pub kr: pfr_kentry_route,
+    pub kc: pfr_kentry_cost,
+}
+#[test]
+fn bindgen_test_layout_pfr_kentry_all__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentry_all__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentry_all__bindgen_ty_1>(),
+        200usize,
+        concat!("Size of: ", stringify!(pfr_kentry_all__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentry_all__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentry_all__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr)._ke) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_all__bindgen_ty_1),
+            "::",
+            stringify!(_ke)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_all__bindgen_ty_1),
+            "::",
+            stringify!(kr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kc) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_all__bindgen_ty_1),
+            "::",
+            stringify!(kc)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfr_kentry_all() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_kentry_all> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_kentry_all>(),
+        200usize,
+        concat!("Size of: ", stringify!(pfr_kentry_all))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_kentry_all>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_kentry_all))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_kentry_all),
+            "::",
+            stringify!(u)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_ktableworkq {
+    pub slh_first: *mut pfr_ktable,
+}
+#[test]
+fn bindgen_test_layout_pfr_ktableworkq() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_ktableworkq> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_ktableworkq>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfr_ktableworkq))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_ktableworkq>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_ktableworkq))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).slh_first) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktableworkq),
+            "::",
+            stringify!(slh_first)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_ktablehead {
+    pub rbh_root: *mut pfr_ktable,
+}
+#[test]
+fn bindgen_test_layout_pfr_ktablehead() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_ktablehead> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_ktablehead>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfr_ktablehead))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_ktablehead>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_ktablehead))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbh_root) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktablehead),
+            "::",
+            stringify!(rbh_root)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_ktable {
+    pub pfrkt_ts: pfr_tstats,
+    pub pfrkt_tree: pfr_ktable__bindgen_ty_1,
+    pub pfrkt_workq: pfr_ktable__bindgen_ty_2,
+    pub pfrkt_ip4: *mut radix_node_head,
+    pub pfrkt_ip6: *mut radix_node_head,
+    pub pfrkt_shadow: *mut pfr_ktable,
+    pub pfrkt_root: *mut pfr_ktable,
+    pub pfrkt_rs: *mut pf_ruleset,
+    pub pfrkt_larg: ::std::os::raw::c_long,
+    pub pfrkt_nflags: ::std::os::raw::c_int,
+    pub pfrkt_refcntcost: u_int64_t,
+    pub pfrkt_gcdweight: u_int16_t,
+    pub pfrkt_maxweight: u_int16_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_ktable__bindgen_ty_1 {
+    pub rbe_left: *mut pfr_ktable,
+    pub rbe_right: *mut pfr_ktable,
+    pub rbe_parent: *mut pfr_ktable,
+    pub rbe_color: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pfr_ktable__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_ktable__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_ktable__bindgen_ty_1>(),
+        32usize,
+        concat!("Size of: ", stringify!(pfr_ktable__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_ktable__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_ktable__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_left) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable__bindgen_ty_1),
+            "::",
+            stringify!(rbe_left)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_right) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable__bindgen_ty_1),
+            "::",
+            stringify!(rbe_right)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_parent) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable__bindgen_ty_1),
+            "::",
+            stringify!(rbe_parent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_color) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable__bindgen_ty_1),
+            "::",
+            stringify!(rbe_color)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfr_ktable__bindgen_ty_2 {
+    pub sle_next: *mut pfr_ktable,
+}
+#[test]
+fn bindgen_test_layout_pfr_ktable__bindgen_ty_2() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_ktable__bindgen_ty_2> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_ktable__bindgen_ty_2>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfr_ktable__bindgen_ty_2))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_ktable__bindgen_ty_2>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_ktable__bindgen_ty_2))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sle_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable__bindgen_ty_2),
+            "::",
+            stringify!(sle_next)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfr_ktable() {
+    const UNINIT: ::std::mem::MaybeUninit<pfr_ktable> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfr_ktable>(),
+        1344usize,
+        concat!("Size of: ", stringify!(pfr_ktable))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfr_ktable>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfr_ktable))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_ts) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_ts)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_tree) as usize - ptr as usize },
+        1232usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_tree)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_workq) as usize - ptr as usize },
+        1264usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_workq)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_ip4) as usize - ptr as usize },
+        1272usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_ip4)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_ip6) as usize - ptr as usize },
+        1280usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_ip6)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_shadow) as usize - ptr as usize },
+        1288usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_shadow)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_root) as usize - ptr as usize },
+        1296usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_root)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_rs) as usize - ptr as usize },
+        1304usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_rs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_larg) as usize - ptr as usize },
+        1312usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_larg)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_nflags) as usize - ptr as usize },
+        1320usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_nflags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_refcntcost) as usize - ptr as usize },
+        1328usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_refcntcost)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_gcdweight) as usize - ptr as usize },
+        1336usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_gcdweight)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrkt_maxweight) as usize - ptr as usize },
+        1338usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfr_ktable),
+            "::",
+            stringify!(pfrkt_maxweight)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_state_tree_ext_gwy {
+    pub rbh_root: *mut pf_state_key,
+}
+#[test]
+fn bindgen_test_layout_pf_state_tree_ext_gwy() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_state_tree_ext_gwy> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_state_tree_ext_gwy>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_state_tree_ext_gwy))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_state_tree_ext_gwy>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_state_tree_ext_gwy))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbh_root) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_state_tree_ext_gwy),
+            "::",
+            stringify!(rbh_root)
+        )
+    );
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_INSERT_COLOR(
+        arg1: *mut pf_state_tree_ext_gwy,
+        arg2: *mut pf_state_key,
+    );
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_REMOVE_COLOR(
+        arg1: *mut pf_state_tree_ext_gwy,
+        arg2: *mut pf_state_key,
+        arg3: *mut pf_state_key,
+    );
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_REMOVE(
+        arg1: *mut pf_state_tree_ext_gwy,
+        arg2: *mut pf_state_key,
+    ) -> *mut pf_state_key;
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_INSERT(
+        arg1: *mut pf_state_tree_ext_gwy,
+        arg2: *mut pf_state_key,
+    ) -> *mut pf_state_key;
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_FIND(
+        arg1: *mut pf_state_tree_ext_gwy,
+        arg2: *mut pf_state_key,
+    ) -> *mut pf_state_key;
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_NFIND(
+        arg1: *mut pf_state_tree_ext_gwy,
+        arg2: *mut pf_state_key,
+    ) -> *mut pf_state_key;
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_NEXT(arg1: *mut pf_state_key) -> *mut pf_state_key;
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_PREV(arg1: *mut pf_state_key) -> *mut pf_state_key;
+}
+extern "C" {
+    pub fn pf_state_tree_ext_gwy_RB_MINMAX(
+        arg1: *mut pf_state_tree_ext_gwy,
+        arg2: ::std::os::raw::c_int,
+    ) -> *mut pf_state_key;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfi_ifhead {
+    pub rbh_root: *mut pfi_kif,
+}
+#[test]
+fn bindgen_test_layout_pfi_ifhead() {
+    const UNINIT: ::std::mem::MaybeUninit<pfi_ifhead> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfi_ifhead>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfi_ifhead))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfi_ifhead>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfi_ifhead))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbh_root) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_ifhead),
+            "::",
+            stringify!(rbh_root)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_state_tree {
+    _unused: [u8; 0],
+}
+extern "C" {
+    pub static mut pf_statetbl: pf_state_tree;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfi_kif_cmp {
+    pub pfik_name: [::std::os::raw::c_char; 16usize],
+}
+#[test]
+fn bindgen_test_layout_pfi_kif_cmp() {
+    const UNINIT: ::std::mem::MaybeUninit<pfi_kif_cmp> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfi_kif_cmp>(),
+        16usize,
+        concat!("Size of: ", stringify!(pfi_kif_cmp))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfi_kif_cmp>(),
+        1usize,
+        concat!("Alignment of ", stringify!(pfi_kif_cmp))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif_cmp),
+            "::",
+            stringify!(pfik_name)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifnet {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifg_group {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfi_kif {
+    pub pfik_name: [::std::os::raw::c_char; 16usize],
+    pub pfik_tree: pfi_kif__bindgen_ty_1,
+    pub pfik_packets: [[[u_int64_t; 2usize]; 2usize]; 2usize],
+    pub pfik_bytes: [[[u_int64_t; 2usize]; 2usize]; 2usize],
+    pub pfik_tzero: time_t,
+    pub pfik_flags: ::std::os::raw::c_int,
+    pub pfik_flags_new: ::std::os::raw::c_int,
+    pub pfik_ah_cookie: *mut ::std::os::raw::c_void,
+    pub pfik_ifp: *mut ifnet,
+    pub pfik_group: *mut ifg_group,
+    pub pfik_states: ::std::os::raw::c_int,
+    pub pfik_rules: ::std::os::raw::c_int,
+    pub pfik_routes: ::std::os::raw::c_int,
+    pub pfik_srcnodes: ::std::os::raw::c_int,
+    pub pfik_flagrefs: ::std::os::raw::c_int,
+    pub pfik_dynaddrs: pfi_kif__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfi_kif__bindgen_ty_1 {
+    pub rbe_left: *mut pfi_kif,
+    pub rbe_right: *mut pfi_kif,
+    pub rbe_parent: *mut pfi_kif,
+    pub rbe_color: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pfi_kif__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfi_kif__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfi_kif__bindgen_ty_1>(),
+        32usize,
+        concat!("Size of: ", stringify!(pfi_kif__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfi_kif__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfi_kif__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_left) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif__bindgen_ty_1),
+            "::",
+            stringify!(rbe_left)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_right) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif__bindgen_ty_1),
+            "::",
+            stringify!(rbe_right)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_parent) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif__bindgen_ty_1),
+            "::",
+            stringify!(rbe_parent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rbe_color) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif__bindgen_ty_1),
+            "::",
+            stringify!(rbe_color)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfi_kif__bindgen_ty_2 {
+    pub tqh_first: *mut pfi_dynaddr,
+    pub tqh_last: *mut *mut pfi_dynaddr,
+}
+#[test]
+fn bindgen_test_layout_pfi_kif__bindgen_ty_2() {
+    const UNINIT: ::std::mem::MaybeUninit<pfi_kif__bindgen_ty_2> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfi_kif__bindgen_ty_2>(),
+        16usize,
+        concat!("Size of: ", stringify!(pfi_kif__bindgen_ty_2))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfi_kif__bindgen_ty_2>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfi_kif__bindgen_ty_2))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqh_first) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif__bindgen_ty_2),
+            "::",
+            stringify!(tqh_first)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqh_last) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif__bindgen_ty_2),
+            "::",
+            stringify!(tqh_last)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfi_kif() {
+    const UNINIT: ::std::mem::MaybeUninit<pfi_kif> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfi_kif>(),
+        256usize,
+        concat!("Size of: ", stringify!(pfi_kif))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfi_kif>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfi_kif))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_tree) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_tree)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_packets) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_packets)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_bytes) as usize - ptr as usize },
+        112usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_bytes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_tzero) as usize - ptr as usize },
+        176usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_tzero)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_flags) as usize - ptr as usize },
+        184usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_flags_new) as usize - ptr as usize },
+        188usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_flags_new)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_ah_cookie) as usize - ptr as usize },
+        192usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_ah_cookie)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_ifp) as usize - ptr as usize },
+        200usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_ifp)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_group) as usize - ptr as usize },
+        208usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_group)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_states) as usize - ptr as usize },
+        216usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_states)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_rules) as usize - ptr as usize },
+        220usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_rules)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_routes) as usize - ptr as usize },
+        224usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_routes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_srcnodes) as usize - ptr as usize },
+        228usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_srcnodes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_flagrefs) as usize - ptr as usize },
+        232usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_flagrefs)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfik_dynaddrs) as usize - ptr as usize },
+        240usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfi_kif),
+            "::",
+            stringify!(pfik_dynaddrs)
+        )
+    );
+}
+pub const pfi_kif_refs_PFI_KIF_REF_NONE: pfi_kif_refs = 0;
+pub const pfi_kif_refs_PFI_KIF_REF_STATE: pfi_kif_refs = 1;
+pub const pfi_kif_refs_PFI_KIF_REF_RULE: pfi_kif_refs = 2;
+pub const pfi_kif_refs_PFI_KIF_REF_ROUTE: pfi_kif_refs = 3;
+pub const pfi_kif_refs_PFI_KIF_REF_SRCNODE: pfi_kif_refs = 4;
+pub const pfi_kif_refs_PFI_KIF_REF_FLAG: pfi_kif_refs = 5;
+pub type pfi_kif_refs = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_status {
+    pub counters: [u_int64_t; 17usize],
+    pub lcounters: [u_int64_t; 10usize],
+    pub fcounters: [u_int64_t; 3usize],
+    pub scounters: [u_int64_t; 3usize],
+    pub pcounters: [[[u_int64_t; 3usize]; 2usize]; 2usize],
+    pub bcounters: [[u_int64_t; 2usize]; 2usize],
+    pub stateid: u_int64_t,
+    pub syncookies_inflight: [u_int64_t; 2usize],
+    pub since: time_t,
+    pub running: u_int32_t,
+    pub states: u_int32_t,
+    pub states_halfopen: u_int32_t,
+    pub src_nodes: u_int32_t,
+    pub debug: u_int32_t,
+    pub hostid: u_int32_t,
+    pub reass: u_int32_t,
+    pub syncookies_active: u_int8_t,
+    pub syncookies_mode: u_int8_t,
+    pub pad: [u_int8_t; 2usize],
+    pub ifname: [::std::os::raw::c_char; 16usize],
+    pub pf_chksum: [u_int8_t; 16usize],
+}
+#[test]
+fn bindgen_test_layout_pf_status() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_status> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_status>(),
+        488usize,
+        concat!("Size of: ", stringify!(pf_status))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_status>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_status))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).counters) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(counters)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lcounters) as usize - ptr as usize },
+        136usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(lcounters)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fcounters) as usize - ptr as usize },
+        216usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(fcounters)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).scounters) as usize - ptr as usize },
+        240usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(scounters)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pcounters) as usize - ptr as usize },
+        264usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(pcounters)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).bcounters) as usize - ptr as usize },
+        360usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(bcounters)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).stateid) as usize - ptr as usize },
+        392usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(stateid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).syncookies_inflight) as usize - ptr as usize },
+        400usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(syncookies_inflight)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).since) as usize - ptr as usize },
+        416usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(since)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).running) as usize - ptr as usize },
+        424usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(running)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).states) as usize - ptr as usize },
+        428usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(states)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).states_halfopen) as usize - ptr as usize },
+        432usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(states_halfopen)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).src_nodes) as usize - ptr as usize },
+        436usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(src_nodes)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).debug) as usize - ptr as usize },
+        440usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(debug)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).hostid) as usize - ptr as usize },
+        444usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(hostid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).reass) as usize - ptr as usize },
+        448usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(reass)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).syncookies_active) as usize - ptr as usize },
+        452usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(syncookies_active)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).syncookies_mode) as usize - ptr as usize },
+        453usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(syncookies_mode)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize },
+        454usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(pad)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifname) as usize - ptr as usize },
+        456usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pf_chksum) as usize - ptr as usize },
+        472usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_status),
+            "::",
+            stringify!(pf_chksum)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_queue_bwspec {
+    pub absolute: u_int,
+    pub percent: u_int,
+}
+#[test]
+fn bindgen_test_layout_pf_queue_bwspec() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_queue_bwspec> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_queue_bwspec>(),
+        8usize,
+        concat!("Size of: ", stringify!(pf_queue_bwspec))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_queue_bwspec>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_queue_bwspec))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).absolute) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_bwspec),
+            "::",
+            stringify!(absolute)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).percent) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_bwspec),
+            "::",
+            stringify!(percent)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_queue_scspec {
+    pub m1: pf_queue_bwspec,
+    pub m2: pf_queue_bwspec,
+    pub d: u_int,
+}
+#[test]
+fn bindgen_test_layout_pf_queue_scspec() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_queue_scspec> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_queue_scspec>(),
+        20usize,
+        concat!("Size of: ", stringify!(pf_queue_scspec))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_queue_scspec>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_queue_scspec))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).m1) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_scspec),
+            "::",
+            stringify!(m1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).m2) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_scspec),
+            "::",
+            stringify!(m2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_scspec),
+            "::",
+            stringify!(d)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_queue_fqspec {
+    pub flows: u_int,
+    pub quantum: u_int,
+    pub target: u_int,
+    pub interval: u_int,
+}
+#[test]
+fn bindgen_test_layout_pf_queue_fqspec() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_queue_fqspec> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_queue_fqspec>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_queue_fqspec))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_queue_fqspec>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_queue_fqspec))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flows) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_fqspec),
+            "::",
+            stringify!(flows)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).quantum) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_fqspec),
+            "::",
+            stringify!(quantum)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_fqspec),
+            "::",
+            stringify!(target)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).interval) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queue_fqspec),
+            "::",
+            stringify!(interval)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_queuespec {
+    pub entries: pf_queuespec__bindgen_ty_1,
+    pub qname: [::std::os::raw::c_char; 64usize],
+    pub parent: [::std::os::raw::c_char; 64usize],
+    pub ifname: [::std::os::raw::c_char; 16usize],
+    pub realtime: pf_queue_scspec,
+    pub linkshare: pf_queue_scspec,
+    pub upperlimit: pf_queue_scspec,
+    pub flowqueue: pf_queue_fqspec,
+    pub kif: *mut pfi_kif,
+    pub flags: u_int,
+    pub qlimit: u_int,
+    pub qid: u_int32_t,
+    pub parent_qid: u_int32_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_queuespec__bindgen_ty_1 {
+    pub tqe_next: *mut pf_queuespec,
+    pub tqe_prev: *mut *mut pf_queuespec,
+}
+#[test]
+fn bindgen_test_layout_pf_queuespec__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_queuespec__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_queuespec__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_queuespec__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_queuespec__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_queuespec__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqe_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec__bindgen_ty_1),
+            "::",
+            stringify!(tqe_next)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqe_prev) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec__bindgen_ty_1),
+            "::",
+            stringify!(tqe_prev)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_queuespec() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_queuespec> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_queuespec>(),
+        264usize,
+        concat!("Size of: ", stringify!(pf_queuespec))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_queuespec>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_queuespec))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).entries) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(entries)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).qname) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(qname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).parent) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(parent)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifname) as usize - ptr as usize },
+        144usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).realtime) as usize - ptr as usize },
+        160usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(realtime)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).linkshare) as usize - ptr as usize },
+        180usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(linkshare)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).upperlimit) as usize - ptr as usize },
+        200usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(upperlimit)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flowqueue) as usize - ptr as usize },
+        220usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(flowqueue)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).kif) as usize - ptr as usize },
+        240usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(kif)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        248usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).qlimit) as usize - ptr as usize },
+        252usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(qlimit)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).qid) as usize - ptr as usize },
+        256usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(qid)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).parent_qid) as usize - ptr as usize },
+        260usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_queuespec),
+            "::",
+            stringify!(parent_qid)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct priq_opts {
+    pub flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_priq_opts() {
+    const UNINIT: ::std::mem::MaybeUninit<priq_opts> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<priq_opts>(),
+        4usize,
+        concat!("Size of: ", stringify!(priq_opts))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<priq_opts>(),
+        4usize,
+        concat!("Alignment of ", stringify!(priq_opts))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(priq_opts),
+            "::",
+            stringify!(flags)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hfsc_opts {
+    pub rtsc_m1: u_int,
+    pub rtsc_d: u_int,
+    pub rtsc_m2: u_int,
+    pub lssc_m1: u_int,
+    pub lssc_d: u_int,
+    pub lssc_m2: u_int,
+    pub ulsc_m1: u_int,
+    pub ulsc_d: u_int,
+    pub ulsc_m2: u_int,
+    pub flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_hfsc_opts() {
+    const UNINIT: ::std::mem::MaybeUninit<hfsc_opts> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<hfsc_opts>(),
+        40usize,
+        concat!("Size of: ", stringify!(hfsc_opts))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<hfsc_opts>(),
+        4usize,
+        concat!("Alignment of ", stringify!(hfsc_opts))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtsc_m1) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(rtsc_m1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtsc_d) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(rtsc_d)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rtsc_m2) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(rtsc_m2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lssc_m1) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(lssc_m1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lssc_d) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(lssc_d)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lssc_m2) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(lssc_m2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ulsc_m1) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(ulsc_m1)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ulsc_d) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(ulsc_d)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ulsc_m2) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(ulsc_m2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(hfsc_opts),
+            "::",
+            stringify!(flags)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfq_ops {
+    pub pfq_alloc: ::std::option::Option<
+        unsafe extern "C" fn(arg1: *mut ifnet) -> *mut ::std::os::raw::c_void,
+    >,
+    pub pfq_addqueue: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut ::std::os::raw::c_void,
+            arg2: *mut pf_queuespec,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub pfq_free: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
+    pub pfq_qstats: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut pf_queuespec,
+            arg2: *mut ::std::os::raw::c_void,
+            arg3: *mut ::std::os::raw::c_int,
+        ) -> ::std::os::raw::c_int,
+    >,
+    pub pfq_qlength: ::std::option::Option<
+        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_uint,
+    >,
+    pub pfq_enqueue: ::std::option::Option<
+        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut mbuf) -> *mut mbuf,
+    >,
+    pub pfq_deq_begin: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut ::std::os::raw::c_void,
+            arg2: *mut *mut ::std::os::raw::c_void,
+            arg3: *mut mbuf_list,
+        ) -> *mut mbuf,
+    >,
+    pub pfq_deq_commit: ::std::option::Option<
+        unsafe extern "C" fn(
+            arg1: *mut ::std::os::raw::c_void,
+            arg2: *mut mbuf,
+            arg3: *mut ::std::os::raw::c_void,
+        ),
+    >,
+    pub pfq_purge: ::std::option::Option<
+        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut mbuf_list),
+    >,
+}
+#[test]
+fn bindgen_test_layout_pfq_ops() {
+    const UNINIT: ::std::mem::MaybeUninit<pfq_ops> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfq_ops>(),
+        72usize,
+        concat!("Size of: ", stringify!(pfq_ops))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfq_ops>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfq_ops))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_alloc) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_alloc)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_addqueue) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_addqueue)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_free) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_free)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_qstats) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_qstats)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_qlength) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_qlength)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_enqueue) as usize - ptr as usize },
+        40usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_enqueue)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_deq_begin) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_deq_begin)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_deq_commit) as usize - ptr as usize },
+        56usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_deq_commit)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfq_purge) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfq_ops),
+            "::",
+            stringify!(pfq_purge)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_tagname {
+    pub entries: pf_tagname__bindgen_ty_1,
+    pub name: [::std::os::raw::c_char; 64usize],
+    pub tag: u_int16_t,
+    pub ref_: ::std::os::raw::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_tagname__bindgen_ty_1 {
+    pub tqe_next: *mut pf_tagname,
+    pub tqe_prev: *mut *mut pf_tagname,
+}
+#[test]
+fn bindgen_test_layout_pf_tagname__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_tagname__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_tagname__bindgen_ty_1>(),
+        16usize,
+        concat!("Size of: ", stringify!(pf_tagname__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_tagname__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_tagname__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqe_next) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_tagname__bindgen_ty_1),
+            "::",
+            stringify!(tqe_next)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tqe_prev) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_tagname__bindgen_ty_1),
+            "::",
+            stringify!(tqe_prev)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pf_tagname() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_tagname> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_tagname>(),
+        88usize,
+        concat!("Size of: ", stringify!(pf_tagname))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_tagname>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_tagname))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).entries) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_tagname),
+            "::",
+            stringify!(entries)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_tagname),
+            "::",
+            stringify!(name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_tagname),
+            "::",
+            stringify!(tag)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ref_) as usize - ptr as usize },
+        84usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_tagname),
+            "::",
+            stringify!(ref_)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pf_divert {
+    pub addr: pf_addr,
+    pub port: u_int16_t,
+    pub rdomain: u_int16_t,
+    pub type_: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pf_divert() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_divert> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_divert>(),
+        24usize,
+        concat!("Size of: ", stringify!(pf_divert))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_divert>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pf_divert))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_divert),
+            "::",
+            stringify!(addr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_divert),
+            "::",
+            stringify!(port)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rdomain) as usize - ptr as usize },
+        18usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_divert),
+            "::",
+            stringify!(rdomain)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_divert),
+            "::",
+            stringify!(type_)
+        )
+    );
+}
+pub const pf_divert_types_PF_DIVERT_NONE: pf_divert_types = 0;
+pub const pf_divert_types_PF_DIVERT_TO: pf_divert_types = 1;
+pub const pf_divert_types_PF_DIVERT_REPLY: pf_divert_types = 2;
+pub const pf_divert_types_PF_DIVERT_PACKET: pf_divert_types = 3;
+pub type pf_divert_types = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_pktdelay {
+    pub to: timeout,
+    pub m: *mut mbuf,
+    pub ifidx: u_int,
+}
+#[test]
+fn bindgen_test_layout_pf_pktdelay() {
+    const UNINIT: ::std::mem::MaybeUninit<pf_pktdelay> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pf_pktdelay>(),
+        88usize,
+        concat!("Size of: ", stringify!(pf_pktdelay))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pf_pktdelay>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pf_pktdelay))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).to) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pktdelay),
+            "::",
+            stringify!(to)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).m) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pktdelay),
+            "::",
+            stringify!(m)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ifidx) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pf_pktdelay),
+            "::",
+            stringify!(ifidx)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfioc_rule {
+    pub action: u_int32_t,
+    pub ticket: u_int32_t,
+    pub nr: u_int32_t,
+    pub anchor: [::std::os::raw::c_char; 1024usize],
+    pub anchor_call: [::std::os::raw::c_char; 1024usize],
+    pub rule: pf_rule,
+}
+#[test]
+fn bindgen_test_layout_pfioc_rule() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_rule> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_rule>(),
+        3408usize,
+        concat!("Size of: ", stringify!(pfioc_rule))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_rule>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_rule))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).action) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_rule),
+            "::",
+            stringify!(action)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ticket) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_rule),
+            "::",
+            stringify!(ticket)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nr) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_rule),
+            "::",
+            stringify!(nr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).anchor) as usize - ptr as usize },
+        12usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_rule),
+            "::",
+            stringify!(anchor)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).anchor_call) as usize - ptr as usize },
+        1036usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_rule),
+            "::",
+            stringify!(anchor_call)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rule) as usize - ptr as usize },
+        2064usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_rule),
+            "::",
+            stringify!(rule)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfioc_natlook {
+    pub saddr: pf_addr,
+    pub daddr: pf_addr,
+    pub rsaddr: pf_addr,
+    pub rdaddr: pf_addr,
+    pub rdomain: u_int16_t,
+    pub rrdomain: u_int16_t,
+    pub sport: u_int16_t,
+    pub dport: u_int16_t,
+    pub rsport: u_int16_t,
+    pub rdport: u_int16_t,
+    pub af: sa_family_t,
+    pub proto: u_int8_t,
+    pub direction: u_int8_t,
+}
+#[test]
+fn bindgen_test_layout_pfioc_natlook() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_natlook> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_natlook>(),
+        80usize,
+        concat!("Size of: ", stringify!(pfioc_natlook))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_natlook>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfioc_natlook))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).saddr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(saddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).daddr) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(daddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rsaddr) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(rsaddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rdaddr) as usize - ptr as usize },
+        48usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(rdaddr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rdomain) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(rdomain)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rrdomain) as usize - ptr as usize },
+        66usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(rrdomain)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).sport) as usize - ptr as usize },
+        68usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(sport)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).dport) as usize - ptr as usize },
+        70usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(dport)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rsport) as usize - ptr as usize },
+        72usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(rsport)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).rdport) as usize - ptr as usize },
+        74usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(rdport)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).af) as usize - ptr as usize },
+        76usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).proto) as usize - ptr as usize },
+        77usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(proto)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize },
+        78usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_natlook),
+            "::",
+            stringify!(direction)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfioc_state {
+    pub state: pfsync_state,
+}
+#[test]
+fn bindgen_test_layout_pfioc_state() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_state> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_state>(),
+        264usize,
+        concat!("Size of: ", stringify!(pfioc_state))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_state>(),
+        1usize,
+        concat!("Alignment of ", stringify!(pfioc_state))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state),
+            "::",
+            stringify!(state)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfioc_src_node_kill {
+    pub psnk_af: sa_family_t,
+    pub psnk_src: pf_rule_addr,
+    pub psnk_dst: pf_rule_addr,
+    pub psnk_killed: u_int,
+}
+#[test]
+fn bindgen_test_layout_pfioc_src_node_kill() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_src_node_kill> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_src_node_kill>(),
+        128usize,
+        concat!("Size of: ", stringify!(pfioc_src_node_kill))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_src_node_kill>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_src_node_kill))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psnk_af) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_src_node_kill),
+            "::",
+            stringify!(psnk_af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psnk_src) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_src_node_kill),
+            "::",
+            stringify!(psnk_src)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psnk_dst) as usize - ptr as usize },
+        64usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_src_node_kill),
+            "::",
+            stringify!(psnk_dst)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psnk_killed) as usize - ptr as usize },
+        120usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_src_node_kill),
+            "::",
+            stringify!(psnk_killed)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfioc_state_kill {
+    pub psk_pfcmp: pf_state_cmp,
+    pub psk_af: sa_family_t,
+    pub psk_proto: ::std::os::raw::c_int,
+    pub psk_src: pf_rule_addr,
+    pub psk_dst: pf_rule_addr,
+    pub psk_ifname: [::std::os::raw::c_char; 16usize],
+    pub psk_label: [::std::os::raw::c_char; 64usize],
+    pub psk_killed: u_int,
+    pub psk_rdomain: u_int16_t,
+}
+#[test]
+fn bindgen_test_layout_pfioc_state_kill() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_state_kill> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_state_kill>(),
+        224usize,
+        concat!("Size of: ", stringify!(pfioc_state_kill))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_state_kill>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_state_kill))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_pfcmp) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_pfcmp)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_af) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_af)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_proto) as usize - ptr as usize },
+        20usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_proto)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_src) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_src)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_dst) as usize - ptr as usize },
+        80usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_dst)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_ifname) as usize - ptr as usize },
+        136usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_ifname)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_label) as usize - ptr as usize },
+        152usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_label)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_killed) as usize - ptr as usize },
+        216usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_killed)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psk_rdomain) as usize - ptr as usize },
+        220usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_state_kill),
+            "::",
+            stringify!(psk_rdomain)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfioc_states {
+    pub ps_len: usize,
+    pub ps_u: pfioc_states__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pfioc_states__bindgen_ty_1 {
+    pub psu_buf: caddr_t,
+    pub psu_states: *mut pfsync_state,
+}
+#[test]
+fn bindgen_test_layout_pfioc_states__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_states__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_states__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfioc_states__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_states__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_states__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psu_buf) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_states__bindgen_ty_1),
+            "::",
+            stringify!(psu_buf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psu_states) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_states__bindgen_ty_1),
+            "::",
+            stringify!(psu_states)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfioc_states() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_states> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_states>(),
+        16usize,
+        concat!("Size of: ", stringify!(pfioc_states))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_states>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_states))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ps_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_states),
+            "::",
+            stringify!(ps_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ps_u) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_states),
+            "::",
+            stringify!(ps_u)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pfioc_src_nodes {
+    pub psn_len: usize,
+    pub psn_u: pfioc_src_nodes__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pfioc_src_nodes__bindgen_ty_1 {
+    pub psu_buf: caddr_t,
+    pub psu_src_nodes: *mut pf_src_node,
+}
+#[test]
+fn bindgen_test_layout_pfioc_src_nodes__bindgen_ty_1() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_src_nodes__bindgen_ty_1> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_src_nodes__bindgen_ty_1>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfioc_src_nodes__bindgen_ty_1))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_src_nodes__bindgen_ty_1>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_src_nodes__bindgen_ty_1))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psu_buf) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_src_nodes__bindgen_ty_1),
+            "::",
+            stringify!(psu_buf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psu_src_nodes) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_src_nodes__bindgen_ty_1),
+            "::",
+            stringify!(psu_src_nodes)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfioc_src_nodes() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_src_nodes> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_src_nodes>(),
+        16usize,
+        concat!("Size of: ", stringify!(pfioc_src_nodes))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_src_nodes>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_src_nodes))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psn_len) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_src_nodes),
+            "::",
+            stringify!(psn_len)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).psn_u) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_src_nodes),
+            "::",
+            stringify!(psn_u)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_tm {
+    pub timeout: ::std::os::raw::c_int,
+    pub seconds: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pfioc_tm() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_tm> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_tm>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfioc_tm))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_tm>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfioc_tm))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).timeout) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_tm),
+            "::",
+            stringify!(timeout)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).seconds) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_tm),
+            "::",
+            stringify!(seconds)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_limit {
+    pub index: ::std::os::raw::c_int,
+    pub limit: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout_pfioc_limit() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_limit> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_limit>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfioc_limit))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_limit>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfioc_limit))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_limit),
+            "::",
+            stringify!(index)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_limit),
+            "::",
+            stringify!(limit)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_ruleset {
+    pub nr: u_int32_t,
+    pub path: [::std::os::raw::c_char; 1024usize],
+    pub name: [::std::os::raw::c_char; 64usize],
+}
+#[test]
+fn bindgen_test_layout_pfioc_ruleset() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_ruleset> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_ruleset>(),
+        1092usize,
+        concat!("Size of: ", stringify!(pfioc_ruleset))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_ruleset>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfioc_ruleset))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nr) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_ruleset),
+            "::",
+            stringify!(nr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_ruleset),
+            "::",
+            stringify!(path)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
+        1028usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_ruleset),
+            "::",
+            stringify!(name)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_trans {
+    pub size: ::std::os::raw::c_int,
+    pub esize: ::std::os::raw::c_int,
+    pub array: *mut pfioc_trans_pfioc_trans_e,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_trans_pfioc_trans_e {
+    pub type_: ::std::os::raw::c_int,
+    pub anchor: [::std::os::raw::c_char; 1024usize],
+    pub ticket: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_pfioc_trans_pfioc_trans_e() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_trans_pfioc_trans_e> =
+        ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_trans_pfioc_trans_e>(),
+        1032usize,
+        concat!("Size of: ", stringify!(pfioc_trans_pfioc_trans_e))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_trans_pfioc_trans_e>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfioc_trans_pfioc_trans_e))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_trans_pfioc_trans_e),
+            "::",
+            stringify!(type_)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).anchor) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_trans_pfioc_trans_e),
+            "::",
+            stringify!(anchor)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ticket) as usize - ptr as usize },
+        1028usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_trans_pfioc_trans_e),
+            "::",
+            stringify!(ticket)
+        )
+    );
+}
+#[test]
+fn bindgen_test_layout_pfioc_trans() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_trans> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_trans>(),
+        16usize,
+        concat!("Size of: ", stringify!(pfioc_trans))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_trans>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_trans))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_trans),
+            "::",
+            stringify!(size)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).esize) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_trans),
+            "::",
+            stringify!(esize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).array) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_trans),
+            "::",
+            stringify!(array)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_queue {
+    pub ticket: u_int32_t,
+    pub nr: u_int,
+    pub queue: pf_queuespec,
+}
+#[test]
+fn bindgen_test_layout_pfioc_queue() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_queue> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_queue>(),
+        272usize,
+        concat!("Size of: ", stringify!(pfioc_queue))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_queue>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_queue))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ticket) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_queue),
+            "::",
+            stringify!(ticket)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nr) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_queue),
+            "::",
+            stringify!(nr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).queue) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_queue),
+            "::",
+            stringify!(queue)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_qstats {
+    pub ticket: u_int32_t,
+    pub nr: u_int32_t,
+    pub queue: pf_queuespec,
+    pub buf: *mut ::std::os::raw::c_void,
+    pub nbytes: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pfioc_qstats() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_qstats> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_qstats>(),
+        288usize,
+        concat!("Size of: ", stringify!(pfioc_qstats))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_qstats>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_qstats))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).ticket) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_qstats),
+            "::",
+            stringify!(ticket)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nr) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_qstats),
+            "::",
+            stringify!(nr)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).queue) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_qstats),
+            "::",
+            stringify!(queue)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize },
+        272usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_qstats),
+            "::",
+            stringify!(buf)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).nbytes) as usize - ptr as usize },
+        280usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_qstats),
+            "::",
+            stringify!(nbytes)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_table {
+    pub pfrio_table: pfr_table,
+    pub pfrio_buffer: *mut ::std::os::raw::c_void,
+    pub pfrio_esize: ::std::os::raw::c_int,
+    pub pfrio_size: ::std::os::raw::c_int,
+    pub pfrio_size2: ::std::os::raw::c_int,
+    pub pfrio_nadd: ::std::os::raw::c_int,
+    pub pfrio_ndel: ::std::os::raw::c_int,
+    pub pfrio_nchange: ::std::os::raw::c_int,
+    pub pfrio_flags: ::std::os::raw::c_int,
+    pub pfrio_ticket: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_pfioc_table() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_table> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_table>(),
+        1104usize,
+        concat!("Size of: ", stringify!(pfioc_table))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_table>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_table))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_table) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_table)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_buffer) as usize - ptr as usize },
+        1064usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_buffer)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_esize) as usize - ptr as usize },
+        1072usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_esize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_size) as usize - ptr as usize },
+        1076usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_size)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_size2) as usize - ptr as usize },
+        1080usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_size2)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_nadd) as usize - ptr as usize },
+        1084usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_nadd)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_ndel) as usize - ptr as usize },
+        1088usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_ndel)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_nchange) as usize - ptr as usize },
+        1092usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_nchange)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_flags) as usize - ptr as usize },
+        1096usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_flags)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfrio_ticket) as usize - ptr as usize },
+        1100usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_table),
+            "::",
+            stringify!(pfrio_ticket)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_iface {
+    pub pfiio_name: [::std::os::raw::c_char; 16usize],
+    pub pfiio_buffer: *mut ::std::os::raw::c_void,
+    pub pfiio_esize: ::std::os::raw::c_int,
+    pub pfiio_size: ::std::os::raw::c_int,
+    pub pfiio_nzero: ::std::os::raw::c_int,
+    pub pfiio_flags: ::std::os::raw::c_int,
+}
+#[test]
+fn bindgen_test_layout_pfioc_iface() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_iface> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_iface>(),
+        40usize,
+        concat!("Size of: ", stringify!(pfioc_iface))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_iface>(),
+        8usize,
+        concat!("Alignment of ", stringify!(pfioc_iface))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfiio_name) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_iface),
+            "::",
+            stringify!(pfiio_name)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfiio_buffer) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_iface),
+            "::",
+            stringify!(pfiio_buffer)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfiio_esize) as usize - ptr as usize },
+        24usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_iface),
+            "::",
+            stringify!(pfiio_esize)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfiio_size) as usize - ptr as usize },
+        28usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_iface),
+            "::",
+            stringify!(pfiio_size)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfiio_nzero) as usize - ptr as usize },
+        32usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_iface),
+            "::",
+            stringify!(pfiio_nzero)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).pfiio_flags) as usize - ptr as usize },
+        36usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_iface),
+            "::",
+            stringify!(pfiio_flags)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfioc_synflwats {
+    pub hiwat: u_int32_t,
+    pub lowat: u_int32_t,
+}
+#[test]
+fn bindgen_test_layout_pfioc_synflwats() {
+    const UNINIT: ::std::mem::MaybeUninit<pfioc_synflwats> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<pfioc_synflwats>(),
+        8usize,
+        concat!("Size of: ", stringify!(pfioc_synflwats))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<pfioc_synflwats>(),
+        4usize,
+        concat!("Alignment of ", stringify!(pfioc_synflwats))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).hiwat) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_synflwats),
+            "::",
+            stringify!(hiwat)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).lowat) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(pfioc_synflwats),
+            "::",
+            stringify!(lowat)
+        )
+    );
+}
+extern "C" {
+    pub static mut pf_anchors: pf_anchor_global;
+}
+extern "C" {
+    pub static mut pf_main_anchor: pf_anchor;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+    _unused: [u8; 0],
+}
+extern "C" {
+    pub fn pf_init_ruleset(arg1: *mut pf_ruleset);
+}
+extern "C" {
+    pub fn pf_anchor_setup(
+        arg1: *mut pf_rule,
+        arg2: *const pf_ruleset,
+        arg3: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn pf_anchor_copyout(
+        arg1: *const pf_ruleset,
+        arg2: *const pf_rule,
+        arg3: *mut pfioc_rule,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn pf_remove_anchor(arg1: *mut pf_rule);
+}
+extern "C" {
+    pub fn pf_remove_if_empty_ruleset(arg1: *mut pf_ruleset);
+}
+extern "C" {
+    pub fn pf_find_anchor(arg1: *const ::std::os::raw::c_char) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_find_ruleset(arg1: *const ::std::os::raw::c_char) -> *mut pf_ruleset;
+}
+extern "C" {
+    pub fn pf_get_leaf_ruleset(
+        arg1: *mut ::std::os::raw::c_char,
+        arg2: *mut *mut ::std::os::raw::c_char,
+    ) -> *mut pf_ruleset;
+}
+extern "C" {
+    pub fn pf_create_anchor(
+        arg1: *mut pf_anchor,
+        arg2: *const ::std::os::raw::c_char,
+    ) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_find_or_create_ruleset(arg1: *const ::std::os::raw::c_char) -> *mut pf_ruleset;
+}
+extern "C" {
+    pub fn pf_rs_initialize();
+}
+extern "C" {
+    pub fn pf_anchor_rele(arg1: *mut pf_anchor);
+}
+extern "C" {
+    pub fn pf_anchor_take(arg1: *mut pf_anchor) -> *mut pf_anchor;
+}
+extern "C" {
+    pub fn pf_osfp_add(arg1: *mut pf_osfp_ioctl) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn pf_osfp_fingerprint_hdr(
+        arg1: *const ip,
+        arg2: *const ip6_hdr,
+        arg3: *const tcphdr,
+    ) -> *mut pf_os_fingerprint_pf_osfp_enlist;
+}
+extern "C" {
+    pub fn pf_osfp_flush();
+}
+extern "C" {
+    pub fn pf_osfp_get(arg1: *mut pf_osfp_ioctl) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn pf_osfp_initialize();
+}
+extern "C" {
+    pub fn pf_osfp_match(
+        arg1: *mut pf_os_fingerprint_pf_osfp_enlist,
+        arg2: pf_osfp_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn pf_osfp_validate() -> *mut pf_os_fingerprint;
+}
+pub type __builtin_va_list = [__va_list_tag; 1usize];
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __va_list_tag {
+    pub gp_offset: ::std::os::raw::c_uint,
+    pub fp_offset: ::std::os::raw::c_uint,
+    pub overflow_arg_area: *mut ::std::os::raw::c_void,
+    pub reg_save_area: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout___va_list_tag() {
+    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
+    let ptr = UNINIT.as_ptr();
+    assert_eq!(
+        ::std::mem::size_of::<__va_list_tag>(),
+        24usize,
+        concat!("Size of: ", stringify!(__va_list_tag))
+    );
+    assert_eq!(
+        ::std::mem::align_of::<__va_list_tag>(),
+        8usize,
+        concat!("Alignment of ", stringify!(__va_list_tag))
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
+        0usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(gp_offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
+        4usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(fp_offset)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
+        8usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(overflow_arg_area)
+        )
+    );
+    assert_eq!(
+        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
+        16usize,
+        concat!(
+            "Offset of field: ",
+            stringify!(__va_list_tag),
+            "::",
+            stringify!(reg_save_area)
+        )
+    );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct witness {
+    pub _address: u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct process {
+    pub _address: u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddr {
+    pub _address: u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtentry {
+    pub _address: u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pfi_dynaddr {
+    pub _address: u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_state {
+    pub _address: u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pf_state_key {
+    pub _address: u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mbuf {
+    _unused: [u8; 0],
+}
diff --git a/crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/bsd.rs b/crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/bsd.rs
index 1c57302798ef..1c011f425160 100644
--- a/crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/bsd.rs
+++ b/crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/bsd.rs
@@ -21,7 +21,7 @@ use crate::{
 impl TcpListenerRedirExt for TcpListener {
     async fn bind_redir(ty: RedirType, addr: SocketAddr, accept_opts: AcceptOpts) -> io::Result<TcpListener> {
         match ty {
-            #[cfg(any(target_os = "freebsd", target_os = "macos", target_os = "ios"))]
+            #[cfg(any(target_os = "freebsd", target_os = "openbsd", target_os = "macos", target_os = "ios"))]
             RedirType::PacketFilter => {}
 
             #[cfg(any(target_os = "freebsd", target_os = "macos", target_os = "ios"))]
@@ -108,6 +108,8 @@ impl TcpStreamRedirExt for TcpStream {
 
                 PF.natlook(&bind_addr, &peer_addr, Protocol::TCP)
             }
+            #[cfg(target_os = "openbsd")] //in OpenBSD, we can get TCP destination address with getsockname()
+            RedirType::PacketFilter => self.local_addr(),
             #[cfg(any(target_os = "freebsd", target_os = "macos", target_os = "ios"))]
             RedirType::IpFirewall => {
                 // ## IPFW
diff --git a/crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/mod.rs b/crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/mod.rs
index bb679c4822bb..5f9e7c10f6b4 100644
--- a/crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/mod.rs
+++ b/crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/mod.rs
@@ -6,7 +6,8 @@ cfg_if! {
         pub use self::linux::*;
     } else if #[cfg(any(target_os = "macos",
                         target_os = "ios",
-                        target_os = "freebsd"))] {
+                        target_os = "freebsd",
+                        target_os = "openbsd"))] {
         mod bsd;
         pub use self::bsd::*;
     }
diff --git a/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/bsd.rs b/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/freebsd.rs
similarity index 94%
rename from crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/bsd.rs
rename to crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/freebsd.rs
index 2ac63c636ce2..f4d1baceb374 100644
--- a/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/bsd.rs
+++ b/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/freebsd.rs
@@ -159,7 +159,6 @@ impl UdpSocketRedir for UdpRedirSocket {
     }
 }
 
-#[cfg(target_os = "freebsd")]
 fn set_bindany(level: libc::c_int, socket: &Socket) -> io::Result<()> {
     let fd = socket.as_raw_fd();
 
@@ -188,29 +187,6 @@ fn set_bindany(level: libc::c_int, socket: &Socket) -> io::Result<()> {
     Ok(())
 }
 
-// #[cfg(target_os = "openbsd")]
-// fn set_bindany(_level: libc::c_int, socket: &Socket) -> io::Result<()> {
-//     let fd = socket.as_raw_fd();
-//
-//     let enable: libc::c_int = 1;
-//
-//     // https://man.openbsd.org/getsockopt.2
-//     unsafe {
-//         let ret = libc::setsockopt(
-//             fd,
-//             libc::SOL_SOCKET,
-//             libc::SO_BINDANY,
-//             &enable as *const _ as *const _,
-//             mem::size_of_val(&enable) as libc::socklen_t,
-//         );
-//         if ret != 0 {
-//             return Err(Error::last_os_error());
-//         }
-//     }
-//
-//     Ok(())
-// }
-
 fn set_ip_origdstaddr(level: libc::c_int, socket: &Socket) -> io::Result<()> {
     // https://www.freebsd.org/cgi/man.cgi?query=ip&sektion=4&manpath=FreeBSD+9.0-RELEASE
 
diff --git a/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/mod.rs b/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/mod.rs
index a0bfe2202dc0..cc0f0749d260 100644
--- a/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/mod.rs
+++ b/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/mod.rs
@@ -8,8 +8,11 @@ cfg_if! {
         mod macos;
         pub use self::macos::*;
     } else if #[cfg(any(target_os = "freebsd"))] {
-        mod bsd;
-        pub use self::bsd::*;
+        mod freebsd;
+        pub use self::freebsd::*;
+    } else if #[cfg(target_os = "openbsd")] {
+        mod openbsd;
+        pub use self::openbsd::*;
     } else {
         mod not_supported;
         pub use self::not_supported::*;
diff --git a/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/openbsd.rs b/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/openbsd.rs
new file mode 100644
index 000000000000..2bd7f47e6418
--- /dev/null
+++ b/crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/openbsd.rs
@@ -0,0 +1,360 @@
+use std::{
+    io::{self, Error, ErrorKind},
+    mem,
+    net::{SocketAddr, UdpSocket},
+    os::unix::io::AsRawFd,
+    ptr,
+    task::{Context, Poll},
+};
+
+use futures::{future::poll_fn, ready};
+use log::{error, trace, warn};
+use shadowsocks::net::is_dual_stack_addr;
+use socket2::{Domain, Protocol, SockAddr, Socket, Type};
+use tokio::io::unix::AsyncFd;
+
+use crate::{
+    config::RedirType,
+    local::redir::{
+        redir_ext::{RedirSocketOpts, UdpSocketRedir},
+        sys::set_ipv6_only,
+    },
+};
+const IP_RECVDSTPORT: i32 = 33; //Temporary workaround until libc supports this
+const IPV6_RECVDSTPORT: i32 = 64; //Temporary workaround until libc supports this
+
+pub struct UdpRedirSocket {
+    io: AsyncFd<UdpSocket>,
+}
+
+impl UdpRedirSocket {
+    /// Create a new UDP socket binded to `addr`
+    ///
+    /// This will allow listening to `addr` that is not in local host
+    pub fn listen(ty: RedirType, addr: SocketAddr) -> io::Result<UdpRedirSocket> {
+        UdpRedirSocket::bind(ty, addr, false)
+    }
+
+    /// Create a new UDP socket binded to `addr`
+    ///
+    /// This will allow binding to `addr` that is not in local host
+    pub fn bind_nonlocal(ty: RedirType, addr: SocketAddr, _: &RedirSocketOpts) -> io::Result<UdpRedirSocket> {
+        UdpRedirSocket::bind(ty, addr, true)
+    }
+
+    fn bind(ty: RedirType, addr: SocketAddr, reuse_port: bool) -> io::Result<UdpRedirSocket> {
+        if ty == RedirType::NotSupported {
+            return Err(Error::new(
+                ErrorKind::InvalidInput,
+                "not supported udp transparent proxy type",
+            ));
+        }
+
+        let socket = Socket::new(Domain::for_address(addr), Type::DGRAM, Some(Protocol::UDP))?;
+        set_socket_before_bind(&addr, &socket)?;
+
+        socket.set_nonblocking(true)?;
+        socket.set_reuse_address(true)?;
+        if reuse_port {
+            if let Err(err) = socket.set_reuse_port(true) {
+                if let Some(errno) = err.raw_os_error() {
+                    match errno {
+                        libc::ENOPROTOOPT => {
+                            trace!("failed to set SO_REUSEPORT, error: {}", err);
+                        }
+                        _ => {
+                            error!("failed to set SO_REUSEPORT, error: {}", err);
+                            return Err(err);
+                        }
+                    }
+                } else {
+                    error!("failed to set SO_REUSEPORT, error: {}", err);
+                    return Err(err);
+                }
+            }
+        }
+
+        let sock_addr = SockAddr::from(addr);
+
+        if is_dual_stack_addr(&addr) {
+            // set IP_ORIGDSTADDR before bind()
+
+            // NOTE: FreeBSD doesn't allow setting IPPROTO_IP level on an IPv6 socket
+            //
+            // set_ip_origdstaddr(libc::IPPROTO_IP, &socket)?;
+            // set_disable_ip_fragmentation(libc::IPPROTO_IP, &socket)?;
+
+            match set_ipv6_only(&socket, false) {
+                Ok(..) => {
+                    if let Err(err) = socket.bind(&sock_addr) {
+                        warn!(
+                            "bind() dual-stack address {} failed, error: {}, fallback to IPV6_V6ONLY=true",
+                            addr, err
+                        );
+
+                        if let Err(err) = set_ipv6_only(&socket, true) {
+                            warn!(
+                                "set IPV6_V6ONLY=true failed, error: {}, bind() to {} directly",
+                                err, addr
+                            );
+                        }
+
+                        socket.bind(&sock_addr)?;
+                    }
+                }
+                Err(err) => {
+                    warn!(
+                        "set IPV6_V6ONLY=false failed, error: {}, bind() to {} directly",
+                        err, addr
+                    );
+                    socket.bind(&sock_addr)?;
+                }
+            }
+        } else {
+            socket.bind(&sock_addr)?;
+        }
+
+        let io = AsyncFd::new(socket.into())?;
+        Ok(UdpRedirSocket { io })
+    }
+
+    /// Send data to the socket to the given target address
+    pub async fn send_to(&self, buf: &[u8], target: SocketAddr) -> io::Result<usize> {
+        poll_fn(|cx| self.poll_send_to(cx, buf, target)).await
+    }
+
+    fn poll_send_to(&self, cx: &mut Context<'_>, buf: &[u8], target: SocketAddr) -> Poll<io::Result<usize>> {
+        loop {
+            let mut write_guard = ready!(self.io.poll_write_ready(cx))?;
+
+            match self.io.get_ref().send_to(buf, target) {
+                Err(ref e) if e.kind() == ErrorKind::WouldBlock => {
+                    write_guard.clear_ready();
+                }
+                x => return Poll::Ready(x),
+            }
+        }
+    }
+
+    /// Returns the local address that this socket is bound to.
+    pub fn local_addr(&self) -> io::Result<SocketAddr> {
+        self.io.get_ref().local_addr()
+    }
+}
+
+impl UdpSocketRedir for UdpRedirSocket {
+    fn poll_recv_dest_from(
+        &self,
+        cx: &mut Context<'_>,
+        buf: &mut [u8],
+    ) -> Poll<io::Result<(usize, SocketAddr, SocketAddr)>> {
+        loop {
+            let mut read_guard = ready!(self.io.poll_read_ready(cx))?;
+
+            match recv_dest_from(self.io.get_ref(), buf) {
+                Err(ref e) if e.kind() == ErrorKind::WouldBlock => {
+                    read_guard.clear_ready();
+                }
+                x => return Poll::Ready(x),
+            }
+        }
+    }
+}
+
+fn set_bindany(_level: libc::c_int, socket: &Socket) -> io::Result<()> {
+    let fd = socket.as_raw_fd();
+
+    let enable: libc::c_int = 1;
+
+    // https://man.openbsd.org/getsockopt.2
+    unsafe {
+        let ret = libc::setsockopt(
+            fd,
+            libc::SOL_SOCKET,
+            libc::SO_BINDANY,
+            &enable as *const _ as *const _,
+            mem::size_of_val(&enable) as libc::socklen_t,
+        );
+        if ret != 0 {
+            return Err(Error::last_os_error());
+        }
+    }
+
+    Ok(())
+}
+
+fn set_ip_origdstaddr(level: libc::c_int, socket: &Socket) -> io::Result<()> {
+    // https://man.openbsd.org/pf.conf
+    let fd = socket.as_raw_fd();
+
+    let enable: libc::c_int = 1;
+
+    let opt = match level {
+        libc::IPPROTO_IP => libc::IP_RECVDSTADDR,
+        libc::IPPROTO_IPV6 => libc::IPV6_RECVPKTINFO,
+        _ => unreachable!("level can only be IPPROTO_IP or IPPROTO_IPV6"),
+    };
+
+    unsafe {
+        let ret = libc::setsockopt(
+            fd,
+            level,
+            opt,
+            &enable as *const _ as *const _,
+            mem::size_of_val(&enable) as libc::socklen_t,
+        );
+        if ret != 0 {
+            return Err(Error::last_os_error());
+        }
+    }
+
+    let opt2 = match level {
+        libc::IPPROTO_IP => IP_RECVDSTPORT,
+        libc::IPPROTO_IPV6 => IPV6_RECVDSTPORT,
+        _ => unreachable!("level can only be IPPROTO_IP or IPPROTO_IPV6"),
+    };
+    unsafe {
+        let ret = libc::setsockopt(
+            fd,
+            level,
+            opt2,
+            &enable as *const _ as *const _,
+            mem::size_of_val(&enable) as libc::socklen_t,
+        );
+        if ret != 0 {
+            return Err(Error::last_os_error());
+        }
+    }
+    Ok(())
+}
+
+fn set_socket_before_bind(addr: &SocketAddr, socket: &Socket) -> io::Result<()> {
+    // https://www.freebsd.org/cgi/man.cgi?query=ip&sektion=4&manpath=FreeBSD+9.0-RELEASE
+    let level = match *addr {
+        SocketAddr::V4(..) => libc::IPPROTO_IP,
+        SocketAddr::V6(..) => libc::IPPROTO_IPV6,
+    };
+
+    // 1. BINDANY
+    set_bindany(level, socket)?;
+
+    // 2. set ORIGDSTADDR for retrieving original destination address
+    set_ip_origdstaddr(level, socket)?;
+
+    Ok(())
+}
+
+fn get_destination_addr(msg: &libc::msghdr) -> io::Result<SocketAddr> {
+    unsafe {
+        let (_, addr) = SockAddr::try_init(|dst_addr, dst_addr_len| {
+            let mut cmsg: *mut libc::cmsghdr = libc::CMSG_FIRSTHDR(msg);
+            let mut addr_or_port_received = false; //The address should come first and then the port, but we use a flag just in case. https://github.com/openbsd/src/blob/3d310523b415eeee9db46a5b67eecf8f9fdd5c8f/sys/netinet/udp_usrreq.c#L662-L687
+            while !cmsg.is_null() {
+                let rcmsg = &*cmsg;
+                match (rcmsg.cmsg_level, rcmsg.cmsg_type) {
+                    (libc::IPPROTO_IP, libc::IP_RECVDSTADDR) => {
+                        let toaddr_in = &mut *(dst_addr as *mut libc::sockaddr_in);
+                        ptr::copy_nonoverlapping(
+                            libc::CMSG_DATA(cmsg),
+                            &(*toaddr_in).sin_addr as *const _ as *mut _,
+                            mem::size_of::<libc::in_addr>(),
+                        );
+                        toaddr_in.sin_family = libc::AF_INET as u8;
+                        *dst_addr_len = mem::size_of::<libc::sockaddr_in>() as libc::socklen_t;
+                        if addr_or_port_received {
+                            return Ok(());
+                        } else {
+                            addr_or_port_received = true
+                        }
+                    }
+                    (libc::IPPROTO_IP, IP_RECVDSTPORT) => {
+                        let toaddr_in = &mut *(dst_addr as *mut libc::sockaddr_in);
+                        ptr::copy_nonoverlapping(
+                            libc::CMSG_DATA(cmsg),
+                            &(*toaddr_in).sin_port as *const _ as *mut _,
+                            mem::size_of::<libc::in_port_t>(),
+                        );
+                        if addr_or_port_received {
+                            return Ok(());
+                        } else {
+                            addr_or_port_received = true
+                        }
+                    }
+                    (libc::IPPROTO_IPV6, libc::IPV6_PKTINFO) => {
+                        let toaddr_in = &mut *(dst_addr as *mut libc::sockaddr_in6);
+                        ptr::copy_nonoverlapping(
+                            libc::CMSG_DATA(cmsg),
+                            &(*toaddr_in).sin6_addr as *const _ as *mut _,
+                            mem::size_of::<libc::in6_addr>(),
+                        );
+                        toaddr_in.sin6_family = libc::AF_INET6 as u8;
+                        *dst_addr_len = mem::size_of::<libc::sockaddr_in6>() as libc::socklen_t;
+                        if addr_or_port_received {
+                            return Ok(());
+                        } else {
+                            addr_or_port_received = true
+                        }
+                    }
+                    (libc::IPPROTO_IPV6, IPV6_RECVDSTPORT) => {
+                        let toaddr_in = &mut *(dst_addr as *mut libc::sockaddr_in6);
+                        ptr::copy_nonoverlapping(
+                            libc::CMSG_DATA(cmsg),
+                            &(*toaddr_in).sin6_port as *const _ as *mut _,
+                            mem::size_of::<libc::in_port_t>(),
+                        );
+                        if addr_or_port_received {
+                            return Ok(());
+                        } else {
+                            addr_or_port_received = true
+                        }
+                    }
+                    _ => {}
+                }
+                cmsg = libc::CMSG_NXTHDR(msg, cmsg);
+            }
+            let err = Error::new(ErrorKind::InvalidData, "missing destination address in msghdr");
+            Err(err)
+        })?;
+
+        Ok(addr.as_socket().expect("SocketAddr"))
+    }
+}
+
+fn recv_dest_from(socket: &UdpSocket, buf: &mut [u8]) -> io::Result<(usize, SocketAddr, SocketAddr)> {
+    unsafe {
+        let mut control_buf = [0u8; 64];
+        let mut src_addr: libc::sockaddr_storage = mem::zeroed();
+
+        let mut msg: libc::msghdr = mem::zeroed();
+        msg.msg_name = &mut src_addr as *mut _ as *mut _;
+        msg.msg_namelen = mem::size_of_val(&src_addr) as libc::socklen_t;
+
+        let mut iov = libc::iovec {
+            iov_base: buf.as_mut_ptr() as *mut _,
+            iov_len: buf.len() as libc::size_t,
+        };
+        msg.msg_iov = &mut iov;
+        msg.msg_iovlen = 1;
+
+        msg.msg_control = control_buf.as_mut_ptr() as *mut _;
+        msg.msg_controllen = control_buf.len() as libc::socklen_t;
+
+        let fd = socket.as_raw_fd();
+        let ret = libc::recvmsg(fd, &mut msg, 0);
+        if ret < 0 {
+            return Err(Error::last_os_error());
+        }
+
+        let (_, src_saddr) = SockAddr::try_init(|a, l| {
+            ptr::copy_nonoverlapping(msg.msg_name, a as *mut _, msg.msg_namelen as usize);
+            *l = msg.msg_namelen;
+            Ok(())
+        })?;
+
+        Ok((
+            ret as usize,
+            src_saddr.as_socket().expect("SocketAddr"),
+            get_destination_addr(&msg)?,
+        ))
+    }
+}