Lines Matching refs:sem
70 static inline int rwsem_is_locked(struct rw_semaphore *sem)
72 return atomic_long_read(&sem->count) != 0;
104 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
107 #define init_rwsem(sem) \
111 __init_rwsem((sem), #sem, &__key); \
120 static inline int rwsem_is_contended(struct rw_semaphore *sem)
122 return !list_empty(&sem->wait_list);
148 #define init_rwsem(sem) \
152 __init_rwsem((sem), #sem, &__key); \
155 static __always_inline int rwsem_is_locked(struct rw_semaphore *sem)
157 return rw_base_is_locked(&sem->rwbase);
160 static __always_inline int rwsem_is_contended(struct rw_semaphore *sem)
162 return rw_base_is_contended(&sem->rwbase);
175 extern void down_read(struct rw_semaphore *sem);
176 extern int __must_check down_read_interruptible(struct rw_semaphore *sem);
177 extern int __must_check down_read_killable(struct rw_semaphore *sem);
182 extern int down_read_trylock(struct rw_semaphore *sem);
187 extern void down_write(struct rw_semaphore *sem);
188 extern int __must_check down_write_killable(struct rw_semaphore *sem);
193 extern int down_write_trylock(struct rw_semaphore *sem);
198 extern void up_read(struct rw_semaphore *sem);
203 extern void up_write(struct rw_semaphore *sem);
215 extern void downgrade_write(struct rw_semaphore *sem);
231 extern void down_read_nested(struct rw_semaphore *sem, int subclass);
232 extern int __must_check down_read_killable_nested(struct rw_semaphore *sem, int subclass);
233 extern void down_write_nested(struct rw_semaphore *sem, int subclass);
234 extern int down_write_killable_nested(struct rw_semaphore *sem, int subclass);
235 extern void _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest_lock);
237 # define down_write_nest_lock(sem, nest_lock) \
240 _down_write_nest_lock(sem, &(nest_lock)->dep_map); \
249 extern void down_read_non_owner(struct rw_semaphore *sem);
250 extern void up_read_non_owner(struct rw_semaphore *sem);
252 # define down_read_nested(sem, subclass) down_read(sem)
253 # define down_read_killable_nested(sem, subclass) down_read_killable(sem)
254 # define down_write_nest_lock(sem, nest_lock) down_write(sem)
255 # define down_write_nested(sem, subclass) down_write(sem)
256 # define down_write_killable_nested(sem, subclass) down_write_killable(sem)
257 # define down_read_non_owner(sem) down_read(sem)
258 # define up_read_non_owner(sem) up_read(sem)