Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions libc-test/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2747,6 +2747,9 @@ fn test_freebsd(target: &str) {
// Added in FreeBSD 15
"AT_HWCAP3" | "AT_HWCAP4" if Some(15) > freebsd_ver => true,

// Added in FreeBSD 15
"DTYPE_INOTIFY" | "DTYPE_JAILDESC" if Some(15) > freebsd_ver => true,

_ => false,
}
});
Expand Down
1 change: 1 addition & 0 deletions libc-test/semver/freebsd.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2425,4 +2425,5 @@ vmtotal
wait4
waitid
xallocx
xfile
xucred
1 change: 1 addition & 0 deletions src/new/freebsd/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
//! * Headers: <https://github.com/freebsd/freebsd-src/blob/main/sys/riscv/include/ucontext.h>
//! * Symbol map: <https://github.com/freebsd/freebsd-src/blob/main/lib/libc/gen/Symbol.map>

pub(crate) mod sys;
pub(crate) mod unistd;
46 changes: 46 additions & 0 deletions src/new/freebsd/sys/file.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
//! Header: `sys/file.h`
//!
//! https://github.com/freebsd/freebsd-src/blob/main/sys/sys/file.h

use crate::prelude::*;

pub const DTYPE_NONE: c_int = 0;
pub const DTYPE_VNODE: c_int = 1;
pub const DTYPE_SOCKET: c_int = 2;
pub const DTYPE_PIPE: c_int = 3;
pub const DTYPE_FIFO: c_int = 4;
pub const DTYPE_KQUEUE: c_int = 5;
pub const DTYPE_CRYPTO: c_int = 6;
pub const DTYPE_MQUEUE: c_int = 7;
pub const DTYPE_SHM: c_int = 8;
pub const DTYPE_SEM: c_int = 9;
pub const DTYPE_PTS: c_int = 10;
pub const DTYPE_DEV: c_int = 11;
pub const DTYPE_PROCDESC: c_int = 12;
pub const DTYPE_EVENTFD: c_int = 13;
pub const DTYPE_TIMERFD: c_int = 14;
pub const DTYPE_INOTIFY: c_int = 15;
pub const DTYPE_JAILDESC: c_int = 16;

s! {
#[cfg(not(any(freebsd10, freebsd11)))]
pub struct xfile {
pub xf_size: crate::ksize_t,
pub xf_pid: crate::pid_t,
pub xf_uid: crate::uid_t,
pub xf_fd: c_int,
_xf_int_pad1: Padding<c_int>,
pub xf_file: crate::kvaddr_t,
pub xf_type: c_short,
_xf_short_pad1: Padding<c_short>,
pub xf_count: c_int,
pub xf_msgcount: c_int,
_xf_int_pad2: Padding<c_int>,
pub xf_offset: crate::off_t,
pub xf_data: crate::kvaddr_t,
pub xf_vnode: crate::kvaddr_t,
pub xf_flag: c_uint,
_xf_int_pad3: Padding<c_int>,
_xf_int64_pad: Padding<[i64; 6]>,
}
}
5 changes: 5 additions & 0 deletions src/new/freebsd/sys/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
//! Directory: `sys/`
//!
//! https://github.com/freebsd/freebsd-src/tree/main/sys/sys'

pub(crate) mod file;
2 changes: 2 additions & 0 deletions src/new/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ cfg_if! {
} else if #[cfg(target_os = "nto")] {
pub use net::bpf::*;
pub use net::if_::*;
} else if #[cfg(target_os = "freebsd")] {
pub use sys::file::*;
}
}

Expand Down