Skip to content

Commit daebd3e

Browse files
committed
Add umtx_op to FreeBSD.
1 parent f6df53f commit daebd3e

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

libc-test/semver/freebsd.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,6 +1240,28 @@ UF_REPARSE
12401240
UF_SETTABLE
12411241
UF_SPARSE
12421242
UF_SYSTEM
1243+
UMTX_OP_WAIT
1244+
UMTX_OP_WAKE
1245+
UMTX_OP_MUTEX_TRYLOCK
1246+
UMTX_OP_MUTEX_LOCK
1247+
UMTX_OP_MUTEX_UNLOCK
1248+
UMTX_OP_SET_CEILING
1249+
UMTX_OP_CV_WAIT
1250+
UMTX_OP_CV_SIGNAL
1251+
UMTX_OP_CV_BROADCAST
1252+
UMTX_OP_WAIT_UINT
1253+
UMTX_OP_RW_RDLOCK
1254+
UMTX_OP_RW_WRLOCK
1255+
UMTX_OP_RW_UNLOCK
1256+
UMTX_OP_WAIT_UINT_PRIVATE
1257+
UMTX_OP_WAKE_PRIVATE
1258+
UMTX_OP_MUTEX_WAIT
1259+
UMTX_OP_NWAKE_PRIVATE
1260+
UMTX_OP_MUTEX_WAKE2
1261+
UMTX_OP_SEM2_WAIT
1262+
UMTX_OP_SEM2_WAKE
1263+
UMTX_OP_SHM
1264+
UMTX_OP_ROBUST_LISTS
12431265
USER_BC_BASE_MAX
12441266
USER_BC_DIM_MAX
12451267
USER_BC_SCALE_MAX
@@ -1414,6 +1436,7 @@ __c_anonymous_cr_pid
14141436
__error
14151437
__xuname
14161438
_sem
1439+
_umtx_op
14171440
abs
14181441
accept4
14191442
accept_filter_arg

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3657,6 +3657,31 @@ pub const SHM_LARGEPAGE_ALLOC_HARD: ::c_int = 2;
36573657
pub const SHM_RENAME_NOREPLACE: ::c_int = 1 << 0;
36583658
pub const SHM_RENAME_EXCHANGE: ::c_int = 1 << 1;
36593659

3660+
// sys/umtx.h
3661+
3662+
pub const UMTX_OP_WAIT: ::c_int = 2;
3663+
pub const UMTX_OP_WAKE: ::c_int = 3;
3664+
pub const UMTX_OP_MUTEX_TRYLOCK: ::c_int = 4;
3665+
pub const UMTX_OP_MUTEX_LOCK: ::c_int = 5;
3666+
pub const UMTX_OP_MUTEX_UNLOCK: ::c_int = 6;
3667+
pub const UMTX_OP_SET_CEILING: ::c_int = 7;
3668+
pub const UMTX_OP_CV_WAIT: ::c_int = 8;
3669+
pub const UMTX_OP_CV_SIGNAL: ::c_int = 9;
3670+
pub const UMTX_OP_CV_BROADCAST: ::c_int = 10;
3671+
pub const UMTX_OP_WAIT_UINT: ::c_int = 11;
3672+
pub const UMTX_OP_RW_RDLOCK: ::c_int = 12;
3673+
pub const UMTX_OP_RW_WRLOCK: ::c_int = 13;
3674+
pub const UMTX_OP_RW_UNLOCK: ::c_int = 14;
3675+
pub const UMTX_OP_WAIT_UINT_PRIVATE: ::c_int = 15;
3676+
pub const UMTX_OP_WAKE_PRIVATE: ::c_int = 16;
3677+
pub const UMTX_OP_MUTEX_WAIT: ::c_int = 17;
3678+
pub const UMTX_OP_NWAKE_PRIVATE: ::c_int = 21;
3679+
pub const UMTX_OP_MUTEX_WAKE2: ::c_int = 22;
3680+
pub const UMTX_OP_SEM2_WAIT: ::c_int = 23;
3681+
pub const UMTX_OP_SEM2_WAKE: ::c_int = 24;
3682+
pub const UMTX_OP_SHM: ::c_int = 25;
3683+
pub const UMTX_OP_ROBUST_LISTS: ::c_int = 26;
3684+
36603685
const_fn! {
36613686
{const} fn _ALIGN(p: usize) -> usize {
36623687
(p + _ALIGNBYTES) & !_ALIGNBYTES
@@ -4221,6 +4246,14 @@ extern "C" {
42214246
) -> ::c_int;
42224247
pub fn memfd_create(name: *const ::c_char, flags: ::c_uint) -> ::c_int;
42234248
pub fn setaudit(auditinfo: *const auditinfo_t) -> ::c_int;
4249+
4250+
pub fn _umtx_op(
4251+
obj: *mut ::c_void,
4252+
op: ::c_int,
4253+
val: ::c_ulong,
4254+
uaddr: *mut ::c_void,
4255+
uaddr2: *mut ::c_void,
4256+
) -> ::c_int;
42244257
}
42254258

42264259
#[link(name = "kvm")]

0 commit comments

Comments
 (0)