Home
last modified time | relevance | path

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

1234567

/kernel/linux/linux-5.10/kernel/locking/
Drwsem.c105 # define DEBUG_RWSEMS_WARN_ON(c, sem) do { \ argument
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) argument
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->owner, 0); in rwsem_clear_owner()
[all …]
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->dep_map, name, key, 0); in __percpu_init_rwsem()
31 void percpu_free_rwsem(struct percpu_rw_semaphore *sem) in percpu_free_rwsem() argument
[all …]
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);
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->count--; in down()
61 __down(sem); in down()
[all …]
/kernel/linux/linux-5.10/drivers/tty/
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
85 adjust = sem->wait_readers * (LDSEM_ACTIVE_BIAS - LDSEM_WAIT_BIAS); in __ldsem_wake_readers()
[all …]
/kernel/liteos_a/compat/posix/src/
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->semID); in sem_destroy()
77 int sem_wait(sem_t *sem) in sem_wait() argument
81 if ((sem == NULL) || (sem->sem == NULL)) { in sem_wait()
86 ret = LOS_SemPend(sem->sem->semID, LOS_WAIT_FOREVER); in sem_wait()
95 int sem_trywait(sem_t *sem) in sem_trywait() argument
[all …]
/kernel/linux/linux-5.10/include/linux/
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) \ argument
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);
127 extern int __must_check down_read_killable(struct rw_semaphore *sem);
[all …]
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()
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->read_count); in percpu_down_read_trylock()
84 ret = __percpu_down_read(sem, true); /* Unconditional memory barrier */ in percpu_down_read_trylock()
92 rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_); in percpu_down_read_trylock()
[all …]
Dtty_ldisc.h144 extern void __init_ldsem(struct ld_semaphore *sem, const char *name,
147 #define init_ldsem(sem) \ argument
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);
163 extern int ldsem_down_read_nested(struct ld_semaphore *sem, int subclass,
[all …]
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);
/kernel/liteos_m/testsuites/unittest/xts/ipc/semaphone/
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, 0, testValue);
[all …]
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
[all …]
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
[all …]
/kernel/liteos_m/kal/posix/src/
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 == NULL) || (sem->s_magic != (INT32)_SEM_MAGIC)) { in sem_wait()
118 ret = LOS_SemPend((UINT32)sem->s_handle, LOS_WAIT_FOREVER); in sem_wait()
[all …]
/kernel/linux/linux-5.10/tools/perf/util/
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->lock); in down_write()
[all …]
Drwsem.h10 int init_rwsem(struct rw_semaphore *sem);
11 int exit_rwsem(struct rw_semaphore *sem);
13 int down_read(struct rw_semaphore *sem);
14 int up_read(struct rw_semaphore *sem);
16 int down_write(struct rw_semaphore *sem);
17 int up_write(struct rw_semaphore *sem);
/kernel/linux/linux-5.10/arch/ia64/include/uapi/asm/
Dintrinsics.h40 #define IA64_FETCHADD(tmp,v,n,sz,sem) \ argument
44 tmp = ia64_fetchadd4_##sem((unsigned int *) v, n); \
48 tmp = ia64_fetchadd8_##sem((unsigned long *) v, n); \
56 #define ia64_fetchadd(i,v,sem) \ argument
62 IA64_FETCHADD(_tmp, _v, -16, sizeof(*(v)), sem); \
64 IA64_FETCHADD(_tmp, _v, -8, sizeof(*(v)), sem); \
66 IA64_FETCHADD(_tmp, _v, -4, sizeof(*(v)), sem); \
68 IA64_FETCHADD(_tmp, _v, -1, sizeof(*(v)), sem); \
70 IA64_FETCHADD(_tmp, _v, 1, sizeof(*(v)), sem); \
72 IA64_FETCHADD(_tmp, _v, 4, sizeof(*(v)), sem); \
[all …]
/kernel/liteos_m/testsuites/unittest/posix/src/semaphore/
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
[all …]
/kernel/liteos_m/testsuites/unittest/fuzz/src/semaphore/
Dsem_timedwait_fuzz.c54 sem_t sem; in SemTimedWaitFuzzTest() local
68 (void)memset_s(&sem, sizeof(sem), 0, sizeof(sem_t)); in SemTimedWaitFuzzTest()
71 sem_init(&sem, pshared, value); in SemTimedWaitFuzzTest()
72 sem_post(&sem); in SemTimedWaitFuzzTest()
73 sem_wait(&sem); in SemTimedWaitFuzzTest()
74 sem_post(&sem); in SemTimedWaitFuzzTest()
75 sem_post(&sem); in SemTimedWaitFuzzTest()
77 sem_timedwait(&sem, &absTimeout); in SemTimedWaitFuzzTest()
/kernel/liteos_a/testsuites/kernel/sample/posix/mutex/full/
DIt_posix_mutex_059.c46 sem_t sem; in Testcase() local
55 ret = sem_init(&sem, pshared, 2); // 2, The initial number of available semaphores. in Testcase()
58 ret = sem_wait(&sem); in Testcase()
70 ret = sem.sem->semCount; in Testcase()
73 ret = sem_wait(&sem); in Testcase()
76 ret = sem_post(&sem); in Testcase()
79 ret = sem_wait(&sem); in Testcase()
85 ret = sem_destroy(&sem); in Testcase()
/kernel/liteos_m/kal/libc/newlib/porting/include/
Dsemaphore.h49 int sem_init(sem_t *sem, int shared, unsigned value);
50 int sem_destroy(sem_t *sem);
51 int sem_wait(sem_t *sem);
52 int sem_trywait(sem_t *sem);
53 int sem_post(sem_t *sem);
54 int sem_timedwait(sem_t *__restrict sem, const struct timespec *__restrict timeout);
55 int sem_getvalue(sem_t *__restrict sem, int *__restrict currVal);
/kernel/liteos_m/components/net/lwip-2.1/porting/src/
Dsys_arch.c288 err_t sys_sem_new(sys_sem_t *sem, u8_t count) in sys_sem_new() argument
290 if (sem == NULL) { in sys_sem_new()
295 UINT32 ret = LOS_SemCreate(count, (UINT32 *)(sem)); in sys_sem_new()
303 void sys_sem_signal(sys_sem_t *sem) in sys_sem_signal() argument
305 if (sem == NULL) { in sys_sem_signal()
309 (void)LOS_SemPost(*sem); in sys_sem_signal()
312 u32_t sys_arch_sem_wait(sys_sem_t *sem, u32_t timeoutMs) in sys_arch_sem_wait() argument
314 if (sem == NULL) { in sys_arch_sem_wait()
320 …UINT32 ret = LOS_SemPend(*sem, tick ? (UINT32)tick : LOS_WAIT_FOREVER); // timeoutMs 0 means wait … in sys_arch_sem_wait()
333 void sys_sem_free(sys_sem_t *sem) in sys_sem_free() argument
[all …]
/kernel/uniproton/src/net/lwip-2.1/src/
Dsys_arch.c276 err_t sys_sem_new(sys_sem_t *sem, u8_t count) in sys_sem_new() argument
278 if (sem == NULL) { in sys_sem_new()
283 U32 ret = PRT_SemCreate((U32)count, (SemHandle*)sem); in sys_sem_new()
291 void sys_sem_signal(sys_sem_t *sem) in sys_sem_signal() argument
293 if (sem == NULL) { in sys_sem_signal()
297 (void)PRT_SemPost((SemHandle)(*sem)); in sys_sem_signal()
300 u32_t sys_arch_sem_wait(sys_sem_t *sem, u32_t timeoutMs) in sys_arch_sem_wait() argument
302 if (sem == NULL) { in sys_arch_sem_wait()
307 U32 ret = PRT_SemPend((SemHandle)(*sem), tick ? (U32)tick : OS_WAIT_FOREVER); in sys_arch_sem_wait()
320 void sys_sem_free(sys_sem_t *sem) in sys_sem_free() argument
[all …]
/kernel/liteos_a/testsuites/kernel/sample/kernel_base/ipc/
DMakefile9 -I $(LITEOSTESTTOPDIR)/kernel/sample/kernel_base/ipc/sem \
14 SRC_MODULES := sem event queue mux rwlock
17 SMP_MODULES := sem/smp event/smp queue/smp mux/smp rwlock/smp
21 LLT_MODULES := sem/llt event/llt queue/llt mux/llt
25 PRESSURE_MODULES := sem/pressure event/pressure queue/pressure mux/pressure
29 SMOKE_MODULES := sem/smoke event/smoke queue/smoke mux/smoke rwlock/smoke
33 FULL_MODULES := sem/full event/full queue/full mux/full
37 MANUAL_MODULES := sem/manual event/manual queue/manual
41 MANUAL_MODULES :=sem/manual event/manual queue/manual mux/manual
/kernel/linux/linux-5.10/tools/power/acpi/os_specific/service_layers/
Dosunixxf.c630 sem_t *sem; in acpi_os_create_semaphore() local
643 sem = in acpi_os_create_semaphore()
646 if (!sem) { in acpi_os_create_semaphore()
653 sem = acpi_os_allocate(sizeof(sem_t)); in acpi_os_create_semaphore()
654 if (!sem) { in acpi_os_create_semaphore()
658 if (sem_init(sem, 0, initial_units) == -1) { in acpi_os_create_semaphore()
659 acpi_os_free(sem); in acpi_os_create_semaphore()
664 *out_handle = (acpi_handle)sem; in acpi_os_create_semaphore()
682 sem_t *sem = (sem_t *) handle; in acpi_os_delete_semaphore() local
684 if (!sem) { in acpi_os_delete_semaphore()
[all …]
/kernel/liteos_m/testsuites/sample/posix/mutex/
DIt_posix_mutex_017.c39 sem_t sem; in Testcase() local
48 ret = sem_init(&sem, pshared, 2); // 2, The initial number of available semaphores. in Testcase()
51 ret = sem_wait(&sem); in Testcase()
63 ret = sem_wait(&sem); in Testcase()
66 ret = sem_post(&sem); in Testcase()
69 ret = sem_wait(&sem); in Testcase()
75 ret = sem_destroy(&sem); in Testcase()

1234567