/kernel/linux/linux-5.10/kernel/locking/ |
D | rwsem.c | 105 # 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 …]
|
D | percpu-rwsem.c | 12 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 …]
|
D | semaphore.c | 36 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/ |
D | tty_ldsem.c | 57 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/ |
D | semaphore.c | 39 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/ |
D | rwsem.h | 57 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 …]
|
D | percpu-rwsem.h | 47 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 …]
|
D | tty_ldisc.h | 144 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 …]
|
D | semaphore.h | 31 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/ |
D | sem_xts_test.c | 53 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 …]
|
D | sem_test.c | 50 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 …]
|
D | sem_abn_test.c | 53 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/ |
D | semaphore.c | 68 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/ |
D | rwsem.c | 5 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 …]
|
D | rwsem.h | 10 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/ |
D | intrinsics.h | 40 #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/ |
D | semaphore_func_test.c | 107 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/ |
D | sem_timedwait_fuzz.c | 54 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/ |
D | It_posix_mutex_059.c | 46 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/ |
D | semaphore.h | 49 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/ |
D | sys_arch.c | 288 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/ |
D | sys_arch.c | 276 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/ |
D | Makefile | 9 -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/ |
D | osunixxf.c | 630 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/ |
D | It_posix_mutex_017.c | 39 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()
|