Add virtio-net specific definitions
[helenos.git] / kernel / doc / synchronization
blob953e95c20d87c5c0eee07c8a70d3e712a8a215ce
2                                  SPINNING LOCKS
3                 spinlock_lock, spinlock_trylock, spinlock_unlock
4                                  +------------+
5                                  | spinlock_t |
6                                  +------------+
7                                        |
8                                        +------------------------------+
9                                                                       |
10                       INTERRUPTS-DISABLED SPINNING LOCKS              |
11        irq_spinlock_lock, irq_spinlock_trylock, irq_spinlock_unlock   |
12                                +----------------+                     |
13                                | irq_spinlock_t |<--------------------+
14                                +----------------+
18                                    WAIT QUEUES
19                          waitq_sleep_timeout, waitq_wakeup
20                                    +---------+
21                                    | waitq_t |
22                                    +---------+
23                                   /           \
24                SEMAPHORES        /             \  CONDITION VARIABLES
25  semaphore_down_timeout, semaphore_up    condvar_wait_timeout, condvar_signal
26             +--------------+   /                 \   +-----------+
27             | semaphore_t  |<-+                   +->| condvar_t |
28             +--------------+                         +-----------+
29                    |                                       ^
30                    |                                       |
31                    |                                +------+
32                    V                               /
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               +---------+                     /          +----------+
38                    |                         /
39                    +------------------------+