1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
use crate::{int, size_t, void}; use crate::time::timespec; pub use crate::lib::pthread::*; extern "C" { pub fn pthread_attr_destroy(attr: *mut pthread_attr_t) -> int; pub fn pthread_attr_getdetachstate(attr: *const pthread_attr_t, detachstate: *mut int) -> int; pub fn pthread_attr_getguardsize(attr: *const pthread_attr_t, guardsize: *mut size_t) -> int; pub fn pthread_attr_getinheritsched(attr: *const pthread_attr_t, inheritsched: *mut int) -> int; pub fn pthread_attr_getschedparam(attr: *const pthread_attr_t, schedparam: *mut sched_param) -> int; pub fn pthread_attr_getschedpolicy(attr: *const pthread_attr_t, schedpolicy: *mut int) -> int; pub fn pthread_attr_getscope(attr: *const pthread_attr_t, scope: *mut int) -> int; pub fn pthread_attr_getstackaddr(attr: *const pthread_attr_t, stackaddr: *mut *mut void) -> int; pub fn pthread_attr_getstacksize(attr: *const pthread_attr_t, stacksize: *mut size_t) -> int; pub fn pthread_attr_init(attr: *mut pthread_attr_t) -> int; pub fn pthread_attr_setdetachstate(attr: *mut pthread_attr_t, detachstate: int) -> int; pub fn pthread_attr_setguardsize(attr: *mut pthread_attr_t, guardsize: size_t) -> int; pub fn pthread_attr_setinheritsched(attr: *mut pthread_attr_t, inheritsched: int) -> int; pub fn pthread_attr_setschedparam(attr: *mut pthread_attr_t, schedparam: *const sched_param) -> int; pub fn pthread_attr_setschedpolicy(attr: *mut pthread_attr_t, schedpolicy: int) -> int; pub fn pthread_attr_setscope(attr: *mut pthread_attr_t, scope: int) -> int; pub fn pthread_attr_setstackaddr(attr: *mut pthread_attr_t, stackaddr: *mut void) -> int; pub fn pthread_attr_setstacksize(attr: *mut pthread_attr_t, stacksize: size_t) -> int; pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> int; pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_init$UNIX2003")] pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) -> int; pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_timedwait$UNIX2003")] pub fn pthread_cond_timedwait(cond: *mut pthread_cond_t, mutex: *mut pthread_mutex_t, abstime: *const timespec) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_cond_wait$UNIX2003")] pub fn pthread_cond_wait(cond: *mut pthread_cond_t, mutex: *mut pthread_mutex_t) -> int; pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> int; pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, pshared: *mut int) -> int; pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> int; pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: int) -> int; pub fn pthread_key_create(key: *mut pthread_key_t, dtor: Option<unsafe extern fn(*mut void)>) -> int; pub fn pthread_key_delete(key: pthread_key_t) -> int; pub fn pthread_mutex_destroy(mutex: *mut pthread_mutex_t) -> int; pub fn pthread_mutex_getprioceiling(mutex: *const pthread_mutex_t, prioceiling: *mut int) -> int; pub fn pthread_mutex_init(mutex: *mut pthread_mutex_t, attr: *const pthread_mutexattr_t) -> int; pub fn pthread_mutex_lock(mutex: *mut pthread_mutex_t) -> int; pub fn pthread_mutex_setprioceiling(mutex: *mut pthread_mutex_t, prioceiling: int, old_prioceiling: *mut int) -> int; pub fn pthread_mutex_trylock(mutex: *mut pthread_mutex_t) -> int; pub fn pthread_mutex_unlock(mutex: *mut pthread_mutex_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_mutexattr_destroy$UNIX2003")] pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> int; pub fn pthread_mutexattr_getprioceiling(attr: *const pthread_mutexattr_t, prioceiling: *mut int) -> int; pub fn pthread_mutexattr_getprotocol(attr: *const pthread_mutexattr_t, protocol: *mut int) -> int; pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, pshared: *mut int) -> int; pub fn pthread_mutexattr_gettype(attr: *const pthread_mutexattr_t, mutextype: *mut int) -> int; pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> int; pub fn pthread_mutexattr_setprioceiling(attr: *mut pthread_mutexattr_t, prioceiling: int) -> int; pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: int) -> int; pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, pshared: int) -> int; pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, mutextype: int) -> int; pub fn pthread_once(once_control: *mut pthread_once_t, init_routine: extern fn()) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_destroy$UNIX2003")] pub fn pthread_rwlock_destroy(rwlock: *mut pthread_rwlock_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_init$UNIX2003")] pub fn pthread_rwlock_init(rwlock: *mut pthread_rwlock_t, attr: *const pthread_rwlockattr_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_rdlock$UNIX2003")] pub fn pthread_rwlock_rdlock(rwlock: *mut pthread_rwlock_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_tryrdlock$UNIX2003")] pub fn pthread_rwlock_tryrdlock(rwlock: *mut pthread_rwlock_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_trywrlock$UNIX2003")] pub fn pthread_rwlock_trywrlock(rwlock: *mut pthread_rwlock_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_unlock$UNIX2003")] pub fn pthread_rwlock_unlock(rwlock: *mut pthread_rwlock_t) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_rwlock_wrlock$UNIX2003")] pub fn pthread_rwlock_wrlock(rwlock: *mut pthread_rwlock_t) -> int; pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> int; pub fn pthread_rwlockattr_getpshared(attr: *const pthread_rwlockattr_t, pshared: *mut int) -> int; pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> int; pub fn pthread_rwlockattr_setpshared(attr: *mut pthread_rwlockattr_t, pshared: int) -> int; pub fn pthread_create(thread: *mut pthread_t, attr: *const pthread_attr_t, start_routine: extern fn(*mut void) -> *mut void, arg: *mut void) -> int; pub fn pthread_detach(thread: pthread_t) -> int; pub fn pthread_equal(thread1: pthread_t, thread2: pthread_t) -> int; pub fn pthread_exit(value: *mut void); pub fn pthread_getconcurrency() -> int; pub fn pthread_getschedparam(thread: pthread_t, policy: *mut int, schedparam: *mut sched_param) -> int; pub fn pthread_getspecific(key: pthread_key_t) -> *mut void; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_join$UNIX2003")] pub fn pthread_join(thread: pthread_t, value: *mut *mut void) -> int; pub fn pthread_self() -> pthread_t; pub fn pthread_setcancelstate(cancelstate: int, old_cancelstate: *mut int) -> int; pub fn pthread_setcanceltype(canceltype: int, old_canceltype: *mut int) -> int; pub fn pthread_setconcurrency(concurrency: int) -> int; pub fn pthread_setschedparam(thread: pthread_t, policy: int, schedparam: *const sched_param) -> int; pub fn pthread_setspecific(key: pthread_key_t, value: *const void) -> int; #[cfg_attr(all(target_os = "macos", target_arch = "x86"), link_name = "pthread_testcancel$UNIX2003")] pub fn pthread_testcancel(); }