Skip to content

Commit

Permalink
Auto merge of #2770 - m-ou-se:freebsd-futex, r=Amanieu
Browse files Browse the repository at this point in the history
  • Loading branch information
bors committed Apr 28, 2022
2 parents 27ad069 + 6700aff commit 3b5fcd6
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 0 deletions.
1 change: 1 addition & 0 deletions libc-test/build.rs
Expand Up @@ -1939,6 +1939,7 @@ fn test_freebsd(target: &str) {
"sys/ucontext.h",
"sys/uio.h",
"sys/ktrace.h",
"sys/umtx.h",
"sys/un.h",
"sys/user.h",
"sys/utsname.h",
Expand Down
24 changes: 24 additions & 0 deletions libc-test/semver/freebsd.txt
Expand Up @@ -1240,6 +1240,29 @@ UF_REPARSE
UF_SETTABLE
UF_SPARSE
UF_SYSTEM
UMTX_ABSTIME
UMTX_OP_WAIT
UMTX_OP_WAKE
UMTX_OP_MUTEX_TRYLOCK
UMTX_OP_MUTEX_LOCK
UMTX_OP_MUTEX_UNLOCK
UMTX_OP_SET_CEILING
UMTX_OP_CV_WAIT
UMTX_OP_CV_SIGNAL
UMTX_OP_CV_BROADCAST
UMTX_OP_WAIT_UINT
UMTX_OP_RW_RDLOCK
UMTX_OP_RW_WRLOCK
UMTX_OP_RW_UNLOCK
UMTX_OP_WAIT_UINT_PRIVATE
UMTX_OP_WAKE_PRIVATE
UMTX_OP_MUTEX_WAIT
UMTX_OP_NWAKE_PRIVATE
UMTX_OP_MUTEX_WAKE2
UMTX_OP_SEM2_WAIT
UMTX_OP_SEM2_WAKE
UMTX_OP_SHM
UMTX_OP_ROBUST_LISTS
USER_BC_BASE_MAX
USER_BC_DIM_MAX
USER_BC_SCALE_MAX
Expand Down Expand Up @@ -1414,6 +1437,7 @@ __c_anonymous_cr_pid
__error
__xuname
_sem
_umtx_op
abs
accept4
accept_filter_arg
Expand Down
41 changes: 41 additions & 0 deletions src/unix/bsd/freebsdlike/freebsd/mod.rs
Expand Up @@ -988,6 +988,12 @@ s! {
pub function_set_name: [::c_char; ::TCP_FUNCTION_NAME_LEN_MAX as usize],
pub pcbcnt: u32,
}

pub struct _umtx_time {
pub _timeout: ::timespec,
pub _flags: u32,
pub _clockid: u32,
}
}

s_no_extra_traits! {
Expand Down Expand Up @@ -3657,6 +3663,33 @@ pub const SHM_LARGEPAGE_ALLOC_HARD: ::c_int = 2;
pub const SHM_RENAME_NOREPLACE: ::c_int = 1 << 0;
pub const SHM_RENAME_EXCHANGE: ::c_int = 1 << 1;

// sys/umtx.h

pub const UMTX_OP_WAIT: ::c_int = 2;
pub const UMTX_OP_WAKE: ::c_int = 3;
pub const UMTX_OP_MUTEX_TRYLOCK: ::c_int = 4;
pub const UMTX_OP_MUTEX_LOCK: ::c_int = 5;
pub const UMTX_OP_MUTEX_UNLOCK: ::c_int = 6;
pub const UMTX_OP_SET_CEILING: ::c_int = 7;
pub const UMTX_OP_CV_WAIT: ::c_int = 8;
pub const UMTX_OP_CV_SIGNAL: ::c_int = 9;
pub const UMTX_OP_CV_BROADCAST: ::c_int = 10;
pub const UMTX_OP_WAIT_UINT: ::c_int = 11;
pub const UMTX_OP_RW_RDLOCK: ::c_int = 12;
pub const UMTX_OP_RW_WRLOCK: ::c_int = 13;
pub const UMTX_OP_RW_UNLOCK: ::c_int = 14;
pub const UMTX_OP_WAIT_UINT_PRIVATE: ::c_int = 15;
pub const UMTX_OP_WAKE_PRIVATE: ::c_int = 16;
pub const UMTX_OP_MUTEX_WAIT: ::c_int = 17;
pub const UMTX_OP_NWAKE_PRIVATE: ::c_int = 21;
pub const UMTX_OP_MUTEX_WAKE2: ::c_int = 22;
pub const UMTX_OP_SEM2_WAIT: ::c_int = 23;
pub const UMTX_OP_SEM2_WAKE: ::c_int = 24;
pub const UMTX_OP_SHM: ::c_int = 25;
pub const UMTX_OP_ROBUST_LISTS: ::c_int = 26;

pub const UMTX_ABSTIME: u32 = 1;

const_fn! {
{const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES
Expand Down Expand Up @@ -4220,6 +4253,14 @@ extern "C" {
) -> ::c_int;
pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int;
pub fn setaudit(auditinfo: *const auditinfo_t) -> ::c_int;

pub fn _umtx_op(
obj: *mut ::c_void,
op: ::c_int,
val: ::c_ulong,
uaddr: *mut ::c_void,
uaddr2: *mut ::c_void,
) -> ::c_int;
}

#[link(name = "kvm")]
Expand Down

0 comments on commit 3b5fcd6

Please sign in to comment.