Lines Matching refs:sem

44 extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
45 extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
47 extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
53 static inline int rwsem_is_locked(struct rw_semaphore *sem) in rwsem_is_locked() argument
55 return sem->count != 0; in rwsem_is_locked()
84 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
87 #define init_rwsem(sem) \ argument
91 __init_rwsem((sem), #sem, &__key); \
100 static inline int rwsem_is_contended(struct rw_semaphore *sem) in rwsem_is_contended() argument
102 return !list_empty(&sem->wait_list); in rwsem_is_contended()
108 extern void down_read(struct rw_semaphore *sem);
113 extern int down_read_trylock(struct rw_semaphore *sem);
118 extern void down_write(struct rw_semaphore *sem);
123 extern int down_write_trylock(struct rw_semaphore *sem);
128 extern void up_read(struct rw_semaphore *sem);
133 extern void up_write(struct rw_semaphore *sem);
138 extern void downgrade_write(struct rw_semaphore *sem);
154 extern void down_read_nested(struct rw_semaphore *sem, int subclass);
155 extern void down_write_nested(struct rw_semaphore *sem, int subclass);
156 extern void _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest_lock);
158 # define down_write_nest_lock(sem, nest_lock) \ argument
161 _down_write_nest_lock(sem, &(nest_lock)->dep_map); \
170 extern void down_read_non_owner(struct rw_semaphore *sem);
171 extern void up_read_non_owner(struct rw_semaphore *sem);
173 # define down_read_nested(sem, subclass) down_read(sem) argument
174 # define down_write_nest_lock(sem, nest_lock) down_write(sem) argument
175 # define down_write_nested(sem, subclass) down_write(sem) argument
176 # define down_read_non_owner(sem) down_read(sem) argument
177 # define up_read_non_owner(sem) up_read(sem) argument