Home
last modified time | relevance | path

Searched refs:sem (Results 1 – 11 of 11) sorted by relevance

/arch/alpha/include/asm/
Drwsem.h24 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/
Drwsem.h59 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/
Drwsem.h41 __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/
Drwsem.h26 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/
Drwsem.h25 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/
Drwsem.h63 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/
Drwsem.h30 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/
Dintrinsics.h41 #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 …]
Dcmpxchg.h72 #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/
Dpmon.h27 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/
Dspc.c109 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()