diff options
author | luozijun <gnulinux@126.com> | 2017-12-12 11:24:00 +0800 |
---|---|---|
committer | luozijun <gnulinux@126.com> | 2017-12-12 11:24:00 +0800 |
commit | 789fd5eb81890cd380e2ce707a57f915c974ba5e (patch) | |
tree | e081b67fd54807a49bf384b9885905b49b8761ad | |
parent | 0061cc9510390b0bf9d887d1c2d5e8d3744a4125 (diff) | |
download | rust-libc-789fd5eb81890cd380e2ce707a57f915c974ba5e.tar.gz |
Add `sockaddr_dl` for all bsdlike
-rw-r--r-- | libc-test/build.rs | 2 | ||||
-rw-r--r-- | src/unix/bsd/apple/mod.rs | 28 | ||||
-rw-r--r-- | src/unix/bsd/freebsdlike/dragonfly/mod.rs | 13 | ||||
-rw-r--r-- | src/unix/bsd/freebsdlike/freebsd/mod.rs | 11 | ||||
-rw-r--r-- | src/unix/bsd/freebsdlike/mod.rs | 16 | ||||
-rw-r--r-- | src/unix/bsd/netbsdlike/netbsd/mod.rs | 11 | ||||
-rw-r--r-- | src/unix/bsd/netbsdlike/openbsdlike/mod.rs | 11 |
7 files changed, 60 insertions, 32 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs index 02ce19b813..639d235dc5 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -180,9 +180,9 @@ fn main() { if bsdlike { cfg.header("sys/event.h"); + cfg.header("net/if_dl.h"); if freebsd { cfg.header("libutil.h"); - cfg.header("net/if_dl.h"); } else { cfg.header("util.h"); } diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 68048de359..74f0e02321 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -221,21 +221,6 @@ s! { pub sin_zero: [::c_char; 8], } - // https://github.com/apple/darwin-xnu - // /blob/master/bsd/net/if_dl.h#L95 - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 12], - pub sdl_rcf: ::c_ushort, - pub sdl_route: [::c_ushort; 16], - } - pub struct statfs { pub f_bsize: ::uint32_t, pub f_iosize: ::int32_t, @@ -491,6 +476,19 @@ s! { pub cmd: u32, pub cmdsize: u32, } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 12], + pub sdl_rcf: ::c_ushort, + pub sdl_route: [::c_ushort; 16], + } } pub const _UTX_USERSIZE: usize = 256; diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 88708573b4..e6fdaf21c7 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -168,6 +168,19 @@ s! { pub ifm_index: ::c_ushort, pub ifm_data: if_data, } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 12], + pub sdl_rcf: ::c_ushort, + pub sdl_route: [::c_ushort; 16], + } } pub const RAND_MAX: ::c_int = 0x7fff_ffff; diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 4a4323b079..a1007f9399 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -135,6 +135,17 @@ s! { pub cr_groups: [::gid_t;16], __cr_unused1: *mut ::c_void, } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 46], + } } pub const SIGEV_THREAD_ID: ::c_int = 4; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index aa99842c73..215acee6f2 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -160,22 +160,6 @@ s! { pub int_n_sign_posn: ::c_char, } - // See /usr/include/net/if_dl.h - // sdl_data does not match if_dl.h on OS X, - // since the size of 12 is a minimum. - // Will be unsafe - // when sdl_nlen > 40. - pub struct sockaddr_dl { - pub sdl_len: ::c_uchar, - pub sdl_family: ::c_uchar, - pub sdl_index: ::c_ushort, - pub sdl_type: ::c_uchar, - pub sdl_nlen: ::c_uchar, - pub sdl_alen: ::c_uchar, - pub sdl_slen: ::c_uchar, - pub sdl_data: [::c_char; 46], - } - pub struct cmsgcred { pub cmcred_pid: ::pid_t, pub cmcred_uid: ::uid_t, diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 45b728209b..b7a0bd5e8a 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -293,6 +293,17 @@ s! { pub sc_ngroups: ::c_int, pub sc_groups: [::gid_t; 1], } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::uint8_t, + pub sdl_nlen: ::uint8_t, + pub sdl_alen: ::uint8_t, + pub sdl_slen: ::uint8_t, + pub sdl_data: [::c_char; 12], + } } pub const AT_FDCWD: ::c_int = -100; diff --git a/src/unix/bsd/netbsdlike/openbsdlike/mod.rs b/src/unix/bsd/netbsdlike/openbsdlike/mod.rs index aeb302f188..b98b220dd5 100644 --- a/src/unix/bsd/netbsdlike/openbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsdlike/mod.rs @@ -176,6 +176,17 @@ s! { pub ifm_xflags: ::c_int, pub ifm_data: if_data, } + + pub struct sockaddr_dl { + pub sdl_len: ::c_uchar, + pub sdl_family: ::c_uchar, + pub sdl_index: ::c_ushort, + pub sdl_type: ::c_uchar, + pub sdl_nlen: ::c_uchar, + pub sdl_alen: ::c_uchar, + pub sdl_slen: ::c_uchar, + pub sdl_data: [::c_char; 24], + } } pub const UT_NAMESIZE: usize = 32; |