diff --git a/src/new/glibc/mod.rs b/src/new/glibc/mod.rs new file mode 100644 index 000000000000..b292dcf0202c --- /dev/null +++ b/src/new/glibc/mod.rs @@ -0,0 +1,6 @@ +cfg_if! { + if #[cfg(target_family = "unix")] { + mod unix; + pub use unix::*; + } +} diff --git a/src/new/glibc/unix/linux/mod.rs b/src/new/glibc/unix/linux/mod.rs new file mode 100644 index 000000000000..61b46c1e25b1 --- /dev/null +++ b/src/new/glibc/unix/linux/mod.rs @@ -0,0 +1,2 @@ +mod net; +pub use net::*; diff --git a/src/new/glibc/unix/linux/net/mod.rs b/src/new/glibc/unix/linux/net/mod.rs new file mode 100644 index 000000000000..84248c562450 --- /dev/null +++ b/src/new/glibc/unix/linux/net/mod.rs @@ -0,0 +1,2 @@ +mod route; +pub use route::*; diff --git a/src/new/glibc/unix/linux/net/route.rs b/src/new/glibc/unix/linux/net/route.rs new file mode 100644 index 000000000000..5b706c869c8e --- /dev/null +++ b/src/new/glibc/unix/linux/net/route.rs @@ -0,0 +1,27 @@ +//! Header: `sysdeps/unix/sysv/linux/net/route.h` + +use crate::prelude::*; + +s! { + pub struct rtentry { + pub rt_pad1: c_ulong, + pub rt_dst: crate::sockaddr, + pub rt_gateway: crate::sockaddr, + pub rt_genmask: crate::sockaddr, + pub rt_flags: c_ushort, + pub rt_pad2: c_short, + pub rt_pad3: c_ulong, + pub rt_tos: c_uchar, + pub rt_class: c_uchar, + // FIXME(1.0): private padding fields + #[cfg(target_pointer_width = "64")] + pub rt_pad4: [c_short; 3usize], + #[cfg(not(target_pointer_width = "64"))] + pub rt_pad4: c_short, + pub rt_metric: c_short, + pub rt_dev: *mut c_char, + pub rt_mtu: c_ulong, + pub rt_window: c_ulong, + pub rt_irtt: c_ushort, + } +} diff --git a/src/new/glibc/unix/mod.rs b/src/new/glibc/unix/mod.rs new file mode 100644 index 000000000000..6f65de9cb216 --- /dev/null +++ b/src/new/glibc/unix/mod.rs @@ -0,0 +1,6 @@ +cfg_if! { + if #[cfg(target_os = "linux")] { +mod linux; +pub use linux::*; + } +} diff --git a/src/new/mod.rs b/src/new/mod.rs index 4006f5c82288..5405222afef5 100644 --- a/src/new/mod.rs +++ b/src/new/mod.rs @@ -10,3 +10,10 @@ cfg_if! { pub use linux_uapi::*; } } + +cfg_if! { + if #[cfg(all(target_os = "linux", target_env = "gnu"))] { + mod glibc; + pub use glibc::*; + } +} diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 06c6fe6714d3..0277b6a738ba 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -131,27 +131,6 @@ s! { pub nm_gid: u32, } - pub struct rtentry { - pub rt_pad1: c_ulong, - pub rt_dst: crate::sockaddr, - pub rt_gateway: crate::sockaddr, - pub rt_genmask: crate::sockaddr, - pub rt_flags: c_ushort, - pub rt_pad2: c_short, - pub rt_pad3: c_ulong, - pub rt_tos: c_uchar, - pub rt_class: c_uchar, - #[cfg(target_pointer_width = "64")] - pub rt_pad4: [c_short; 3usize], - #[cfg(not(target_pointer_width = "64"))] - pub rt_pad4: c_short, - pub rt_metric: c_short, - pub rt_dev: *mut c_char, - pub rt_mtu: c_ulong, - pub rt_window: c_ulong, - pub rt_irtt: c_ushort, - } - pub struct ntptimeval { pub time: crate::timeval, pub maxerror: c_long,