Skip to content

Commit db2eabd

Browse files
committed
Add backtrace definitions and support for statvfs
1 parent e740c20 commit db2eabd

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

libc-test/semver/netbsd.txt

+12
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,9 @@ MNT_RELATIME
671671
MNT_SOFTDEP
672672
MNT_SYMPERM
673673
MNT_UNION
674+
MNT_WAIT
675+
MNT_NOWAIT
676+
MNT_LAZY
674677
MOD_CLKA
675678
MOD_CLKB
676679
MOD_ESTERROR
@@ -1188,6 +1191,11 @@ arc4random
11881191
arc4random_buf
11891192
arc4random_uniform
11901193
arphdr
1194+
backtrace
1195+
backtrace_symbols
1196+
backtrace_symbols_fd
1197+
backtrace_symbols_fmt
1198+
backtrace_symbols_fd_fmt
11911199
bsearch
11921200
chflags
11931201
chroot
@@ -1246,6 +1254,7 @@ fgetxattr
12461254
flistxattr
12471255
fremovexattr
12481256
fsetxattr
1257+
fstatvfs
12491258
flags_to_string
12501259
fmemopen
12511260
forkpty
@@ -1275,6 +1284,7 @@ getitimer
12751284
getlastlogx
12761285
getline
12771286
getloadavg
1287+
getmntinfo
12781288
getnameinfo
12791289
getopt_long
12801290
getpeereid
@@ -1295,6 +1305,7 @@ getutmpx
12951305
getutxent
12961306
getutxid
12971307
getutxline
1308+
getvfsstat
12981309
getxattr
12991310
glob
13001311
glob_t
@@ -1522,6 +1533,7 @@ sockcred
15221533
srand
15231534
srand48
15241535
stack_t
1536+
statvfs
15251537
strcasecmp
15261538
strcasestr
15271539
string_to_flags

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

+39
Original file line numberDiff line numberDiff line change
@@ -1853,6 +1853,11 @@ pub const MNT_SOFTDEP: ::c_int = 0x80000000;
18531853
pub const MNT_POSIX1EACLS: ::c_int = 0x00000800;
18541854
pub const MNT_ACLS: ::c_int = MNT_POSIX1EACLS;
18551855

1856+
// For use with vfs_sync and getvfsstat
1857+
pub const MNT_WAIT: ::c_int = 1;
1858+
pub const MNT_NOWAIT: ::c_int = 2;
1859+
pub const MNT_LAZY: ::c_int = 3;
1860+
18561861
//<sys/timex.h>
18571862
pub const NTP_API: ::c_int = 4;
18581863
pub const MAXPHASE: ::c_long = 500000000;
@@ -3154,6 +3159,40 @@ extern "C" {
31543159
pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::size_t) -> *mut kinfo_vmentry;
31553160
}
31563161

3162+
#[link(name = "execinfo")]
3163+
extern "C" {
3164+
pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t;
3165+
pub fn backtrace_symbols(addrlist: *const *mut ::c_void, len: ::size_t) -> *mut *mut ::c_char;
3166+
pub fn backtrace_symbols_fd(
3167+
addrlist: *const *mut ::c_void,
3168+
len: ::size_t,
3169+
fd: ::c_int,
3170+
) -> ::c_int;
3171+
pub fn backtrace_symbols_fmt(
3172+
addrlist: *const *mut ::c_void,
3173+
len: ::size_t,
3174+
fmt: *const ::c_char,
3175+
) -> *mut *mut ::c_char;
3176+
pub fn backtrace_symbols_fd_fmt(
3177+
addrlist: *const *mut ::c_void,
3178+
len: ::size_t,
3179+
fd: ::c_int,
3180+
fmt: *const ::c_char,
3181+
) -> ::c_int;
3182+
}
3183+
3184+
cfg_if! {
3185+
if #[cfg(libc_union)] {
3186+
extern {
3187+
// these functions use statvfs:
3188+
pub fn statvfs(path: *const ::c_char, buf: *mut statvfs) -> ::c_int;
3189+
pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int;
3190+
pub fn getmntinfo(mntbufp: *mut *mut ::statvfs, flags: ::c_int) -> ::c_int;
3191+
pub fn getvfsstat(buf: *mut statvfs, bufsize: ::size_t, flags: ::c_int) -> ::c_int;
3192+
}
3193+
}
3194+
}
3195+
31573196
cfg_if! {
31583197
if #[cfg(target_arch = "aarch64")] {
31593198
mod aarch64;

0 commit comments

Comments
 (0)