Lines Matching refs:sem
41 __down_read (struct rw_semaphore *sem) in __down_read() argument
43 long result = ia64_fetchadd8_acq((unsigned long *)&sem->count, 1); in __down_read()
46 rwsem_down_read_failed(sem); in __down_read()
53 __down_write (struct rw_semaphore *sem) in __down_write() argument
58 old = sem->count; in __down_write()
60 } while (cmpxchg_acq(&sem->count, old, new) != old); in __down_write()
63 rwsem_down_write_failed(sem); in __down_write()
70 __up_read (struct rw_semaphore *sem) in __up_read() argument
72 long result = ia64_fetchadd8_rel((unsigned long *)&sem->count, -1); in __up_read()
75 rwsem_wake(sem); in __up_read()
82 __up_write (struct rw_semaphore *sem) in __up_write() argument
87 old = sem->count; in __up_write()
89 } while (cmpxchg_rel(&sem->count, old, new) != old); in __up_write()
92 rwsem_wake(sem); in __up_write()
99 __down_read_trylock (struct rw_semaphore *sem) in __down_read_trylock() argument
102 while ((tmp = sem->count) >= 0) { in __down_read_trylock()
103 if (tmp == cmpxchg_acq(&sem->count, tmp, tmp+1)) { in __down_read_trylock()
114 __down_write_trylock (struct rw_semaphore *sem) in __down_write_trylock() argument
116 long tmp = cmpxchg_acq(&sem->count, RWSEM_UNLOCKED_VALUE, in __down_write_trylock()
125 __downgrade_write (struct rw_semaphore *sem) in __downgrade_write() argument
130 old = sem->count; in __downgrade_write()
132 } while (cmpxchg_rel(&sem->count, old, new) != old); in __downgrade_write()
135 rwsem_downgrade_wake(sem); in __downgrade_write()
142 #define rwsem_atomic_add(delta, sem) atomic64_add(delta, (atomic64_t *)(&(sem)->count)) argument
143 #define rwsem_atomic_update(delta, sem) atomic64_add_return(delta, (atomic64_t *)(&(sem)->count)) argument