/arch/alpha/include/asm/ |
D | rwsem.h | 24 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument 28 oldcount = sem->count; in __down_read() 29 sem->count += RWSEM_ACTIVE_READ_BIAS; in __down_read() 41 :"=&r" (oldcount), "=m" (sem->count), "=&r" (temp) in __down_read() 42 :"Ir" (RWSEM_ACTIVE_READ_BIAS), "m" (sem->count) : "memory"); in __down_read() 45 rwsem_down_read_failed(sem); in __down_read() 51 static inline int __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument 55 res = sem->count; in __down_read_trylock() 61 res = cmpxchg(&sem->count, old, new); in __down_read_trylock() 66 static inline void __down_write(struct rw_semaphore *sem) in __down_write() argument [all …]
|
/arch/s390/include/asm/ |
D | rwsem.h | 59 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument 77 : "=&d" (old), "=&d" (new), "=Q" (sem->count) in __down_read() 78 : "Q" (sem->count), "i" (RWSEM_ACTIVE_READ_BIAS) in __down_read() 81 rwsem_down_read_failed(sem); in __down_read() 87 static inline int __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument 109 : "=&d" (old), "=&d" (new), "=Q" (sem->count) in __down_read_trylock() 110 : "Q" (sem->count), "i" (RWSEM_ACTIVE_READ_BIAS) in __down_read_trylock() 118 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass) in __down_write_nested() argument 137 : "=&d" (old), "=&d" (new), "=Q" (sem->count) in __down_write_nested() 138 : "Q" (sem->count), "m" (tmp) in __down_write_nested() [all …]
|
/arch/ia64/include/asm/ |
D | rwsem.h | 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() [all …]
|
/arch/sparc/include/asm/ |
D | rwsem.h | 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 [all …]
|
/arch/sh/include/asm/ |
D | rwsem.h | 25 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument 27 if (atomic_inc_return((atomic_t *)(&sem->count)) > 0) in __down_read() 30 rwsem_down_read_failed(sem); in __down_read() 33 static inline int __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument 37 while ((tmp = sem->count) >= 0) { in __down_read_trylock() 38 if (tmp == cmpxchg(&sem->count, tmp, in __down_read_trylock() 50 static inline void __down_write(struct rw_semaphore *sem) in __down_write() argument 55 (atomic_t *)(&sem->count)); in __down_write() 59 rwsem_down_write_failed(sem); in __down_write() 62 static inline int __down_write_trylock(struct rw_semaphore *sem) in __down_write_trylock() argument [all …]
|
/arch/x86/include/asm/ |
D | rwsem.h | 63 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument 72 : "+m" (sem->count) in __down_read() 73 : "a" (sem) in __down_read() 80 static inline int __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument 93 : "+m" (sem->count), "=&a" (result), "=&r" (tmp) in __down_read_trylock() 102 static inline void __down_write_nested(struct rw_semaphore *sem, int subclass) in __down_write_nested() argument 114 : "+m" (sem->count), "=d" (tmp) in __down_write_nested() 115 : "a" (sem), "1" (RWSEM_ACTIVE_WRITE_BIAS) in __down_write_nested() 119 static inline void __down_write(struct rw_semaphore *sem) in __down_write() argument 121 __down_write_nested(sem, 0); in __down_write() [all …]
|
/arch/xtensa/include/asm/ |
D | rwsem.h | 30 static inline void __down_read(struct rw_semaphore *sem) in __down_read() argument 32 if (atomic_add_return(1,(atomic_t *)(&sem->count)) > 0) in __down_read() 35 rwsem_down_read_failed(sem); in __down_read() 38 static inline int __down_read_trylock(struct rw_semaphore *sem) in __down_read_trylock() argument 42 while ((tmp = sem->count) >= 0) { in __down_read_trylock() 43 if (tmp == cmpxchg(&sem->count, tmp, in __down_read_trylock() 55 static inline void __down_write(struct rw_semaphore *sem) in __down_write() argument 60 (atomic_t *)(&sem->count)); in __down_write() 64 rwsem_down_write_failed(sem); in __down_write() 67 static inline int __down_write_trylock(struct rw_semaphore *sem) in __down_write_trylock() argument [all …]
|
/arch/ia64/include/uapi/asm/ |
D | intrinsics.h | 41 #define IA64_FETCHADD(tmp,v,n,sz,sem) \ argument 45 tmp = ia64_fetchadd4_##sem((unsigned int *) v, n); \ 49 tmp = ia64_fetchadd8_##sem((unsigned long *) v, n); \ 57 #define ia64_fetchadd(i,v,sem) \ argument 63 IA64_FETCHADD(_tmp, _v, -16, sizeof(*(v)), sem); \ 65 IA64_FETCHADD(_tmp, _v, -8, sizeof(*(v)), sem); \ 67 IA64_FETCHADD(_tmp, _v, -4, sizeof(*(v)), sem); \ 69 IA64_FETCHADD(_tmp, _v, -1, sizeof(*(v)), sem); \ 71 IA64_FETCHADD(_tmp, _v, 1, sizeof(*(v)), sem); \ 73 IA64_FETCHADD(_tmp, _v, 4, sizeof(*(v)), sem); \ [all …]
|
D | cmpxchg.h | 72 #define ia64_cmpxchg(sem, ptr, old, new, size) \ argument 94 _r_ = ia64_cmpxchg1_##sem((__u8 *) ptr, new, _o_); \ 98 _r_ = ia64_cmpxchg2_##sem((__u16 *) ptr, new, _o_); \ 102 _r_ = ia64_cmpxchg4_##sem((__u32 *) ptr, new, _o_); \ 106 _r_ = ia64_cmpxchg8_##sem((__u64 *) ptr, new, _o_); \
|
/arch/mips/include/asm/ |
D | pmon.h | 27 int (*semlock) (int sem); 28 void (*semunlock) (int sem); 43 #define pmon_semlock(sem) debug_vectors->semlock(sem) argument 44 #define pmon_semunlock(sem) debug_vectors->semunlock(sem) argument
|
/arch/arm/mach-vexpress/ |
D | spc.c | 109 struct semaphore sem; member 340 if (down_timeout(&info->sem, usecs_to_jiffies(TIMEOUT_US))) in ve_spc_set_performance() 350 up(&info->sem); in ve_spc_set_performance() 359 if (down_timeout(&info->sem, usecs_to_jiffies(TIMEOUT_US))) in ve_spc_read_sys_cfg() 373 up(&info->sem); in ve_spc_read_sys_cfg() 480 sema_init(&info->sem, 1); in ve_spc_init()
|