| #include <pthreadP.h> |
| |
| -- Mutex types |
| PTHREAD_MUTEX_KIND_MASK PTHREAD_MUTEX_KIND_MASK_NP |
| PTHREAD_MUTEX_NORMAL |
| PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP |
| PTHREAD_MUTEX_ERRORCHECK PTHREAD_MUTEX_ERRORCHECK_NP |
| PTHREAD_MUTEX_ADAPTIVE_NP |
| |
| -- Mutex status |
| -- These are hardcoded all over the code; there are no enums/macros for them. |
| PTHREAD_MUTEX_DESTROYED -1 |
| PTHREAD_MUTEX_UNLOCKED 0 |
| PTHREAD_MUTEX_LOCKED_NO_WAITERS 1 |
| |
| -- For robust mutexes |
| PTHREAD_MUTEX_INCONSISTENT |
| PTHREAD_MUTEX_NOTRECOVERABLE |
| FUTEX_OWNER_DIED |
| |
| -- For robust and PI mutexes |
| FUTEX_WAITERS |
| FUTEX_TID_MASK |
| |
| -- Mutex attributes |
| PTHREAD_MUTEX_ROBUST_NORMAL_NP |
| PTHREAD_MUTEX_PRIO_INHERIT_NP |
| PTHREAD_MUTEX_PRIO_PROTECT_NP |
| PTHREAD_MUTEX_PSHARED_BIT |
| PTHREAD_MUTEX_PRIO_CEILING_SHIFT |
| PTHREAD_MUTEX_PRIO_CEILING_MASK |
| |
| -- Mutex attribute flags |
| PTHREAD_MUTEXATTR_PROTOCOL_SHIFT |
| PTHREAD_MUTEXATTR_PROTOCOL_MASK |
| PTHREAD_MUTEXATTR_PRIO_CEILING_MASK |
| PTHREAD_MUTEXATTR_FLAG_ROBUST |
| PTHREAD_MUTEXATTR_FLAG_PSHARED |
| PTHREAD_MUTEXATTR_FLAG_BITS |
| PTHREAD_MUTEX_NO_ELISION_NP |
| |
| -- Priority protocols |
| PTHREAD_PRIO_NONE |
| PTHREAD_PRIO_INHERIT |
| PTHREAD_PRIO_PROTECT |
| |
| -- Condition variable |
| -- FIXME Why do macros prefixed with __ cannot be used directly? |
| PTHREAD_COND_SHARED_MASK __PTHREAD_COND_SHARED_MASK |
| PTHREAD_COND_CLOCK_MONOTONIC_MASK __PTHREAD_COND_CLOCK_MONOTONIC_MASK |
| COND_CLOCK_BITS |
| -- These values are hardcoded: |
| PTHREAD_COND_WREFS_SHIFT 3 |
| |
| -- Rwlock attributes |
| PTHREAD_RWLOCK_PREFER_READER_NP |
| PTHREAD_RWLOCK_PREFER_WRITER_NP |
| PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP |
| |
| -- Rwlock |
| PTHREAD_RWLOCK_WRPHASE |
| PTHREAD_RWLOCK_WRLOCKED |
| PTHREAD_RWLOCK_READER_SHIFT |
| |
| -- 'Shared' attribute values |
| PTHREAD_PROCESS_PRIVATE |
| PTHREAD_PROCESS_SHARED |