diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt index 142cf994cddd..f43cca1e80b7 100644 --- a/libc-test/semver/freebsd.txt +++ b/libc-test/semver/freebsd.txt @@ -2314,6 +2314,8 @@ regfree register_t regmatch_t regoff_t +rt_metrics +rt_msghdr rtprio rtprio_thread sallocx diff --git a/src/new/freebsd/net/mod.rs b/src/new/freebsd/net/mod.rs index 44be99742696..d39cb6c32d72 100644 --- a/src/new/freebsd/net/mod.rs +++ b/src/new/freebsd/net/mod.rs @@ -4,3 +4,4 @@ pub(crate) mod dlt; pub(crate) mod if_mib; +pub(crate) mod route; diff --git a/src/new/freebsd/net/route.rs b/src/new/freebsd/net/route.rs new file mode 100644 index 000000000000..a67faeda2e0b --- /dev/null +++ b/src/new/freebsd/net/route.rs @@ -0,0 +1,39 @@ +//! Header: `net/route.h` +//! +//! + +use crate::prelude::*; + +s_with_default! { + pub struct rt_metrics { + pub rmx_locks: c_ulong, + pub rmx_mtu: c_ulong, + pub rmx_hopcount: c_ulong, + pub rmx_expire: c_ulong, + pub rmx_recvpipe: c_ulong, + pub rmx_sendpipe: c_ulong, + pub rmx_ssthresh: c_ulong, + pub rmx_rtt: c_ulong, + pub rmx_rttvar: c_ulong, + pub rmx_pksent: c_ulong, + pub rmx_weight: c_ulong, + pub rmx_nhidx: c_ulong, + rmx_filler: Padding<[c_ulong; 2]>, + } + + pub struct rt_msghdr { + pub rtm_msglen: c_ushort, + pub rtm_version: c_uchar, + pub rtm_type: c_uchar, + pub rtm_index: c_ushort, + _rtm_spare1: Padding, + pub rtm_flags: c_int, + pub rtm_addrs: c_int, + pub rtm_pid: crate::pid_t, + pub rtm_seq: c_int, + pub rtm_errno: c_int, + pub rtm_fmask: c_int, + pub rtm_inits: c_ulong, + pub rtm_rmx: rt_metrics, + } +} diff --git a/src/new/mod.rs b/src/new/mod.rs index 52212334e661..fae8ba4fa5ad 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -229,6 +229,7 @@ cfg_if! { pub use net::dlt::*; // FIXME(1.0,remove): these bindings should be left in a public submodule. pub use net::if_mib::*; + pub use net::route::*; pub use netinet6::in6_var::*; pub use sys::file::*; pub use sys::ioccom::*;