Lines Matching refs:sem

26 static inline void __down_read(struct rw_semaphore *sem)  in __down_read()  argument
28 if (unlikely(atomic64_inc_return((atomic64_t *)(&sem->count)) <= 0L)) in __down_read()
29 rwsem_down_read_failed(sem); in __down_read()
32 static inline int __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument
36 while ((tmp = sem->count) >= 0L) { in __down_read_trylock()
37 if (tmp == cmpxchg(&sem->count, tmp, in __down_read_trylock()
48 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass) in __down_write_nested() argument
53 (atomic64_t *)(&sem->count)); in __down_write_nested()
55 rwsem_down_write_failed(sem); in __down_write_nested()
58 static inline void __down_write(struct rw_semaphore *sem) in __down_write() argument
60 __down_write_nested(sem, 0); in __down_write()
63 static inline int __down_write_trylock(struct rw_semaphore *sem) in __down_write_trylock() argument
67 tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE, in __down_write_trylock()
75 static inline void __up_read(struct rw_semaphore *sem) in __up_read() argument
79 tmp = atomic64_dec_return((atomic64_t *)(&sem->count)); in __up_read()
81 rwsem_wake(sem); in __up_read()
87 static inline void __up_write(struct rw_semaphore *sem) in __up_write() argument
90 (atomic64_t *)(&sem->count)) < 0L)) in __up_write()
91 rwsem_wake(sem); in __up_write()
97 static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem) in rwsem_atomic_add() argument
99 atomic64_add(delta, (atomic64_t *)(&sem->count)); in rwsem_atomic_add()
105 static inline void __downgrade_write(struct rw_semaphore *sem) in __downgrade_write() argument
109 tmp = atomic64_add_return(-RWSEM_WAITING_BIAS, (atomic64_t *)(&sem->count)); in __downgrade_write()
111 rwsem_downgrade_wake(sem); in __downgrade_write()
117 static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem) in rwsem_atomic_update() argument
119 return atomic64_add_return(delta, (atomic64_t *)(&sem->count)); in rwsem_atomic_update()