3 spinlock_lock, spinlock_trylock, spinlock_unlock
8 +------------------------------+
10 INTERRUPTS-DISABLED SPINNING LOCKS |
11 irq_spinlock_lock, irq_spinlock_trylock, irq_spinlock_unlock |
13 | irq_spinlock_t |<--------------------+
19 waitq_sleep_timeout, waitq_wakeup
24 SEMAPHORES / \ CONDITION VARIABLES
25 semaphore_down_timeout, semaphore_up condvar_wait_timeout, condvar_signal
26 +--------------+ / \ +-----------+
27 | semaphore_t |<-+ +->| condvar_t |
28 +--------------+ +-----------+
33 MUTEXES / READERS/WRITERS LOCKS
34 mutex_lock_timeout, mutex_unlock rwlock_reader/writer_lock_timeout, rwlock_unlock
35 +---------+ / +----------+
36 | mutex_t |------------------------------->| rwlock_t |
37 +---------+ / +----------+
39 +------------------------+