@@ -3657,6 +3657,31 @@ pub const SHM_LARGEPAGE_ALLOC_HARD: ::c_int = 2;
3657
3657
pub const SHM_RENAME_NOREPLACE : :: c_int = 1 << 0 ;
3658
3658
pub const SHM_RENAME_EXCHANGE : :: c_int = 1 << 1 ;
3659
3659
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
+
3660
3685
const_fn ! {
3661
3686
{ const } fn _ALIGN( p: usize ) -> usize {
3662
3687
( p + _ALIGNBYTES) & !_ALIGNBYTES
@@ -4221,6 +4246,14 @@ extern "C" {
4221
4246
) -> :: c_int ;
4222
4247
pub fn memfd_create ( name : * const :: c_char , flags : :: c_uint ) -> :: c_int ;
4223
4248
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 ;
4224
4257
}
4225
4258
4226
4259
#[ link( name = "kvm" ) ]
0 commit comments