Lines Matching refs:count
43 long result = ia64_fetchadd8_acq((unsigned long *)&sem->count, 1); in __down_read()
58 old = sem->count; in __down_write()
60 } while (cmpxchg_acq(&sem->count, old, new) != old); in __down_write()
72 long result = ia64_fetchadd8_rel((unsigned long *)&sem->count, -1); in __up_read()
87 old = sem->count; in __up_write()
89 } while (cmpxchg_rel(&sem->count, old, new) != old); in __up_write()
102 while ((tmp = sem->count) >= 0) { in __down_read_trylock()
103 if (tmp == cmpxchg_acq(&sem->count, tmp, tmp+1)) { in __down_read_trylock()
116 long tmp = cmpxchg_acq(&sem->count, RWSEM_UNLOCKED_VALUE, in __down_write_trylock()
130 old = sem->count; in __downgrade_write()
132 } while (cmpxchg_rel(&sem->count, old, new) != old); in __downgrade_write()
142 #define rwsem_atomic_add(delta, sem) atomic64_add(delta, (atomic64_t *)(&(sem)->count))
143 #define rwsem_atomic_update(delta, sem) atomic64_add_return(delta, (atomic64_t *)(&(sem)->count))