Home
last modified time | relevance | path

Searched refs:sem (Results 1 - 25 of 317) sorted by relevance

12345678910>>...13

/kernel/linux/linux-6.6/kernel/locking/
H A Drwsem.c68 # define DEBUG_RWSEMS_WARN_ON(c, sem) do { \
71 #c, atomic_long_read(&(sem)->count), \
72 (unsigned long) sem->magic, \
73 atomic_long_read(&(sem)->owner), (long)current, \
74 list_empty(&(sem)->wait_list) ? "" : "not ")) \
78 # define DEBUG_RWSEMS_WARN_ON(c, sem)
138 * preempt disable section as the atomic op that changes sem->count.
140 static inline void rwsem_set_owner(struct rw_semaphore *sem) in rwsem_set_owner() argument
143 atomic_long_set(&sem->owner, (long)current); in rwsem_set_owner()
146 static inline void rwsem_clear_owner(struct rw_semaphore *sem) in rwsem_clear_owner() argument
155 rwsem_test_oflags(struct rw_semaphore *sem, long flags) rwsem_test_oflags() argument
170 __rwsem_set_reader_owned(struct rw_semaphore *sem, struct task_struct *owner) __rwsem_set_reader_owned() argument
179 rwsem_set_reader_owned(struct rw_semaphore *sem) rwsem_set_reader_owned() argument
187 is_rwsem_reader_owned(struct rw_semaphore *sem) is_rwsem_reader_owned() argument
208 rwsem_clear_reader_owned(struct rw_semaphore *sem) rwsem_clear_reader_owned() argument
219 rwsem_clear_reader_owned(struct rw_semaphore *sem) rwsem_clear_reader_owned() argument
228 rwsem_set_nonspinnable(struct rw_semaphore *sem) rwsem_set_nonspinnable() argument
241 rwsem_read_trylock(struct rw_semaphore *sem, long *cntp) rwsem_read_trylock() argument
256 rwsem_write_trylock(struct rw_semaphore *sem) rwsem_write_trylock() argument
271 rwsem_owner(struct rw_semaphore *sem) rwsem_owner() argument
282 rwsem_owner_flags(struct rw_semaphore *sem, unsigned long *pflags) rwsem_owner_flags() argument
310 __init_rwsem(struct rw_semaphore *sem, const char *name, struct lock_class_key *key) __init_rwsem() argument
370 rwsem_add_waiter(struct rw_semaphore *sem, struct rwsem_waiter *waiter) rwsem_add_waiter() argument
386 rwsem_del_waiter(struct rw_semaphore *sem, struct rwsem_waiter *waiter) rwsem_del_waiter() argument
411 rwsem_mark_wake(struct rw_semaphore *sem, enum rwsem_wake_type wake_type, struct wake_q_head *wake_q) rwsem_mark_wake() argument
604 rwsem_try_write_lock(struct rw_semaphore *sem, struct rwsem_waiter *waiter) rwsem_try_write_lock() argument
690 rwsem_try_write_lock_unqueued(struct rw_semaphore *sem) rwsem_try_write_lock_unqueued() argument
705 rwsem_can_spin_on_owner(struct rw_semaphore *sem) rwsem_can_spin_on_owner() argument
747 rwsem_spin_on_owner(struct rw_semaphore *sem) rwsem_spin_on_owner() argument
806 rwsem_rspin_threshold(struct rw_semaphore *sem) rwsem_rspin_threshold() argument
819 rwsem_optimistic_spin(struct rw_semaphore *sem) rwsem_optimistic_spin() argument
941 clear_nonspinnable(struct rw_semaphore *sem) clear_nonspinnable() argument
948 rwsem_can_spin_on_owner(struct rw_semaphore *sem) rwsem_can_spin_on_owner() argument
953 rwsem_optimistic_spin(struct rw_semaphore *sem) rwsem_optimistic_spin() argument
958 clear_nonspinnable(struct rw_semaphore *sem) clear_nonspinnable() argument
961 rwsem_spin_on_owner(struct rw_semaphore *sem) rwsem_spin_on_owner() argument
975 rwsem_cond_wake_waiter(struct rw_semaphore *sem, long count, struct wake_q_head *wake_q) rwsem_cond_wake_waiter() argument
996 rwsem_down_read_slowpath(struct rw_semaphore *sem, long count, unsigned int state) rwsem_down_read_slowpath() argument
1107 rwsem_down_write_slowpath(struct rw_semaphore *sem, int state) rwsem_down_write_slowpath() argument
1203 rwsem_wake(struct rw_semaphore *sem) rwsem_wake() argument
1224 rwsem_downgrade_wake(struct rw_semaphore *sem) rwsem_downgrade_wake() argument
1243 __down_read_common(struct rw_semaphore *sem, int state) __down_read_common() argument
1261 __down_read(struct rw_semaphore *sem) __down_read() argument
1266 __down_read_interruptible(struct rw_semaphore *sem) __down_read_interruptible() argument
1271 __down_read_killable(struct rw_semaphore *sem) __down_read_killable() argument
1276 __down_read_trylock(struct rw_semaphore *sem) __down_read_trylock() argument
1300 __down_write_common(struct rw_semaphore *sem, int state) __down_write_common() argument
1313 __down_write(struct rw_semaphore *sem) __down_write() argument
1318 __down_write_killable(struct rw_semaphore *sem) __down_write_killable() argument
1323 __down_write_trylock(struct rw_semaphore *sem) __down_write_trylock() argument
1338 __up_read(struct rw_semaphore *sem) __up_read() argument
1360 __up_write(struct rw_semaphore *sem) __up_write() argument
1383 __downgrade_write(struct rw_semaphore *sem) __downgrade_write() argument
1394 DEBUG_RWSEMS_WARN_ON(rwsem_owner(sem) != current, sem); __downgrade_write() local
1435 __init_rwsem(struct rw_semaphore *sem, const char *name, struct lock_class_key *key) __init_rwsem() argument
1447 __down_read(struct rw_semaphore *sem) __down_read() argument
1452 __down_read_interruptible(struct rw_semaphore *sem) __down_read_interruptible() argument
1457 __down_read_killable(struct rw_semaphore *sem) __down_read_killable() argument
1462 __down_read_trylock(struct rw_semaphore *sem) __down_read_trylock() argument
1467 __up_read(struct rw_semaphore *sem) __up_read() argument
1472 __down_write(struct rw_semaphore *sem) __down_write() argument
1477 __down_write_killable(struct rw_semaphore *sem) __down_write_killable() argument
1482 __down_write_trylock(struct rw_semaphore *sem) __down_write_trylock() argument
1487 __up_write(struct rw_semaphore *sem) __up_write() argument
1492 __downgrade_write(struct rw_semaphore *sem) __downgrade_write() argument
1500 __rwsem_set_reader_owned(struct rw_semaphore *sem, struct task_struct *owner) __rwsem_set_reader_owned() argument
1505 is_rwsem_reader_owned(struct rw_semaphore *sem) is_rwsem_reader_owned() argument
1517 down_read(struct rw_semaphore *sem) down_read() argument
1526 down_read_interruptible(struct rw_semaphore *sem) down_read_interruptible() argument
1540 down_read_killable(struct rw_semaphore *sem) down_read_killable() argument
1557 down_read_trylock(struct rw_semaphore *sem) down_read_trylock() argument
1570 down_write(struct rw_semaphore *sem) down_write() argument
1581 down_write_killable(struct rw_semaphore *sem) down_write_killable() argument
1599 down_write_trylock(struct rw_semaphore *sem) down_write_trylock() argument
1613 up_read(struct rw_semaphore *sem) up_read() argument
1623 up_write(struct rw_semaphore *sem) up_write() argument
1633 downgrade_write(struct rw_semaphore *sem) downgrade_write() argument
1642 down_read_nested(struct rw_semaphore *sem, int subclass) down_read_nested() argument
1650 down_read_killable_nested(struct rw_semaphore *sem, int subclass) down_read_killable_nested() argument
1664 _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest) _down_write_nest_lock() argument
1672 down_read_non_owner(struct rw_semaphore *sem) down_read_non_owner() argument
1686 down_write_nested(struct rw_semaphore *sem, int subclass) down_write_nested() argument
1694 down_write_killable_nested(struct rw_semaphore *sem, int subclass) down_write_killable_nested() argument
1709 up_read_non_owner(struct rw_semaphore *sem) up_read_non_owner() argument
[all...]
H A Dsemaphore.c37 static noinline void __down(struct semaphore *sem);
38 static noinline int __down_interruptible(struct semaphore *sem);
39 static noinline int __down_killable(struct semaphore *sem);
40 static noinline int __down_timeout(struct semaphore *sem, long timeout);
41 static noinline void __up(struct semaphore *sem);
45 * @sem: the semaphore to be acquired
54 void __sched down(struct semaphore *sem) in down() argument
59 raw_spin_lock_irqsave(&sem->lock, flags); in down()
60 if (likely(sem->count > 0)) in down()
61 sem in down()
77 down_interruptible(struct semaphore *sem) down_interruptible() argument
104 down_killable(struct semaphore *sem) down_killable() argument
134 down_trylock(struct semaphore *sem) down_trylock() argument
159 down_timeout(struct semaphore *sem, long timeout) down_timeout() argument
183 up(struct semaphore *sem) up() argument
209 ___down_common(struct semaphore *sem, long state, long timeout) ___down_common() argument
240 __down_common(struct semaphore *sem, long state, long timeout) __down_common() argument
252 __down(struct semaphore *sem) __down() argument
257 __down_interruptible(struct semaphore *sem) __down_interruptible() argument
262 __down_killable(struct semaphore *sem) __down_killable() argument
267 __down_timeout(struct semaphore *sem, long timeout) __down_timeout() argument
272 __up(struct semaphore *sem) __up() argument
[all...]
H A Dpercpu-rwsem.c14 int __percpu_init_rwsem(struct percpu_rw_semaphore *sem, in __percpu_init_rwsem() argument
17 sem->read_count = alloc_percpu(int); in __percpu_init_rwsem()
18 if (unlikely(!sem->read_count)) in __percpu_init_rwsem()
21 rcu_sync_init(&sem->rss); in __percpu_init_rwsem()
22 rcuwait_init(&sem->writer); in __percpu_init_rwsem()
23 init_waitqueue_head(&sem->waiters); in __percpu_init_rwsem()
24 atomic_set(&sem->block, 0); in __percpu_init_rwsem()
26 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __percpu_init_rwsem()
27 lockdep_init_map(&sem in __percpu_init_rwsem()
33 percpu_free_rwsem(struct percpu_rw_semaphore *sem) percpu_free_rwsem() argument
48 __percpu_down_read_trylock(struct percpu_rw_semaphore *sem) __percpu_down_read_trylock() argument
84 __percpu_down_write_trylock(struct percpu_rw_semaphore *sem) __percpu_down_write_trylock() argument
92 __percpu_rwsem_trylock(struct percpu_rw_semaphore *sem, bool reader) __percpu_rwsem_trylock() argument
124 struct percpu_rw_semaphore *sem = key; percpu_rwsem_wake_function() local
141 percpu_rwsem_wait(struct percpu_rw_semaphore *sem, bool reader) percpu_rwsem_wait() argument
167 __percpu_down_read(struct percpu_rw_semaphore *sem, bool try) __percpu_down_read() argument
195 percpu_is_read_locked(struct percpu_rw_semaphore *sem) percpu_is_read_locked() argument
209 readers_active_check(struct percpu_rw_semaphore *sem) readers_active_check() argument
224 percpu_down_write(struct percpu_rw_semaphore *sem) percpu_down_write() argument
254 percpu_up_write(struct percpu_rw_semaphore *sem) percpu_up_write() argument
[all...]
/kernel/linux/linux-5.10/kernel/locking/
H A Drwsem.c105 # define DEBUG_RWSEMS_WARN_ON(c, sem) do { \
108 #c, atomic_long_read(&(sem)->count), \
109 (unsigned long) sem->magic, \
110 atomic_long_read(&(sem)->owner), (long)current, \
111 list_empty(&(sem)->wait_list) ? "" : "not ")) \
115 # define DEBUG_RWSEMS_WARN_ON(c, sem)
174 static inline void rwsem_set_owner(struct rw_semaphore *sem) in rwsem_set_owner() argument
176 atomic_long_set(&sem->owner, (long)current); in rwsem_set_owner()
179 static inline void rwsem_clear_owner(struct rw_semaphore *sem) in rwsem_clear_owner() argument
181 atomic_long_set(&sem in rwsem_clear_owner()
187 rwsem_test_oflags(struct rw_semaphore *sem, long flags) rwsem_test_oflags() argument
202 __rwsem_set_reader_owned(struct rw_semaphore *sem, struct task_struct *owner) __rwsem_set_reader_owned() argument
211 rwsem_set_reader_owned(struct rw_semaphore *sem) rwsem_set_reader_owned() argument
219 is_rwsem_reader_owned(struct rw_semaphore *sem) is_rwsem_reader_owned() argument
240 rwsem_clear_reader_owned(struct rw_semaphore *sem) rwsem_clear_reader_owned() argument
251 rwsem_clear_reader_owned(struct rw_semaphore *sem) rwsem_clear_reader_owned() argument
260 rwsem_set_nonspinnable(struct rw_semaphore *sem) rwsem_set_nonspinnable() argument
273 rwsem_read_trylock(struct rw_semaphore *sem) rwsem_read_trylock() argument
284 rwsem_owner(struct rw_semaphore *sem) rwsem_owner() argument
295 rwsem_owner_flags(struct rw_semaphore *sem, unsigned long *pflags) rwsem_owner_flags() argument
323 __init_rwsem(struct rw_semaphore *sem, const char *name, struct lock_class_key *key) __init_rwsem() argument
400 rwsem_mark_wake(struct rw_semaphore *sem, enum rwsem_wake_type wake_type, struct wake_q_head *wake_q) rwsem_mark_wake() argument
562 rwsem_try_write_lock(struct rw_semaphore *sem, enum writer_wait_state wstate) rwsem_try_write_lock() argument
609 rwsem_try_read_lock_unqueued(struct rw_semaphore *sem) rwsem_try_read_lock_unqueued() argument
631 rwsem_try_write_lock_unqueued(struct rw_semaphore *sem) rwsem_try_write_lock_unqueued() argument
655 rwsem_can_spin_on_owner(struct rw_semaphore *sem, unsigned long nonspinnable) rwsem_can_spin_on_owner() argument
715 rwsem_spin_on_owner(struct rw_semaphore *sem, unsigned long nonspinnable) rwsem_spin_on_owner() argument
772 rwsem_rspin_threshold(struct rw_semaphore *sem) rwsem_rspin_threshold() argument
785 rwsem_optimistic_spin(struct rw_semaphore *sem, bool wlock) rwsem_optimistic_spin() argument
919 clear_wr_nonspinnable(struct rw_semaphore *sem) clear_wr_nonspinnable() argument
944 rwsem_reader_phase_trylock(struct rw_semaphore *sem, unsigned long last_rowner) rwsem_reader_phase_trylock() argument
961 rwsem_can_spin_on_owner(struct rw_semaphore *sem, unsigned long nonspinnable) rwsem_can_spin_on_owner() argument
967 rwsem_optimistic_spin(struct rw_semaphore *sem, bool wlock) rwsem_optimistic_spin() argument
972 clear_wr_nonspinnable(struct rw_semaphore *sem) clear_wr_nonspinnable() argument
974 rwsem_reader_phase_trylock(struct rw_semaphore *sem, unsigned long last_rowner) rwsem_reader_phase_trylock() argument
981 rwsem_spin_on_owner(struct rw_semaphore *sem, unsigned long nonspinnable) rwsem_spin_on_owner() argument
992 rwsem_down_read_slowpath(struct rw_semaphore *sem, int state) rwsem_down_read_slowpath() argument
1123 rwsem_disable_reader_optspin(struct rw_semaphore *sem, bool disable) rwsem_disable_reader_optspin() argument
1136 rwsem_down_write_slowpath(struct rw_semaphore *sem, int state) rwsem_down_write_slowpath() argument
1298 rwsem_wake(struct rw_semaphore *sem, long count) rwsem_wake() argument
1319 rwsem_downgrade_wake(struct rw_semaphore *sem) rwsem_downgrade_wake() argument
1338 __down_read(struct rw_semaphore *sem) __down_read() argument
1348 __down_read_interruptible(struct rw_semaphore *sem) __down_read_interruptible() argument
1360 __down_read_killable(struct rw_semaphore *sem) __down_read_killable() argument
1372 __down_read_trylock(struct rw_semaphore *sem) __down_read_trylock() argument
1395 __down_write(struct rw_semaphore *sem) __down_write() argument
1406 __down_write_killable(struct rw_semaphore *sem) __down_write_killable() argument
1420 __down_write_trylock(struct rw_semaphore *sem) __down_write_trylock() argument
1438 __up_read(struct rw_semaphore *sem) __up_read() argument
1458 __up_write(struct rw_semaphore *sem) __up_write() argument
1479 __downgrade_write(struct rw_semaphore *sem) __downgrade_write() argument
1490 DEBUG_RWSEMS_WARN_ON(rwsem_owner(sem) != current, sem); __downgrade_write() local
1501 down_read(struct rw_semaphore *sem) down_read() argument
1510 down_read_interruptible(struct rw_semaphore *sem) down_read_interruptible() argument
1524 down_read_killable(struct rw_semaphore *sem) down_read_killable() argument
1541 down_read_trylock(struct rw_semaphore *sem) down_read_trylock() argument
1554 down_write(struct rw_semaphore *sem) down_write() argument
1565 down_write_killable(struct rw_semaphore *sem) down_write_killable() argument
1583 down_write_trylock(struct rw_semaphore *sem) down_write_trylock() argument
1597 up_read(struct rw_semaphore *sem) up_read() argument
1607 up_write(struct rw_semaphore *sem) up_write() argument
1617 downgrade_write(struct rw_semaphore *sem) downgrade_write() argument
1626 down_read_nested(struct rw_semaphore *sem, int subclass) down_read_nested() argument
1634 down_read_killable_nested(struct rw_semaphore *sem, int subclass) down_read_killable_nested() argument
1648 _down_write_nest_lock(struct rw_semaphore *sem, struct lockdep_map *nest) _down_write_nest_lock() argument
1656 down_read_non_owner(struct rw_semaphore *sem) down_read_non_owner() argument
1664 down_write_nested(struct rw_semaphore *sem, int subclass) down_write_nested() argument
1672 down_write_killable_nested(struct rw_semaphore *sem, int subclass) down_write_killable_nested() argument
1687 up_read_non_owner(struct rw_semaphore *sem) up_read_non_owner() argument
[all...]
H A Dsemaphore.c36 static noinline void __down(struct semaphore *sem);
37 static noinline int __down_interruptible(struct semaphore *sem);
38 static noinline int __down_killable(struct semaphore *sem);
39 static noinline int __down_timeout(struct semaphore *sem, long timeout);
40 static noinline void __up(struct semaphore *sem);
44 * @sem: the semaphore to be acquired
53 void down(struct semaphore *sem) in down() argument
57 raw_spin_lock_irqsave(&sem->lock, flags); in down()
58 if (likely(sem->count > 0)) in down()
59 sem in down()
75 down_interruptible(struct semaphore *sem) down_interruptible() argument
101 down_killable(struct semaphore *sem) down_killable() argument
130 down_trylock(struct semaphore *sem) down_trylock() argument
155 down_timeout(struct semaphore *sem, long timeout) down_timeout() argument
178 up(struct semaphore *sem) up() argument
204 __down_common(struct semaphore *sem, long state, long timeout) __down_common() argument
235 __down(struct semaphore *sem) __down() argument
240 __down_interruptible(struct semaphore *sem) __down_interruptible() argument
245 __down_killable(struct semaphore *sem) __down_killable() argument
250 __down_timeout(struct semaphore *sem, long timeout) __down_timeout() argument
255 __up(struct semaphore *sem) __up() argument
[all...]
H A Dpercpu-rwsem.c12 int __percpu_init_rwsem(struct percpu_rw_semaphore *sem, in __percpu_init_rwsem() argument
15 sem->read_count = alloc_percpu(int); in __percpu_init_rwsem()
16 if (unlikely(!sem->read_count)) in __percpu_init_rwsem()
19 rcu_sync_init(&sem->rss); in __percpu_init_rwsem()
20 rcuwait_init(&sem->writer); in __percpu_init_rwsem()
21 init_waitqueue_head(&sem->waiters); in __percpu_init_rwsem()
22 atomic_set(&sem->block, 0); in __percpu_init_rwsem()
24 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __percpu_init_rwsem()
25 lockdep_init_map(&sem in __percpu_init_rwsem()
31 percpu_free_rwsem(struct percpu_rw_semaphore *sem) percpu_free_rwsem() argument
46 __percpu_down_read_trylock(struct percpu_rw_semaphore *sem) __percpu_down_read_trylock() argument
82 __percpu_down_write_trylock(struct percpu_rw_semaphore *sem) __percpu_down_write_trylock() argument
90 __percpu_rwsem_trylock(struct percpu_rw_semaphore *sem, bool reader) __percpu_rwsem_trylock() argument
122 struct percpu_rw_semaphore *sem = key; percpu_rwsem_wake_function() local
139 percpu_rwsem_wait(struct percpu_rw_semaphore *sem, bool reader) percpu_rwsem_wait() argument
165 __percpu_down_read(struct percpu_rw_semaphore *sem, bool try) __percpu_down_read() argument
199 readers_active_check(struct percpu_rw_semaphore *sem) readers_active_check() argument
214 percpu_down_write(struct percpu_rw_semaphore *sem) percpu_down_write() argument
242 percpu_up_write(struct percpu_rw_semaphore *sem) percpu_up_write() argument
[all...]
/kernel/linux/linux-5.10/drivers/tty/
H A Dtty_ldsem.c57 void __init_ldsem(struct ld_semaphore *sem, const char *name, in __init_ldsem() argument
64 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __init_ldsem()
65 lockdep_init_map(&sem->dep_map, name, key, 0); in __init_ldsem()
67 atomic_long_set(&sem->count, LDSEM_UNLOCKED); in __init_ldsem()
68 sem->wait_readers = 0; in __init_ldsem()
69 raw_spin_lock_init(&sem->wait_lock); in __init_ldsem()
70 INIT_LIST_HEAD(&sem->read_wait); in __init_ldsem()
71 INIT_LIST_HEAD(&sem->write_wait); in __init_ldsem()
74 static void __ldsem_wake_readers(struct ld_semaphore *sem) in __ldsem_wake_readers() argument
104 writer_trylock(struct ld_semaphore *sem) writer_trylock() argument
119 __ldsem_wake_writer(struct ld_semaphore *sem) __ldsem_wake_writer() argument
135 __ldsem_wake(struct ld_semaphore *sem) __ldsem_wake() argument
143 ldsem_wake(struct ld_semaphore *sem) ldsem_wake() argument
156 down_read_failed(struct ld_semaphore *sem, long count, long timeout) down_read_failed() argument
230 down_write_failed(struct ld_semaphore *sem, long count, long timeout) down_write_failed() argument
295 __ldsem_down_read_nested(struct ld_semaphore *sem, int subclass, long timeout) __ldsem_down_read_nested() argument
314 __ldsem_down_write_nested(struct ld_semaphore *sem, int subclass, long timeout) __ldsem_down_write_nested() argument
337 ldsem_down_read(struct ld_semaphore *sem, long timeout) ldsem_down_read() argument
346 ldsem_down_read_trylock(struct ld_semaphore *sem) ldsem_down_read_trylock() argument
363 ldsem_down_write(struct ld_semaphore *sem, long timeout) ldsem_down_write() argument
372 ldsem_down_write_trylock(struct ld_semaphore *sem) ldsem_down_write_trylock() argument
389 ldsem_up_read(struct ld_semaphore *sem) ldsem_up_read() argument
403 ldsem_up_write(struct ld_semaphore *sem) ldsem_up_write() argument
417 ldsem_down_read_nested(struct ld_semaphore *sem, int subclass, long timeout) ldsem_down_read_nested() argument
423 ldsem_down_write_nested(struct ld_semaphore *sem, int subclass, long timeout) ldsem_down_write_nested() argument
[all...]
/kernel/linux/linux-6.6/drivers/tty/
H A Dtty_ldsem.c57 void __init_ldsem(struct ld_semaphore *sem, const char *name, in __init_ldsem() argument
64 debug_check_no_locks_freed((void *)sem, sizeof(*sem)); in __init_ldsem()
65 lockdep_init_map(&sem->dep_map, name, key, 0); in __init_ldsem()
67 atomic_long_set(&sem->count, LDSEM_UNLOCKED); in __init_ldsem()
68 sem->wait_readers = 0; in __init_ldsem()
69 raw_spin_lock_init(&sem->wait_lock); in __init_ldsem()
70 INIT_LIST_HEAD(&sem->read_wait); in __init_ldsem()
71 INIT_LIST_HEAD(&sem->write_wait); in __init_ldsem()
74 static void __ldsem_wake_readers(struct ld_semaphore *sem) in __ldsem_wake_readers() argument
104 writer_trylock(struct ld_semaphore *sem) writer_trylock() argument
119 __ldsem_wake_writer(struct ld_semaphore *sem) __ldsem_wake_writer() argument
135 __ldsem_wake(struct ld_semaphore *sem) __ldsem_wake() argument
143 ldsem_wake(struct ld_semaphore *sem) ldsem_wake() argument
156 down_read_failed(struct ld_semaphore *sem, long count, long timeout) down_read_failed() argument
230 down_write_failed(struct ld_semaphore *sem, long count, long timeout) down_write_failed() argument
295 __ldsem_down_read_nested(struct ld_semaphore *sem, int subclass, long timeout) __ldsem_down_read_nested() argument
314 __ldsem_down_write_nested(struct ld_semaphore *sem, int subclass, long timeout) __ldsem_down_write_nested() argument
337 ldsem_down_read(struct ld_semaphore *sem, long timeout) ldsem_down_read() argument
346 ldsem_down_read_trylock(struct ld_semaphore *sem) ldsem_down_read_trylock() argument
363 ldsem_down_write(struct ld_semaphore *sem, long timeout) ldsem_down_write() argument
372 ldsem_down_write_trylock(struct ld_semaphore *sem) ldsem_down_write_trylock() argument
389 ldsem_up_read(struct ld_semaphore *sem) ldsem_up_read() argument
403 ldsem_up_write(struct ld_semaphore *sem) ldsem_up_write() argument
417 ldsem_down_read_nested(struct ld_semaphore *sem, int subclass, long timeout) ldsem_down_read_nested() argument
423 ldsem_down_write_nested(struct ld_semaphore *sem, int subclass, long timeout) ldsem_down_write_nested() argument
[all...]
/kernel/linux/linux-6.6/include/linux/
H A Drwsem.h70 static inline int rwsem_is_locked(struct rw_semaphore *sem) in rwsem_is_locked() argument
72 return atomic_long_read(&sem->count) != 0; in rwsem_is_locked()
104 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
107 #define init_rwsem(sem) \
111 __init_rwsem((sem), #sem, &__key); \
120 static inline int rwsem_is_contended(struct rw_semaphore *sem) in rwsem_is_contended() argument
122 return !list_empty(&sem->wait_list); in rwsem_is_contended()
148 #define init_rwsem(sem) \
152 __init_rwsem((sem), #se
155 rwsem_is_locked(struct rw_semaphore *sem) rwsem_is_locked() argument
160 rwsem_is_contended(struct rw_semaphore *sem) rwsem_is_contended() argument
[all...]
H A Dpercpu-rwsem.h47 static inline void percpu_down_read(struct percpu_rw_semaphore *sem) in percpu_down_read() argument
51 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in percpu_down_read()
56 * cannot both change sem->state from readers_fast and start checking in percpu_down_read()
57 * counters while we are here. So if we see !sem->state, we know that in percpu_down_read()
62 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read()
63 this_cpu_inc(*sem->read_count); in percpu_down_read()
65 __percpu_down_read(sem, false); /* Unconditional memory barrier */ in percpu_down_read()
73 static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem) in percpu_down_read_trylock() argument
81 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read_trylock()
82 this_cpu_inc(*sem in percpu_down_read_trylock()
97 percpu_up_read(struct percpu_rw_semaphore *sem) percpu_up_read() argument
128 percpu_is_write_locked(struct percpu_rw_semaphore *sem) percpu_is_write_locked() argument
147 percpu_rwsem_release(struct percpu_rw_semaphore *sem, bool read, unsigned long ip) percpu_rwsem_release() argument
153 percpu_rwsem_acquire(struct percpu_rw_semaphore *sem, bool read, unsigned long ip) percpu_rwsem_acquire() argument
[all...]
H A Dtty_ldisc.h28 void __init_ldsem(struct ld_semaphore *sem, const char *name,
31 #define init_ldsem(sem) \
35 __init_ldsem((sem), #sem, &__key); \
39 int ldsem_down_read(struct ld_semaphore *sem, long timeout);
40 int ldsem_down_read_trylock(struct ld_semaphore *sem);
41 int ldsem_down_write(struct ld_semaphore *sem, long timeout);
42 int ldsem_down_write_trylock(struct ld_semaphore *sem);
43 void ldsem_up_read(struct ld_semaphore *sem);
44 void ldsem_up_write(struct ld_semaphore *sem);
[all...]
H A Dsemaphore.h37 static inline void sema_init(struct semaphore *sem, int val) in sema_init() argument
40 *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val); in sema_init()
41 lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0); in sema_init()
44 extern void down(struct semaphore *sem);
45 extern int __must_check down_interruptible(struct semaphore *sem);
46 extern int __must_check down_killable(struct semaphore *sem);
47 extern int __must_check down_trylock(struct semaphore *sem);
48 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
49 extern void up(struct semaphore *sem);
[all...]
/kernel/linux/linux-5.10/include/linux/
H A Drwsem.h57 static inline int rwsem_is_locked(struct rw_semaphore *sem) in rwsem_is_locked() argument
59 return atomic_long_read(&sem->count) != 0; in rwsem_is_locked()
101 extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
104 #define init_rwsem(sem) \
108 __init_rwsem((sem), #sem, &__key); \
117 static inline int rwsem_is_contended(struct rw_semaphore *sem) in rwsem_is_contended() argument
119 return !list_empty(&sem->wait_list); in rwsem_is_contended()
125 extern void down_read(struct rw_semaphore *sem);
126 extern int __must_check down_read_interruptible(struct rw_semaphore *sem);
[all...]
H A Dpercpu-rwsem.h47 static inline void percpu_down_read(struct percpu_rw_semaphore *sem) in percpu_down_read() argument
51 rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); in percpu_down_read()
56 * cannot both change sem->state from readers_fast and start checking in percpu_down_read()
57 * counters while we are here. So if we see !sem->state, we know that in percpu_down_read()
62 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read()
63 this_cpu_inc(*sem->read_count); in percpu_down_read()
65 __percpu_down_read(sem, false); /* Unconditional memory barrier */ in percpu_down_read()
73 static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem) in percpu_down_read_trylock() argument
81 if (likely(rcu_sync_is_idle(&sem->rss))) in percpu_down_read_trylock()
82 this_cpu_inc(*sem in percpu_down_read_trylock()
97 percpu_up_read(struct percpu_rw_semaphore *sem) percpu_up_read() argument
141 percpu_rwsem_release(struct percpu_rw_semaphore *sem, bool read, unsigned long ip) percpu_rwsem_release() argument
147 percpu_rwsem_acquire(struct percpu_rw_semaphore *sem, bool read, unsigned long ip) percpu_rwsem_acquire() argument
[all...]
H A Dtty_ldisc.h144 extern void __init_ldsem(struct ld_semaphore *sem, const char *name,
147 #define init_ldsem(sem) \
151 __init_ldsem((sem), #sem, &__key); \
155 extern int ldsem_down_read(struct ld_semaphore *sem, long timeout);
156 extern int ldsem_down_read_trylock(struct ld_semaphore *sem);
157 extern int ldsem_down_write(struct ld_semaphore *sem, long timeout);
158 extern int ldsem_down_write_trylock(struct ld_semaphore *sem);
159 extern void ldsem_up_read(struct ld_semaphore *sem);
160 extern void ldsem_up_write(struct ld_semaphore *sem);
[all...]
H A Dsemaphore.h31 static inline void sema_init(struct semaphore *sem, int val) in sema_init() argument
34 *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val); in sema_init()
35 lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0); in sema_init()
38 extern void down(struct semaphore *sem);
39 extern int __must_check down_interruptible(struct semaphore *sem);
40 extern int __must_check down_killable(struct semaphore *sem);
41 extern int __must_check down_trylock(struct semaphore *sem);
42 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
43 extern void up(struct semaphore *sem);
[all...]
/kernel/liteos_a/compat/posix/src/
H A Dsemaphore.c39 int sem_init(sem_t *sem, int shared, unsigned int value) in sem_init() argument
45 if ((sem == NULL) || (value > OS_SEM_COUNT_MAX)) { in sem_init()
55 sem->sem = GET_SEM(semHandle); in sem_init()
60 int sem_destroy(sem_t *sem) in sem_destroy() argument
64 if ((sem == NULL) || (sem->sem == NULL)) { in sem_destroy()
69 ret = LOS_SemDelete(sem->sem in sem_destroy()
77 sem_wait(sem_t *sem) sem_wait() argument
95 sem_trywait(sem_t *sem) sem_trywait() argument
115 sem_timedwait(sem_t *sem, const struct timespec *timeout) sem_timedwait() argument
139 sem_post(sem_t *sem) sem_post() argument
156 sem_getvalue(sem_t *sem, int *currVal) sem_getvalue() argument
181 sem_close(sem_t *sem) sem_close() argument
[all...]
/kernel/liteos_m/testsuites/unittest/xts/ipc/semaphone/
H A Dsem_xts_test.c53 sem_t sem; variable
57 ret = sem_init(&sem, 0, testValue);
60 ret = sem_getvalue(&sem, &semValue);
65 ret = sem_destroy(&sem);
78 sem_t sem; variable
82 ret = sem_init(&sem, 0, testValue);
85 ret = sem_getvalue(&sem, &semValue);
90 ret = sem_destroy(&sem);
103 sem_t sem; variable
107 ret = sem_init(&sem,
128 sem_t sem; global() variable
166 sem_t sem; global() variable
204 sem_t sem; global() variable
217 sem_t *sem = (sem_t*)arg; ThreadChatF01() local
236 sem_t sem; global() variable
272 sem_t *sem = (sem_t*)arg; ThreadSemTimedWait() local
302 sem_t sem; global() variable
334 sem_t *sem = (sem_t*)arg; ThreadNThreadWaitF01() local
349 sem_t *sem = (sem_t*)arg; ThreadNThreadWaitF02() local
379 sem_t sem; global() variable
[all...]
H A Dsem_test.c50 sem_t sem; variable
56 ret = sem_init((sem_t *)&sem, 0, testValue[0]);
59 ret = sem_destroy(&sem);
68 sem_t sem; variable
70 ret = sem_init((sem_t *)&sem, 0, 0);
73 ret = sem_post(&sem);
76 ret = sem_post(&sem);
79 ret = sem_post(&sem);
82 ret = sem_destroy(&sem);
90 sem_t sem; variable
112 sem_t *sem = (sem_t *)arg; ThreadChat() local
127 sem_t sem; global() variable
165 sem_t *sem = (sem_t *)arg; ThreadNThreadWait1() local
184 sem_t *sem = (sem_t *)arg; ThreadNThreadWait2() local
207 sem_t sem; global() variable
263 sem_t sem; global() variable
288 sem_t sem; global() variable
305 sem_t sem; global() variable
326 sem_t sem; global() variable
[all...]
H A Dsem_abn_test.c53 sem_t sem; variable
56 ret = sem_init(&sem, 0, SEM_VALUE_MAX);
59 ret = sem_getvalue(&sem, &semValue);
64 ret = sem_destroy(&sem);
77 sem_t sem; variable
80 ret = sem_init(&sem, 0, gtSemMax);
95 sem_t sem; variable
97 ret = sem_init(&sem, 0, 1); /* 1, common data for test, no special meaning */
100 ret = sem_destroy(&sem);
113 sem_t sem; variable
137 sem_t sem; global() variable
167 sem_t sem; global() variable
[all...]
/kernel/liteos_m/kal/posix/src/
H A Dsemaphore.c68 int sem_init(sem_t *sem, int shared, unsigned int value) in sem_init() argument
74 if ((sem == NULL) || (value >= OS_SEM_COUNTING_MAX_COUNT)) { in sem_init()
85 sem->s_magic = (INT32)_SEM_MAGIC; in sem_init()
86 sem->s_handle = (INT32)semHandle; in sem_init()
91 int sem_destroy(sem_t *sem) in sem_destroy() argument
95 if ((sem == NULL) || (sem->s_magic != (INT32)_SEM_MAGIC)) { in sem_destroy()
100 ret = LOS_SemDelete((UINT32)sem->s_handle); in sem_destroy()
109 int sem_wait(sem_t *sem) in sem_wait() argument
113 if ((sem in sem_wait()
127 sem_post(sem_t *sem) sem_post() argument
145 sem_trywait(sem_t *sem) sem_trywait() argument
163 sem_timedwait(sem_t *sem, const struct timespec *timeout) sem_timedwait() argument
192 sem_getvalue(sem_t *sem, int *currVal) sem_getvalue() argument
[all...]
/kernel/linux/linux-5.10/tools/perf/util/
H A Drwsem.c5 int init_rwsem(struct rw_semaphore *sem) in init_rwsem() argument
7 return pthread_rwlock_init(&sem->lock, NULL); in init_rwsem()
10 int exit_rwsem(struct rw_semaphore *sem) in exit_rwsem() argument
12 return pthread_rwlock_destroy(&sem->lock); in exit_rwsem()
15 int down_read(struct rw_semaphore *sem) in down_read() argument
17 return perf_singlethreaded ? 0 : pthread_rwlock_rdlock(&sem->lock); in down_read()
20 int up_read(struct rw_semaphore *sem) in up_read() argument
22 return perf_singlethreaded ? 0 : pthread_rwlock_unlock(&sem->lock); in up_read()
25 int down_write(struct rw_semaphore *sem) in down_write() argument
27 return perf_singlethreaded ? 0 : pthread_rwlock_wrlock(&sem in down_write()
30 up_write(struct rw_semaphore *sem) up_write() argument
[all...]
/kernel/linux/linux-6.6/tools/perf/util/
H A Drwsem.c5 int init_rwsem(struct rw_semaphore *sem) in init_rwsem() argument
7 return pthread_rwlock_init(&sem->lock, NULL); in init_rwsem()
10 int exit_rwsem(struct rw_semaphore *sem) in exit_rwsem() argument
12 return pthread_rwlock_destroy(&sem->lock); in exit_rwsem()
15 int down_read(struct rw_semaphore *sem) in down_read() argument
17 return perf_singlethreaded ? 0 : pthread_rwlock_rdlock(&sem->lock); in down_read()
20 int up_read(struct rw_semaphore *sem) in up_read() argument
22 return perf_singlethreaded ? 0 : pthread_rwlock_unlock(&sem->lock); in up_read()
25 int down_write(struct rw_semaphore *sem) in down_write() argument
27 return perf_singlethreaded ? 0 : pthread_rwlock_wrlock(&sem in down_write()
30 up_write(struct rw_semaphore *sem) up_write() argument
[all...]
/kernel/linux/linux-6.6/tools/include/linux/
H A Drwsem.h11 static inline int init_rwsem(struct rw_semaphore *sem) in init_rwsem() argument
13 return pthread_rwlock_init(&sem->lock, NULL); in init_rwsem()
16 static inline int exit_rwsem(struct rw_semaphore *sem) in exit_rwsem() argument
18 return pthread_rwlock_destroy(&sem->lock); in exit_rwsem()
21 static inline int down_read(struct rw_semaphore *sem) in down_read() argument
23 return pthread_rwlock_rdlock(&sem->lock); in down_read()
26 static inline int up_read(struct rw_semaphore *sem) in up_read() argument
28 return pthread_rwlock_unlock(&sem->lock); in up_read()
31 static inline int down_write(struct rw_semaphore *sem) in down_write() argument
33 return pthread_rwlock_wrlock(&sem in down_write()
36 up_write(struct rw_semaphore *sem) up_write() argument
[all...]
/kernel/liteos_m/testsuites/unittest/posix/src/semaphore/
H A Dsemaphore_func_test.c107 sem_t sem; variable
109 ICUNIT_ASSERT_EQUAL(sem_init((sem_t *)&sem, 0, 0), 0, 0);
113 if (sem_timedwait((sem_t *)&sem, &ts) == -1) {
125 ICUNIT_ASSERT_EQUAL(sem_destroy((sem_t *)&sem), 0, 0);
139 sem_t sem; variable
141 ICUNIT_ASSERT_EQUAL(sem_init((sem_t *)&sem, 0, 1), 0, 0);
146 int ret = sem_timedwait((sem_t *)&sem, &ts);
159 ret = sem_timedwait((sem_t *)&sem, &ts);
167 ICUNIT_ASSERT_EQUAL(sem_destroy((sem_t *)&sem), 0, 0);
180 sem_t sem; variable
225 sem_t sem; global() variable
239 sem_destroy(&sem); global() variable
[all...]

Completed in 15 milliseconds

12345678910>>...13