| /openbsd-src/lib/librthread/ |
| H A D | rthread_sem_compat.c | 57 _sem_wait(sem_t sem, int can_eintr, const struct timespec *abstime, in _sem_wait() argument 60 void *ident = (void *)&sem->waitcount; in _sem_wait() 63 if (sem->shared) in _sem_wait() 66 _spinlock(&sem->lock); in _sem_wait() 67 if (sem->value) { in _sem_wait() 68 sem->value--; in _sem_wait() 71 sem->waitcount++; in _sem_wait() 74 &sem->lock, delayed_cancel); in _sem_wait() 75 _spinlock(&sem->lock); in _sem_wait() 80 } while (r == 0 && sem->value == 0); in _sem_wait() [all …]
|
| H A D | rthread_sem.c | 58 _sem_wait(sem_t sem, int can_eintr, const struct timespec *abstime, in _sem_wait() argument 64 atomic_inc_int(&sem->waitcount); in _sem_wait() 66 while ((val = sem->value) > 0) { in _sem_wait() 67 if (atomic_cas_uint(&sem->value, val, val - 1) == val) { in _sem_wait() 69 atomic_dec_int(&sem->waitcount); in _sem_wait() 76 error = _twait(&sem->value, 0, CLOCK_REALTIME, abstime); in _sem_wait() 82 atomic_dec_int(&sem->waitcount); in _sem_wait() 89 _sem_post(sem_t sem) in _sem_post() argument 92 atomic_inc_int(&sem->value); in _sem_post() 93 _wake(&sem->value, 1); in _sem_post() [all …]
|
| /openbsd-src/gnu/gcc/libgomp/config/posix/ |
| H A D | sem.c | 41 void gomp_sem_init (gomp_sem_t *sem, int value) in gomp_sem_init() argument 45 ret = pthread_mutex_init (&sem->mutex, NULL); in gomp_sem_init() 49 ret = pthread_cond_init (&sem->cond, NULL); in gomp_sem_init() 53 sem->value = value; in gomp_sem_init() 56 void gomp_sem_wait (gomp_sem_t *sem) in gomp_sem_wait() argument 60 ret = pthread_mutex_lock (&sem->mutex); in gomp_sem_wait() 64 if (sem->value > 0) in gomp_sem_wait() 66 sem->value--; in gomp_sem_wait() 67 ret = pthread_mutex_unlock (&sem->mutex); in gomp_sem_wait() 71 while (sem->value <= 0) in gomp_sem_wait() [all …]
|
| H A D | sem.h | 61 extern void gomp_sem_init (gomp_sem_t *sem, int value); 63 extern void gomp_sem_wait (gomp_sem_t *sem); 65 extern void gomp_sem_post (gomp_sem_t *sem); 67 extern void gomp_sem_destroy (gomp_sem_t *sem); 73 static inline void gomp_sem_init (gomp_sem_t *sem, int value) in gomp_sem_init() argument 75 sem_init (sem, 0, value); in gomp_sem_init() 78 extern void gomp_sem_wait (gomp_sem_t *sem); 80 static inline void gomp_sem_post (gomp_sem_t *sem) in gomp_sem_post() argument 82 sem_post (sem); in gomp_sem_post() 85 static inline void gomp_sem_destroy (gomp_sem_t *sem) in gomp_sem_destroy() argument [all …]
|
| /openbsd-src/gnu/usr.bin/perl/cpan/IPC-SysV/t/ |
| H A D | sem.t | 51 my $sem = sub { 60 unless (defined $sem) { 75 ok(my $st = $sem->stat,'stat it'); 77 ok($sem->setall((0) x $nsem), 'set all'); 79 my @sem = $sem->getall; 80 cmp_ok(join("", @sem), 'eq', "00000", 'get all'); 82 $sem[2] = 1; 83 ok($sem->setall(@sem), 'set after change'); 85 @sem = $sem->getall; 86 cmp_ok(join("", @sem), 'eq', "00100", 'get again'); [all …]
|
| H A D | ipcsysv.t | 34 # Later the sem* tests will import more for themselves. 217 my $sem; 229 $sem = catchsig(sub { semget(IPC_PRIVATE, $nsem, $perm | IPC_CREAT) }); 232 unless (defined $sem && $sem >= 0) { 236 pass('sem acquire'); 239 ok(semctl($sem, 0, IPC_STAT, $data), 'sem data call'); 241 cmp_ok(length($data), '>', 0, 'sem data len'); 243 ok(semctl($sem, 0, SETALL, pack("s$N*", (0) x $nsem)), 'set all sems'); 246 ok(semctl($sem, 0, GETALL, $data), 'get all sems'); 260 ok(semctl($sem, 0, SETALL, pack("s$N*", @data)), 'poke it'); [all …]
|
| /openbsd-src/gnu/gcc/libgomp/config/linux/ |
| H A D | sem.h | 37 static inline void gomp_sem_init (gomp_sem_t *sem, int value) in gomp_sem_init() argument 39 *sem = value; in gomp_sem_init() 43 static inline void gomp_sem_wait (gomp_sem_t *sem) in gomp_sem_wait() argument 45 if (!__sync_bool_compare_and_swap (sem, 1, 0)) in gomp_sem_wait() 46 gomp_sem_wait_slow (sem); in gomp_sem_wait() 50 static inline void gomp_sem_post (gomp_sem_t *sem) in gomp_sem_post() argument 52 if (!__sync_bool_compare_and_swap (sem, 0, 1)) in gomp_sem_post() 53 gomp_sem_post_slow (sem); in gomp_sem_post() 56 static inline void gomp_sem_destroy (gomp_sem_t *sem) in gomp_sem_destroy() argument
|
| H A D | sem.c | 37 gomp_sem_wait_slow (gomp_sem_t *sem) in gomp_sem_wait_slow() argument 41 int val = __sync_val_compare_and_swap (sem, 0, -1); in gomp_sem_wait_slow() 44 if (__sync_bool_compare_and_swap (sem, val, val - 1)) in gomp_sem_wait_slow() 47 futex_wait (sem, -1); in gomp_sem_wait_slow() 52 gomp_sem_post_slow (gomp_sem_t *sem) in gomp_sem_post_slow() argument 54 int old, tmp = *sem, wake; in gomp_sem_post_slow() 60 tmp = __sync_val_compare_and_swap (sem, old, wake); in gomp_sem_post_slow() 64 futex_wake (sem, wake); in gomp_sem_post_slow()
|
| /openbsd-src/regress/lib/libpthread/semaphore/sem_trywait/ |
| H A D | sem_trywait.c | 11 sem_t sem; variable 18 CHECKn(sem_trywait(&sem)); in main() 21 CHECKr(sem_init(&sem, 0, 0)); in main() 23 CHECKn(sem_trywait(&sem)); in main() 26 CHECKr(sem_post(&sem)); in main() 27 CHECKr(sem_trywait(&sem)); in main() 29 CHECKe(sem_getvalue(&sem, &val)); in main() 32 CHECKe(sem_destroy(&sem)); in main()
|
| /openbsd-src/gnu/usr.bin/perl/cpan/IPC-SysV/lib/IPC/ |
| H A D | Semaphore.pm | 67 my $sem = shift; 68 my $v = semctl($$self,$sem,GETNCNT,0); 75 my $sem = shift; 76 my $v = semctl($$self,$sem,GETZCNT,0); 83 my $sem = shift; 84 my $v = semctl($$self,$sem,GETVAL,0); 91 my $sem = shift; 92 my $v = semctl($$self,$sem,GETPID,0); 150 my $sem = shift; 152 semctl($$self,$sem,SETVAL,$val);
|
| /openbsd-src/regress/lib/libpthread/semaphore/sem_wait/ |
| H A D | sem_wait.c | 25 sem_t sem; variable 34 CHECKn(sem_wait(&sem)); in main() 37 CHECKr(sem_init(&sem, 0, 0)); in main() 39 CHECKr(pthread_create(&th, NULL, waiter, &sem)); in main() 44 CHECKn(sem_destroy(&sem)); in main() 48 CHECKr(sem_post(&sem)); in main() 59 CHECKr(pthread_create(&th, NULL, waiter, &sem)); in main() 68 CHECKr(sem_post(&sem)); in main() 71 CHECKe(sem_destroy(&sem)); in main()
|
| /openbsd-src/regress/lib/libpthread/semaphore/sem_getvalue/ |
| H A D | sem_getvalue.c | 10 sem_t sem; variable 17 CHECKr(sem_init(&sem, 0, 0)); in main() 18 CHECKe(sem_getvalue(&sem, &val)); in main() 21 CHECKr(sem_post(&sem)); in main() 22 CHECKe(sem_getvalue(&sem, &val)); in main() 25 CHECKe(sem_destroy(&sem)); in main()
|
| /openbsd-src/regress/lib/libpthread/semaphore/sem_timedwait/ |
| H A D | sem_timedwait.c | 28 sem_t sem; variable 43 CHECKn(sem_timedwait(&sem, &ts)); in main() 46 CHECKr(sem_init(&sem, 0, 0)); in main() 48 CHECKr(pthread_create(&th, NULL, waiter, &sem)); in main() 53 CHECKn(sem_destroy(&sem)); in main() 57 CHECKr(sem_post(&sem)); in main() 68 CHECKr(pthread_create(&th, NULL, waiter, &sem)); in main() 77 CHECKr(sem_post(&sem)); in main() 82 CHECKn(sem_timedwait(&sem, &ts)); in main() 105 CHECKe(sem_destroy(&sem)); in main()
|
| /openbsd-src/gnu/llvm/compiler-rt/lib/sanitizer_common/tests/ |
| H A D | sanitizer_mutex_test.cpp | 168 Semaphore *sem; member 174 data->sem->Wait(); in SemaphoreThread() 180 Semaphore sem; in TEST() local 181 sem.Post(1); in TEST() 182 sem.Wait(); in TEST() 183 sem.Post(3); in TEST() 184 sem.Wait(); in TEST() 185 sem.Wait(); in TEST() 186 sem.Wait(); in TEST() 188 SemaphoreData data = {&sem, false}; in TEST() [all …]
|
| /openbsd-src/gnu/usr.bin/binutils-2.17/cpu/ |
| H A D | m32c.cpu | 5875 (define-pmacro (unary-insn-defn-g mach group mode wstr op encoding sem opg) 5881 (sem mode (.sym dst mach - group - mode)) 5885 (define-pmacro (unary-insn-defn mach group mode wstr op encoding sem) 5886 (unary-insn-defn-g mach group mode wstr op encoding sem "") 5890 (define-pmacro (unary16-defn-g mode wstr wbit op opc1 opc2 opc3 sem opg) 5893 sem opg) 5895 (define-pmacro (unary16-defn mode wstr wbit op opc1 opc2 opc3 sem) 5896 (unary-16-defn-g mode wstr wbit op opc1 opc2 opc3 sem "") 5899 (define-pmacro (unary32-defn-g mode wstr wbit op opc1 opc2 opc3 sem opg) 5906 ; sem) [all …]
|
| /openbsd-src/gnu/usr.bin/perl/win32/ |
| H A D | win32thread.h | 6 typedef struct win32_cond { LONG waiters; HANDLE sem; } perl_cond; member 58 (c)->sem = Win_CreateSemaphore(NULL,0,LONG_MAX,NULL); \ 59 if ((c)->sem == NULL) \ 66 ReleaseSemaphore((c)->sem,1,NULL) == 0) \ 73 ReleaseSemaphore((c)->sem,(c)->waiters,NULL) == 0) \ 84 if (WaitForSingleObject((c)->sem,INFINITE)==WAIT_FAILED)\ 94 if (CloseHandle((c)->sem) == 0) \
|
| /openbsd-src/sys/dev/pci/drm/radeon/ |
| H A D | radeon_trace.h | 170 TP_PROTO(int ring, struct radeon_semaphore *sem), 172 TP_ARGS(ring, sem), 182 __entry->waiters = sem->waiters; 183 __entry->gpu_addr = sem->gpu_addr; 192 TP_PROTO(int ring, struct radeon_semaphore *sem), 194 TP_ARGS(ring, sem) 199 TP_PROTO(int ring, struct radeon_semaphore *sem), 201 TP_ARGS(ring, sem)
|
| /openbsd-src/usr.bin/ipcs/ |
| H A D | ipcs.c | 656 struct semid_ds sem, **sema; in ipcs_kvm() local 842 if (kvm_read(kd, (u_long)sema[i], &sem, in ipcs_kvm() 843 sizeof(sem)) != sizeof(sem)) in ipcs_kvm() 846 show_seminfo(sem.sem_otime, in ipcs_kvm() 847 sem.sem_ctime, in ipcs_kvm() 848 IXSEQ_TO_IPCID(i, sem.sem_perm), in ipcs_kvm() 849 sem.sem_perm.key, in ipcs_kvm() 850 sem.sem_perm.mode, in ipcs_kvm() 851 sem.sem_perm.uid, in ipcs_kvm() 852 sem.sem_perm.gid, in ipcs_kvm() [all …]
|
| /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/gcc.dg/noncompile/ |
| H A D | 971104-1.c | 16 static void up(int sem){ in up() argument 18 sb.sem_num = (unsigned short) sem; in up()
|
| /openbsd-src/sys/dev/pci/drm/amd/amdgpu/ |
| H A D | amdgpu_reset.c | 152 rw_init(&reset_domain->sem, "agrs"); in amdgpu_reset_create_reset_domain() 160 down_write(&reset_domain->sem); in amdgpu_device_lock_reset_domain() 167 up_write(&reset_domain->sem); in amdgpu_device_unlock_reset_domain()
|
| H A D | amdgpu_ras_eeprom.c | 268 down_read(&adev->reset_domain->sem); in __write_table_header() 273 up_read(&adev->reset_domain->sem); in __write_table_header() 329 down_read(&adev->reset_domain->sem); in __write_table_ras_info() 334 up_read(&adev->reset_domain->sem); in __write_table_ras_info() 581 down_read(&adev->reset_domain->sem); in __amdgpu_ras_eeprom_write() 587 up_read(&adev->reset_domain->sem); in __amdgpu_ras_eeprom_write() 757 down_read(&adev->reset_domain->sem); in amdgpu_ras_eeprom_update_header() 762 up_read(&adev->reset_domain->sem); in amdgpu_ras_eeprom_update_header() 867 down_read(&adev->reset_domain->sem); in __amdgpu_ras_eeprom_read() 873 up_read(&adev->reset_domain->sem); in __amdgpu_ras_eeprom_read()
|
| /openbsd-src/gnu/gcc/gcc/config/ia64/ |
| H A D | sync.md | 47 [(set_attr "itanium_class" "sem")]) 149 [(set_attr "itanium_class" "sem")]) 161 [(set_attr "itanium_class" "sem")]) 170 [(set_attr "itanium_class" "sem")])
|
| /openbsd-src/sys/sys/ |
| H A D | sem.h | 1 /* $OpenBSD: sem.h,v 1.26 2024/10/26 05:39:03 jsg Exp $ */ 2 /* $NetBSD: sem.h,v 1.8 1996/02/09 18:25:29 christos Exp $ */ 5 * SVID compatible sem.h file 19 /* sem-specific sysctl variables corresponding to members of struct seminfo */ 46 struct sem { struct 55 struct sem *sem_base; /* pointer to first semaphore in set */ 47 semvalsem global() argument 48 sempidsem global() argument 49 semncntsem global() argument 50 semzcntsem global() argument
|
| /openbsd-src/sys/dev/ic/ |
| H A D | iosf.c | 228 uint32_t sem; in iosf_mbi_sem_get() local 230 sem = iosf_mbi_mdr_read(mbi, in iosf_mbi_sem_get() 233 return (ISSET(sem, IOSF_PUNIT_SEM_BIT)); in iosf_mbi_sem_get()
|
| /openbsd-src/sys/dev/acpi/ |
| H A D | dwiic_acpi.c | 173 uint64_t sem; in dwiic_acpi_attach() local 235 "_SEM", 0, NULL, &sem)) in dwiic_acpi_attach() 236 sem = 0; in dwiic_acpi_attach() 238 if (sem) in dwiic_acpi_attach() 255 if (sem) { in dwiic_acpi_attach()
|