3 spinlock_lock, spinlock_trylock, spinlock_unlock
9 waitq_sleep_timeout, waitq_wakeup
14 SEMAPHORES / \ CONDITION VARIABLES
15 semaphore_down_timeout, semaphore_up condvar_wait_timeout, condvar_signal
16 +--------------+ / \ +-----------+
17 | semaphore_t |<-+ +->| condvar_t |
18 +--------------+ +-----------+
23 MUTEXES / READERS/WRITERS LOCKS
24 mutex_lock_timeout, mutex_unlock rwlock_reader/writer_lock_timeout, rwlock_unlock
25 +---------+ / +----------+
26 | mutex_t |------------------------------->| rwlock_t |
27 +---------+ / +----------+
29 +------------------------+