libc/new/apple/libpthread/pthread_/
pthread.rs

1//! Header: `pthread.h` or `pthread/pthread.h`
2//!
3//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/pthread/pthread.h>
4
5use crate::prelude::*;
6pub use crate::pthread_::qos::*;
7pub use crate::pthread_::sched::*;
8// No need to import from the `_pthread_attr_t` and similar modules since `_pthread_types` has
9// everything we need.
10pub use crate::sys::_pthread::_pthread_types::*;
11
12pub const PTHREAD_CREATE_JOINABLE: c_int = 1;
13pub const PTHREAD_CREATE_DETACHED: c_int = 2;
14
15pub const PTHREAD_INHERIT_SCHED: c_int = 1;
16pub const PTHREAD_EXPLICIT_SCHED: c_int = 2;
17
18pub const PTHREAD_CANCEL_ENABLE: c_int = 0x01;
19pub const PTHREAD_CANCEL_DISABLE: c_int = 0x00;
20pub const PTHREAD_CANCEL_DEFERRED: c_int = 0x02;
21pub const PTHREAD_CANCEL_ASYNCHRONOUS: c_int = 0x00;
22
23pub const PTHREAD_CANCELED: *mut c_void = 1 as *mut c_void;
24
25pub const PTHREAD_SCOPE_SYSTEM: c_int = 1;
26pub const PTHREAD_SCOPE_PROCESS: c_int = 2;
27
28pub const PTHREAD_PROCESS_SHARED: c_int = 1;
29pub const PTHREAD_PROCESS_PRIVATE: c_int = 2;
30
31pub const PTHREAD_PRIO_NONE: c_int = 0;
32pub const PTHREAD_PRIO_INHERIT: c_int = 1;
33pub const PTHREAD_PRIO_PROTECT: c_int = 2;
34
35pub const PTHREAD_MUTEX_NORMAL: c_int = 0;
36pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1;
37pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2;
38pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL;
39
40pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
41    __sig: _PTHREAD_RWLOCK_SIG_init,
42    __opaque: [0; __PTHREAD_RWLOCK_SIZE__],
43};
44
45pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
46    __sig: _PTHREAD_MUTEX_SIG_init,
47    __opaque: [0; __PTHREAD_MUTEX_SIZE__],
48};
49
50pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t {
51    __sig: _PTHREAD_COND_SIG_init,
52    __opaque: [0; __PTHREAD_COND_SIZE__],
53};
54
55pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t {
56    __sig: _PTHREAD_ONCE_SIG_INIT,
57    __opaque: [0; __PTHREAD_ONCE_SIZE__],
58};
59
60pub use crate::new::common::posix::pthread::{
61    pthread_attr_getinheritsched,
62    pthread_attr_getschedparam,
63    pthread_attr_getschedpolicy,
64    pthread_attr_setinheritsched,
65    pthread_attr_setschedparam,
66    pthread_attr_setschedpolicy,
67    pthread_condattr_getpshared,
68    pthread_condattr_setpshared,
69    pthread_getschedparam,
70    pthread_mutexattr_getpshared,
71    pthread_mutexattr_setpshared,
72    pthread_once,
73    pthread_rwlockattr_getpshared,
74    pthread_rwlockattr_setpshared,
75    pthread_setschedparam,
76};