Home
last modified time | relevance | path

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

1234

/openbsd-src/lib/librthread/
H A Drthread_sem_compat.c57 _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 Drthread_sem.c58 _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 Dsem.c41 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 Dsem.h61 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 Dsem.t51 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 Dipcsysv.t34 # 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 Dsem.h37 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 Dsem.c37 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 Dsem_trywait.c11 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 DSemaphore.pm67 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 Dsem_wait.c25 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 Dsem_getvalue.c10 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 Dsem_timedwait.c28 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 Dsanitizer_mutex_test.cpp168 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 Dm32c.cpu5875 (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 Dwin32thread.h6 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 Dradeon_trace.h170 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 Dipcs.c656 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 D971104-1.c16 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 Damdgpu_reset.c152 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 Damdgpu_ras_eeprom.c268 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 Dsync.md47 [(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 Dsem.h1 /* $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 Diosf.c228 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 Ddwiic_acpi.c173 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()

1234