Lines Matching refs:mutex
23 Mutexes are represented by 'struct mutex', defined in include/linux/mutex.h
24 and implemented in kernel/locking/mutex.c. These locks use a three
37 When acquiring a mutex, there are three possible paths that can be
60 soon. The mutex spinners are queued up using MCS lock so that only
61 one spinner can compete for the mutex.
72 waiting to spin on mutex owner, only to go directly to slowpath upon
89 The mutex subsystem checks and enforces the following rules:
91 - Only one task can hold the mutex at a time.
92 - Only the owner can unlock the mutex.
95 - A mutex must only be initialized via the API (see below).
96 - A task may not exit with a mutex held.
103 In addition, the mutex debugging code also implements a number of other
118 Statically define the mutex:
121 Dynamically initialize the mutex:
122 mutex_init(mutex);
124 Acquire the mutex, uninterruptible:
125 void mutex_lock(struct mutex *lock);
126 void mutex_lock_nested(struct mutex *lock, unsigned int subclass);
127 int mutex_trylock(struct mutex *lock);
129 Acquire the mutex, interruptible:
130 int mutex_lock_interruptible_nested(struct mutex *lock,
132 int mutex_lock_interruptible(struct mutex *lock);
134 Acquire the mutex, interruptible, if dec to 0:
135 int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock);
137 Unlock the mutex:
138 void mutex_unlock(struct mutex *lock);
140 Test if the mutex is taken:
141 int mutex_is_locked(struct mutex *lock);
146 Unlike its original design and purpose, 'struct mutex' is larger than