Lines Matching refs:sem

25 static inline int ___down_read(struct rw_semaphore *sem)  in ___down_read()  argument
29 oldcount = sem->count.counter; in ___down_read()
30 sem->count.counter += RWSEM_ACTIVE_READ_BIAS; in ___down_read()
42 :"=&r" (oldcount), "=m" (sem->count), "=&r" (temp) in ___down_read()
43 :"Ir" (RWSEM_ACTIVE_READ_BIAS), "m" (sem->count) : "memory"); in ___down_read()
48 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument
50 if (unlikely(___down_read(sem))) in __down_read()
51 rwsem_down_read_failed(sem); in __down_read()
54 static inline int __down_read_killable(struct rw_semaphore *sem) in __down_read_killable() argument
56 if (unlikely(___down_read(sem))) in __down_read_killable()
57 if (IS_ERR(rwsem_down_read_failed_killable(sem))) in __down_read_killable()
66 static inline int __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument
70 res = atomic_long_read(&sem->count); in __down_read_trylock()
76 res = atomic_long_cmpxchg(&sem->count, old, new); in __down_read_trylock()
81 static inline long ___down_write(struct rw_semaphore *sem) in ___down_write() argument
85 oldcount = sem->count.counter; in ___down_write()
86 sem->count.counter += RWSEM_ACTIVE_WRITE_BIAS; in ___down_write()
98 :"=&r" (oldcount), "=m" (sem->count), "=&r" (temp) in ___down_write()
99 :"Ir" (RWSEM_ACTIVE_WRITE_BIAS), "m" (sem->count) : "memory"); in ___down_write()
104 static inline void __down_write(struct rw_semaphore *sem) in __down_write() argument
106 if (unlikely(___down_write(sem))) in __down_write()
107 rwsem_down_write_failed(sem); in __down_write()
110 static inline int __down_write_killable(struct rw_semaphore *sem) in __down_write_killable() argument
112 if (unlikely(___down_write(sem))) { in __down_write_killable()
113 if (IS_ERR(rwsem_down_write_failed_killable(sem))) in __down_write_killable()
123 static inline int __down_write_trylock(struct rw_semaphore *sem) in __down_write_trylock() argument
125 long ret = atomic_long_cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE, in __down_write_trylock()
132 static inline void __up_read(struct rw_semaphore *sem) in __up_read() argument
136 oldcount = sem->count.counter; in __up_read()
137 sem->count.counter -= RWSEM_ACTIVE_READ_BIAS; in __up_read()
149 :"=&r" (oldcount), "=m" (sem->count), "=&r" (temp) in __up_read()
150 :"Ir" (RWSEM_ACTIVE_READ_BIAS), "m" (sem->count) : "memory"); in __up_read()
154 rwsem_wake(sem); in __up_read()
157 static inline void __up_write(struct rw_semaphore *sem) in __up_write() argument
161 sem->count.counter -= RWSEM_ACTIVE_WRITE_BIAS; in __up_write()
162 count = sem->count.counter; in __up_write()
175 :"=&r" (count), "=m" (sem->count), "=&r" (temp) in __up_write()
176 :"Ir" (RWSEM_ACTIVE_WRITE_BIAS), "m" (sem->count) : "memory"); in __up_write()
180 rwsem_wake(sem); in __up_write()
186 static inline void __downgrade_write(struct rw_semaphore *sem) in __downgrade_write() argument
190 oldcount = sem->count.counter; in __downgrade_write()
191 sem->count.counter -= RWSEM_WAITING_BIAS; in __downgrade_write()
203 :"=&r" (oldcount), "=m" (sem->count), "=&r" (temp) in __downgrade_write()
204 :"Ir" (-RWSEM_WAITING_BIAS), "m" (sem->count) : "memory"); in __downgrade_write()
207 rwsem_downgrade_wake(sem); in __downgrade_write()