#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
