Skip to content

Commit 6afd44e

Browse files
committed
Support NetBSD 10+ version of struct statvfs
1 parent ca7695a commit 6afd44e

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

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

+11-2
Original file line numberDiff line numberDiff line change
@@ -877,11 +877,12 @@ s_no_extra_traits! {
877877
pub f_namemax: c_ulong,
878878
pub f_owner: crate::uid_t,
879879

880-
pub f_spare: [u32; 4],
880+
pub f_spare: [u64; 4],
881881

882882
pub f_fstypename: [c_char; 32],
883883
pub f_mntonname: [c_char; 1024],
884884
pub f_mntfromname: [c_char; 1024],
885+
pub f_mntfromlabel: [c_char; 1024],
885886
}
886887

887888
pub struct sockaddr_storage {
@@ -1207,6 +1208,11 @@ cfg_if! {
12071208
.iter()
12081209
.zip(other.f_mntfromname.iter())
12091210
.all(|(a, b)| a == b)
1211+
&& self
1212+
.f_mntfromlabel
1213+
.iter()
1214+
.zip(other.f_mntfromlabel.iter())
1215+
.all(|(a, b)| a == b)
12101216
}
12111217
}
12121218
impl Eq for statvfs {}
@@ -1237,6 +1243,7 @@ cfg_if! {
12371243
.field("f_fstypename", &self.f_fstypename)
12381244
// FIXME: .field("f_mntonname", &self.f_mntonname)
12391245
// FIXME: .field("f_mntfromname", &self.f_mntfromname)
1246+
// FIXME: .field("f_mntfromlabel", &self.f_mntfromlabel)
12401247
.finish()
12411248
}
12421249
}
@@ -1266,6 +1273,7 @@ cfg_if! {
12661273
self.f_fstypename.hash(state);
12671274
self.f_mntonname.hash(state);
12681275
self.f_mntfromname.hash(state);
1276+
self.f_mntfromlabel.hash(state);
12691277
}
12701278
}
12711279

@@ -2849,8 +2857,9 @@ extern "C" {
28492857
ntargets: size_t,
28502858
hint: *const c_void,
28512859
) -> c_int;
2852-
#[link_name = "__getmntinfo13"]
2860+
#[link_name = "__getmntinfo90"]
28532861
pub fn getmntinfo(mntbufp: *mut *mut crate::statvfs, flags: c_int) -> c_int;
2862+
#[link_name = "__getvfsstat90"]
28542863
pub fn getvfsstat(buf: *mut statvfs, bufsize: size_t, flags: c_int) -> c_int;
28552864
}
28562865

src/unix/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1420,7 +1420,9 @@ extern "C" {
14201420
pub fn sem_wait(sem: *mut sem_t) -> c_int;
14211421
pub fn sem_trywait(sem: *mut sem_t) -> c_int;
14221422
pub fn sem_post(sem: *mut sem_t) -> c_int;
1423+
#[cfg_attr(target_os = "netbsd", link_name = "__statvfs90")]
14231424
pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> c_int;
1425+
#[cfg_attr(target_os = "netbsd", link_name = "__fstatvfs90")]
14241426
pub fn fstatvfs(fd: c_int, buf: *mut statvfs) -> c_int;
14251427

14261428
#[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")]

0 commit comments

Comments
 (0)