Skip to content

Commit 789fd5e

Browse files
author
luozijun
committed
Add sockaddr_dl for all bsdlike
1 parent 0061cc9 commit 789fd5e

File tree

7 files changed

+60
-32
lines changed

7 files changed

+60
-32
lines changed

libc-test/build.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,9 @@ fn main() {
180180

181181
if bsdlike {
182182
cfg.header("sys/event.h");
183+
cfg.header("net/if_dl.h");
183184
if freebsd {
184185
cfg.header("libutil.h");
185-
cfg.header("net/if_dl.h");
186186
} else {
187187
cfg.header("util.h");
188188
}

src/unix/bsd/apple/mod.rs

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -221,21 +221,6 @@ s! {
221221
pub sin_zero: [::c_char; 8],
222222
}
223223

224-
// https://github.com/apple/darwin-xnu
225-
// /blob/master/bsd/net/if_dl.h#L95
226-
pub struct sockaddr_dl {
227-
pub sdl_len: ::c_uchar,
228-
pub sdl_family: ::c_uchar,
229-
pub sdl_index: ::c_ushort,
230-
pub sdl_type: ::c_uchar,
231-
pub sdl_nlen: ::c_uchar,
232-
pub sdl_alen: ::c_uchar,
233-
pub sdl_slen: ::c_uchar,
234-
pub sdl_data: [::c_char; 12],
235-
pub sdl_rcf: ::c_ushort,
236-
pub sdl_route: [::c_ushort; 16],
237-
}
238-
239224
pub struct statfs {
240225
pub f_bsize: ::uint32_t,
241226
pub f_iosize: ::int32_t,
@@ -491,6 +476,19 @@ s! {
491476
pub cmd: u32,
492477
pub cmdsize: u32,
493478
}
479+
480+
pub struct sockaddr_dl {
481+
pub sdl_len: ::c_uchar,
482+
pub sdl_family: ::c_uchar,
483+
pub sdl_index: ::c_ushort,
484+
pub sdl_type: ::c_uchar,
485+
pub sdl_nlen: ::c_uchar,
486+
pub sdl_alen: ::c_uchar,
487+
pub sdl_slen: ::c_uchar,
488+
pub sdl_data: [::c_char; 12],
489+
pub sdl_rcf: ::c_ushort,
490+
pub sdl_route: [::c_ushort; 16],
491+
}
494492
}
495493

496494
pub const _UTX_USERSIZE: usize = 256;

src/unix/bsd/freebsdlike/dragonfly/mod.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,19 @@ s! {
168168
pub ifm_index: ::c_ushort,
169169
pub ifm_data: if_data,
170170
}
171+
172+
pub struct sockaddr_dl {
173+
pub sdl_len: ::c_uchar,
174+
pub sdl_family: ::c_uchar,
175+
pub sdl_index: ::c_ushort,
176+
pub sdl_type: ::c_uchar,
177+
pub sdl_nlen: ::c_uchar,
178+
pub sdl_alen: ::c_uchar,
179+
pub sdl_slen: ::c_uchar,
180+
pub sdl_data: [::c_char; 12],
181+
pub sdl_rcf: ::c_ushort,
182+
pub sdl_route: [::c_ushort; 16],
183+
}
171184
}
172185

173186
pub const RAND_MAX: ::c_int = 0x7fff_ffff;

src/unix/bsd/freebsdlike/freebsd/mod.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,17 @@ s! {
135135
pub cr_groups: [::gid_t;16],
136136
__cr_unused1: *mut ::c_void,
137137
}
138+
139+
pub struct sockaddr_dl {
140+
pub sdl_len: ::c_uchar,
141+
pub sdl_family: ::c_uchar,
142+
pub sdl_index: ::c_ushort,
143+
pub sdl_type: ::c_uchar,
144+
pub sdl_nlen: ::c_uchar,
145+
pub sdl_alen: ::c_uchar,
146+
pub sdl_slen: ::c_uchar,
147+
pub sdl_data: [::c_char; 46],
148+
}
138149
}
139150

140151
pub const SIGEV_THREAD_ID: ::c_int = 4;

src/unix/bsd/freebsdlike/mod.rs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -160,22 +160,6 @@ s! {
160160
pub int_n_sign_posn: ::c_char,
161161
}
162162

163-
// See /usr/include/net/if_dl.h
164-
// sdl_data does not match if_dl.h on OS X,
165-
// since the size of 12 is a minimum.
166-
// Will be unsafe
167-
// when sdl_nlen > 40.
168-
pub struct sockaddr_dl {
169-
pub sdl_len: ::c_uchar,
170-
pub sdl_family: ::c_uchar,
171-
pub sdl_index: ::c_ushort,
172-
pub sdl_type: ::c_uchar,
173-
pub sdl_nlen: ::c_uchar,
174-
pub sdl_alen: ::c_uchar,
175-
pub sdl_slen: ::c_uchar,
176-
pub sdl_data: [::c_char; 46],
177-
}
178-
179163
pub struct cmsgcred {
180164
pub cmcred_pid: ::pid_t,
181165
pub cmcred_uid: ::uid_t,

src/unix/bsd/netbsdlike/netbsd/mod.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,17 @@ s! {
293293
pub sc_ngroups: ::c_int,
294294
pub sc_groups: [::gid_t; 1],
295295
}
296+
297+
pub struct sockaddr_dl {
298+
pub sdl_len: ::c_uchar,
299+
pub sdl_family: ::c_uchar,
300+
pub sdl_index: ::c_ushort,
301+
pub sdl_type: ::uint8_t,
302+
pub sdl_nlen: ::uint8_t,
303+
pub sdl_alen: ::uint8_t,
304+
pub sdl_slen: ::uint8_t,
305+
pub sdl_data: [::c_char; 12],
306+
}
296307
}
297308

298309
pub const AT_FDCWD: ::c_int = -100;

src/unix/bsd/netbsdlike/openbsdlike/mod.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,17 @@ s! {
176176
pub ifm_xflags: ::c_int,
177177
pub ifm_data: if_data,
178178
}
179+
180+
pub struct sockaddr_dl {
181+
pub sdl_len: ::c_uchar,
182+
pub sdl_family: ::c_uchar,
183+
pub sdl_index: ::c_ushort,
184+
pub sdl_type: ::c_uchar,
185+
pub sdl_nlen: ::c_uchar,
186+
pub sdl_alen: ::c_uchar,
187+
pub sdl_slen: ::c_uchar,
188+
pub sdl_data: [::c_char; 24],
189+
}
179190
}
180191

181192
pub const UT_NAMESIZE: usize = 32;

0 commit comments

Comments
 (0)