lib/libc/gen/sem.c
107
static void sem_free(sem_t sem);
lib/libc/gen/sem.c
109
static LIST_HEAD(, sem) named_sems = LIST_HEAD_INITIALIZER(named_sems);
lib/libc/gen/sem.c
124
sem_check_validity(sem_t *sem)
lib/libc/gen/sem.c
127
if ((sem != NULL) && ((*sem)->magic == SEM_MAGIC))
lib/libc/gen/sem.c
136
sem_free(sem_t sem)
lib/libc/gen/sem.c
139
sem->magic = 0;
lib/libc/gen/sem.c
140
free(sem);
lib/libc/gen/sem.c
146
sem_t sem;
lib/libc/gen/sem.c
153
sem = (sem_t)malloc(sizeof(struct sem));
lib/libc/gen/sem.c
154
if (sem == NULL) {
lib/libc/gen/sem.c
159
sem->count = (u_int32_t)value;
lib/libc/gen/sem.c
160
sem->nwaiters = 0;
lib/libc/gen/sem.c
161
sem->magic = SEM_MAGIC;
lib/libc/gen/sem.c
162
sem->semid = semid;
lib/libc/gen/sem.c
163
sem->syssem = system_sem;
lib/libc/gen/sem.c
164
return (sem);
lib/libc/gen/sem.c
168
_libc_sem_init_compat(sem_t *sem, int pshared, unsigned int value)
lib/libc/gen/sem.c
182
*sem = sem_alloc(value, semid, pshared);
lib/libc/gen/sem.c
183
if ((*sem) == NULL) {
lib/libc/gen/sem.c
192
_libc_sem_destroy_compat(sem_t *sem)
lib/libc/gen/sem.c
196
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem.c
203
if ((*sem)->syssem != 0)
lib/libc/gen/sem.c
204
retval = ksem_destroy((*sem)->semid);
lib/libc/gen/sem.c
205
else if ((*sem)->nwaiters > 0) {
lib/libc/gen/sem.c
211
(*sem)->magic = 0;
lib/libc/gen/sem.c
215
sem_free(*sem);
lib/libc/gen/sem.c
222
sem_t *sem;
lib/libc/gen/sem.c
252
sem = s->backpointer;
lib/libc/gen/sem.c
254
return (sem);
lib/libc/gen/sem.c
257
sem = (sem_t *)malloc(sizeof(*sem));
lib/libc/gen/sem.c
258
if (sem == NULL)
lib/libc/gen/sem.c
260
*sem = sem_alloc(value, semid, 1);
lib/libc/gen/sem.c
261
if ((*sem) == NULL)
lib/libc/gen/sem.c
263
LIST_INSERT_HEAD(&named_sems, *sem, entry);
lib/libc/gen/sem.c
264
(*sem)->backpointer = sem;
lib/libc/gen/sem.c
266
return (sem);
lib/libc/gen/sem.c
270
if (sem != NULL) {
lib/libc/gen/sem.c
271
if (*sem != NULL)
lib/libc/gen/sem.c
272
sem_free(*sem);
lib/libc/gen/sem.c
275
free(sem);
lib/libc/gen/sem.c
283
_libc_sem_close_compat(sem_t *sem)
lib/libc/gen/sem.c
286
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem.c
289
if ((*sem)->syssem == 0) {
lib/libc/gen/sem.c
295
if (ksem_close((*sem)->semid) != 0) {
lib/libc/gen/sem.c
299
LIST_REMOVE((*sem), entry);
lib/libc/gen/sem.c
301
sem_free(*sem);
lib/libc/gen/sem.c
302
*sem = NULL;
lib/libc/gen/sem.c
303
free(sem);
lib/libc/gen/sem.c
356
sem_t *sem = arg;
lib/libc/gen/sem.c
358
atomic_add_int(&(*sem)->nwaiters, -1);
lib/libc/gen/sem.c
359
if ((*sem)->nwaiters && (*sem)->count)
lib/libc/gen/sem.c
360
_umtx_wake(&(*sem)->count);
lib/libc/gen/sem.c
364
_libc_sem_timedwait_compat(sem_t * __restrict sem,
lib/libc/gen/sem.c
369
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem.c
372
if ((*sem)->syssem != 0) {
lib/libc/gen/sem.c
374
retval = ksem_wait((*sem)->semid); /* XXX no timeout */
lib/libc/gen/sem.c
382
while ((val = (*sem)->count) > 0) {
lib/libc/gen/sem.c
383
if (atomic_cmpset_acq_int(&(*sem)->count, val, val - 1))
lib/libc/gen/sem.c
396
atomic_add_int(&(*sem)->nwaiters, 1);
lib/libc/gen/sem.c
397
pthread_cleanup_push(sem_cancel_handler, sem);
lib/libc/gen/sem.c
399
retval = _umtx_wait_uint(&(*sem)->count, 0, abstime);
lib/libc/gen/sem.c
402
atomic_add_int(&(*sem)->nwaiters, -1);
lib/libc/gen/sem.c
408
_libc_sem_wait_compat(sem_t *sem)
lib/libc/gen/sem.c
410
return _libc_sem_timedwait_compat(sem, NULL);
lib/libc/gen/sem.c
414
_libc_sem_trywait_compat(sem_t *sem)
lib/libc/gen/sem.c
418
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem.c
421
if ((*sem)->syssem != 0)
lib/libc/gen/sem.c
422
return ksem_trywait((*sem)->semid);
lib/libc/gen/sem.c
424
while ((val = (*sem)->count) > 0) {
lib/libc/gen/sem.c
425
if (atomic_cmpset_acq_int(&(*sem)->count, val, val - 1))
lib/libc/gen/sem.c
433
_libc_sem_post_compat(sem_t *sem)
lib/libc/gen/sem.c
436
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem.c
439
if ((*sem)->syssem != 0)
lib/libc/gen/sem.c
440
return ksem_post((*sem)->semid);
lib/libc/gen/sem.c
442
atomic_add_rel_int(&(*sem)->count, 1);
lib/libc/gen/sem.c
444
if ((*sem)->nwaiters)
lib/libc/gen/sem.c
445
return _umtx_wake(&(*sem)->count);
lib/libc/gen/sem.c
450
_libc_sem_getvalue_compat(sem_t * __restrict sem, int * __restrict sval)
lib/libc/gen/sem.c
454
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem.c
457
if ((*sem)->syssem != 0)
lib/libc/gen/sem.c
458
retval = ksem_getvalue((*sem)->semid, sval);
lib/libc/gen/sem.c
460
*sval = (int)(*sem)->count;
lib/libc/gen/sem.c
89
LIST_ENTRY(sem) entry;
lib/libc/gen/sem.c
90
struct sem **backpointer;
lib/libc/gen/sem.c
93
typedef struct sem* sem_t;
lib/libc/gen/sem_new.c
113
sem_check_validity(sem_t *sem)
lib/libc/gen/sem_new.c
116
if (sem->_magic == SEM_MAGIC)
lib/libc/gen/sem_new.c
123
_sem_init(sem_t *sem, int pshared, unsigned int value)
lib/libc/gen/sem_new.c
131
bzero(sem, sizeof(sem_t));
lib/libc/gen/sem_new.c
132
sem->_magic = SEM_MAGIC;
lib/libc/gen/sem_new.c
133
sem->_kern._count = (u_int32_t)value;
lib/libc/gen/sem_new.c
134
sem->_kern._flags = pshared ? USYNC_PROCESS_SHARED : 0;
lib/libc/gen/sem_new.c
145
sem_t *sem, tmp;
lib/libc/gen/sem_new.c
149
sem = NULL;
lib/libc/gen/sem_new.c
193
sem = ni->sem;
lib/libc/gen/sem_new.c
196
return (sem);
lib/libc/gen/sem_new.c
223
sem = mmap(NULL, sizeof(sem_t), PROT_READ | PROT_WRITE,
lib/libc/gen/sem_new.c
225
if (sem == MAP_FAILED) {
lib/libc/gen/sem_new.c
226
sem = NULL;
lib/libc/gen/sem_new.c
231
if (sem->_magic != SEM_MAGIC) {
lib/libc/gen/sem_new.c
236
ni->sem = sem;
lib/libc/gen/sem_new.c
242
return (sem);
lib/libc/gen/sem_new.c
248
if (sem != NULL)
lib/libc/gen/sem_new.c
249
munmap(sem, sizeof(sem_t));
lib/libc/gen/sem_new.c
257
_sem_close(sem_t *sem)
lib/libc/gen/sem_new.c
262
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem_new.c
265
if (!(sem->_kern._flags & SEM_NAMED)) {
lib/libc/gen/sem_new.c
274
if (sem == ni->sem) {
lib/libc/gen/sem_new.c
280
munmap(sem, sizeof(*sem));
lib/libc/gen/sem_new.c
311
_sem_destroy(sem_t *sem)
lib/libc/gen/sem_new.c
314
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem_new.c
317
if (sem->_kern._flags & SEM_NAMED) {
lib/libc/gen/sem_new.c
321
sem->_magic = 0;
lib/libc/gen/sem_new.c
326
_sem_getvalue(sem_t * __restrict sem, int * __restrict sval)
lib/libc/gen/sem_new.c
329
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem_new.c
332
*sval = (int)USEM_COUNT(sem->_kern._count);
lib/libc/gen/sem_new.c
337
usem_wake(struct _usem2 *sem)
lib/libc/gen/sem_new.c
340
return (_umtx_op(sem, UMTX_OP_SEM2_WAKE, 0, NULL, NULL));
lib/libc/gen/sem_new.c
344
usem_wait(struct _usem2 *sem, clockid_t clock_id, int flags,
lib/libc/gen/sem_new.c
365
retval = _umtx_op(sem, UMTX_OP_SEM2_WAIT, 0, (void *)tm_size, tm_p);
lib/libc/gen/sem_new.c
375
_sem_trywait(sem_t *sem)
lib/libc/gen/sem_new.c
379
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem_new.c
382
while (USEM_COUNT(val = sem->_kern._count) > 0) {
lib/libc/gen/sem_new.c
383
if (atomic_cmpset_acq_int(&sem->_kern._count, val, val - 1))
lib/libc/gen/sem_new.c
391
_sem_clockwait_np(sem_t * __restrict sem, clockid_t clock_id, int flags,
lib/libc/gen/sem_new.c
396
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem_new.c
402
while (USEM_COUNT(val = sem->_kern._count) > 0) {
lib/libc/gen/sem_new.c
403
if (atomic_cmpset_acq_int(&sem->_kern._count, val,
lib/libc/gen/sem_new.c
424
retval = usem_wait(&sem->_kern, clock_id, flags, rqtp, rmtp);
lib/libc/gen/sem_new.c
431
_sem_timedwait(sem_t * __restrict sem,
lib/libc/gen/sem_new.c
435
return (_sem_clockwait_np(sem, CLOCK_REALTIME, TIMER_ABSTIME, abstime,
lib/libc/gen/sem_new.c
440
_sem_wait(sem_t *sem)
lib/libc/gen/sem_new.c
443
return (_sem_timedwait(sem, NULL));
lib/libc/gen/sem_new.c
453
_sem_post(sem_t *sem)
lib/libc/gen/sem_new.c
457
if (sem_check_validity(sem) != 0)
lib/libc/gen/sem_new.c
461
count = sem->_kern._count;
lib/libc/gen/sem_new.c
466
} while (!atomic_cmpset_rel_int(&sem->_kern._count, count, count + 1));
lib/libc/gen/sem_new.c
468
usem_wake(&sem->_kern);
lib/libc/gen/sem_new.c
75
sem_t *sem;
lib/libprocstat/libprocstat.c
1081
struct semstat *sem, char *errbuf)
lib/libprocstat/libprocstat.c
1084
assert(sem);
lib/libprocstat/libprocstat.c
1086
return (procstat_get_sem_info_kvm(procstat->kd, fst, sem,
lib/libprocstat/libprocstat.c
1090
return (procstat_get_sem_info_sysctl(fst, sem, errbuf));
lib/libprocstat/libprocstat.c
1101
struct semstat *sem, char *errbuf)
lib/libprocstat/libprocstat.c
1109
assert(sem);
lib/libprocstat/libprocstat.c
1111
bzero(sem, sizeof(*sem));
lib/libprocstat/libprocstat.c
1120
sem->mode = S_IFREG | ksem.ks_mode;
lib/libprocstat/libprocstat.c
1121
sem->value = ksem.ks_value;
lib/libprocstat/libprocstat.c
1146
procstat_get_sem_info_sysctl(struct filestat *fst, struct semstat *sem,
lib/libprocstat/libprocstat.c
1151
assert(sem);
lib/libprocstat/libprocstat.c
1153
bzero(sem, sizeof(*sem));
lib/libprocstat/libprocstat.c
1157
sem->value = kif->kf_un.kf_sem.kf_sem_value;
lib/libprocstat/libprocstat.c
1158
sem->mode = kif->kf_un.kf_sem.kf_sem_mode;
lib/libprocstat/libprocstat.c
136
struct semstat *sem, char *errbuf);
lib/libprocstat/libprocstat.c
138
struct semstat *sem, char *errbuf);
lib/libprocstat/libprocstat.h
232
struct semstat *sem, char *errbuf);
lib/libprocstat/libprocstat_compat.c
149
struct semstat sem;
lib/libprocstat/libprocstat_compat.c
152
r = procstat_get_sem_info(procstat, fst, &sem, errbuf);
lib/libprocstat/libprocstat_compat.c
155
sem_compat->value = sem.value;
lib/libprocstat/libprocstat_compat.c
156
sem_compat->mode = sem.mode;
lib/libprocstat/libprocstat_compat.c
95
struct filestat *fst, struct freebsd11_semstat *sem, char *errbuf);
lib/libthr/thread/thr_sem.c
101
return _libc_sem_wait_compat(sem);
lib/libthr/thread/thr_sem.c
105
_sem_timedwait_compat(sem_t * __restrict sem,
lib/libthr/thread/thr_sem.c
108
return _libc_sem_timedwait_compat(sem, abstime);
lib/libthr/thread/thr_sem.c
112
_sem_post_compat(sem_t *sem)
lib/libthr/thread/thr_sem.c
114
return _libc_sem_post_compat(sem);
lib/libthr/thread/thr_sem.c
54
typedef struct sem *sem_t;
lib/libthr/thread/thr_sem.c
56
extern int _libc_sem_init_compat(sem_t *sem, int pshared, unsigned int value);
lib/libthr/thread/thr_sem.c
57
extern int _libc_sem_destroy_compat(sem_t *sem);
lib/libthr/thread/thr_sem.c
58
extern int _libc_sem_getvalue_compat(sem_t * __restrict sem, int * __restrict sval);
lib/libthr/thread/thr_sem.c
59
extern int _libc_sem_trywait_compat(sem_t *sem);
lib/libthr/thread/thr_sem.c
60
extern int _libc_sem_wait_compat(sem_t *sem);
lib/libthr/thread/thr_sem.c
61
extern int _libc_sem_timedwait_compat(sem_t * __restrict sem,
lib/libthr/thread/thr_sem.c
63
extern int _libc_sem_post_compat(sem_t *sem);
lib/libthr/thread/thr_sem.c
65
int _sem_init_compat(sem_t *sem, int pshared, unsigned int value);
lib/libthr/thread/thr_sem.c
66
int _sem_destroy_compat(sem_t *sem);
lib/libthr/thread/thr_sem.c
67
int _sem_getvalue_compat(sem_t * __restrict sem, int * __restrict sval);
lib/libthr/thread/thr_sem.c
68
int _sem_trywait_compat(sem_t *sem);
lib/libthr/thread/thr_sem.c
69
int _sem_wait_compat(sem_t *sem);
lib/libthr/thread/thr_sem.c
70
int _sem_timedwait_compat(sem_t * __restrict sem,
lib/libthr/thread/thr_sem.c
72
int _sem_post_compat(sem_t *sem);
lib/libthr/thread/thr_sem.c
75
_sem_init_compat(sem_t *sem, int pshared, unsigned int value)
lib/libthr/thread/thr_sem.c
77
return _libc_sem_init_compat(sem, pshared, value);
lib/libthr/thread/thr_sem.c
81
_sem_destroy_compat(sem_t *sem)
lib/libthr/thread/thr_sem.c
83
return _libc_sem_destroy_compat(sem);
lib/libthr/thread/thr_sem.c
87
_sem_getvalue_compat(sem_t * __restrict sem, int * __restrict sval)
lib/libthr/thread/thr_sem.c
89
return _libc_sem_getvalue_compat(sem, sval);
lib/libthr/thread/thr_sem.c
93
_sem_trywait_compat(sem_t *sem)
lib/libthr/thread/thr_sem.c
95
return _libc_sem_trywait_compat(sem);
lib/libthr/thread/thr_sem.c
99
_sem_wait_compat(sem_t *sem)
sys/cam/ctl/ctl_frontend_ioctl.c
488
cv_broadcast(¶ms->sem);
sys/cam/ctl/ctl_frontend_ioctl.c
502
cv_broadcast(¶ms->sem);
sys/cam/ctl/ctl_frontend_ioctl.c
515
cv_init(¶ms.sem, "ctlioccv");
sys/cam/ctl/ctl_frontend_ioctl.c
538
cv_wait(¶ms.sem, ¶ms.ioctl_mtx);
sys/cam/ctl/ctl_frontend_ioctl.c
581
cv_destroy(¶ms.sem);
sys/cam/ctl/ctl_frontend_ioctl.c
68
struct cv sem;
sys/compat/linuxkpi/common/include/linux/rwsem.h
53
#define down_write_nest_lock(sem, _rw) down_write(_rw)
sys/compat/linuxkpi/common/include/linux/semaphore.h
51
linux_sema_init(struct semaphore *sem, int val)
sys/compat/linuxkpi/common/include/linux/semaphore.h
54
memset(&sem->sema, 0, sizeof(sem->sema));
sys/compat/linuxkpi/common/include/linux/semaphore.h
55
sema_init(&sem->sema, val, "lnxsema");
sys/compat/linuxkpi/common/include/linux/semaphore.h
59
init_MUTEX(struct semaphore *sem)
sys/compat/linuxkpi/common/include/linux/semaphore.h
62
memset(&sem->sema, 0, sizeof(sem->sema));
sys/compat/linuxkpi/common/include/linux/semaphore.h
63
sema_init(&sem->sema, 1, "lnxsema");
sys/dev/mlx4/mlx4_core/mlx4_reset.c
104
sem = readl(reset + MLX4_SEM_OFFSET);
sys/dev/mlx4/mlx4_core/mlx4_reset.c
105
if (!sem)
sys/dev/mlx4/mlx4_core/mlx4_reset.c
111
if (sem) {
sys/dev/mlx4/mlx4_core/mlx4_reset.c
51
u32 sem;
sys/dev/mlx5/driver.h
344
struct semaphore sem;
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
1171
down(&cmd->sem);
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
1178
up(&cmd->sem);
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
1611
sema_init(&cmd->sem, cmd->max_reg_cmds);
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
826
struct semaphore *sem;
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
829
sem = &cmd->pages_sem;
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
831
sem = &cmd->sem;
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
874
up(sem);
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
884
struct semaphore *sem;
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
887
sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem;
sys/dev/mlx5/mlx5_core/mlx5_cmd.c
888
down(sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib.h
579
struct semaphore sem;
sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
2875
sema_init(&dev->umrc.sem, MAX_UMR_WR);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
1036
down(&umrc->sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
1039
up(&umrc->sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
1044
up(&umrc->sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
1103
down(&umrc->sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
1117
up(&umrc->sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
709
down(&umrc->sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
729
up(&umrc->sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
840
down(&umrc->sem);
sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
852
up(&umrc->sem);
sys/dev/ocs_fc/ocs_os.c
765
ocs_sem_init(ocs_sem_t *sem, int val, const char *name, ...)
sys/dev/ocs_fc/ocs_os.c
770
ocs_vsnprintf(sem->name, sizeof(sem->name), name, ap);
sys/dev/ocs_fc/ocs_os.c
773
sema_init(&sem->sem, val, sem->name);
sys/dev/ocs_fc/ocs_os.h
696
struct sema sem; /**< OS counting semaphore structure */
sys/dev/ocs_fc/ocs_os.h
714
extern int ocs_sem_init(ocs_sem_t *sem, int val, const char *name, ...) __printflike(3, 4);
sys/dev/ocs_fc/ocs_os.h
733
ocs_sem_p(ocs_sem_t *sem, int timeout_usec)
sys/dev/ocs_fc/ocs_os.h
738
rc = sema_trywait(&sem->sem);
sys/dev/ocs_fc/ocs_os.h
752
rc = sema_timedwait(&sem->sem, ticks);
sys/dev/ocs_fc/ocs_os.h
757
sema_wait(&sem->sem);
sys/dev/ocs_fc/ocs_os.h
777
ocs_sem_v(ocs_sem_t *sem)
sys/dev/ocs_fc/ocs_os.h
779
sema_post(&sem->sem);
sys/dev/ocs_fc/ocs_xport.c
47
ocs_sem_t sem;
sys/dev/ocs_fc/ocs_xport.c
668
ocs_sem_t *sem = arg;
sys/dev/ocs_fc/ocs_xport.c
671
ocs_assert(sem);
sys/dev/ocs_fc/ocs_xport.c
673
ocs_sem_v(sem);
sys/dev/ocs_fc/ocs_xport.c
700
ocs_sem_v(&payload->sem);
sys/dev/ocs_fc/ocs_xport.c
782
ocs_sem_t sem;
sys/dev/ocs_fc/ocs_xport.c
798
ocs_sem_init(&sem, 0, "domain_list_sem");
sys/dev/ocs_fc/ocs_xport.c
799
ocs_register_domain_list_empty_cb(ocs, ocs_xport_domain_list_empty_cb, &sem);
sys/dev/ocs_fc/ocs_xport.c
807
rc = ocs_sem_p(&sem, OCS_FC_DOMAIN_SHUTDOWN_TIMEOUT_USEC);
sys/dev/ocs_fc/ocs_xport.c
861
ocs_sem_init(&payload.sem, 0, "xport_post_node_Event");
sys/dev/ocs_fc/ocs_xport.c
873
if (ocs_sem_p(&payload.sem, OCS_SEM_FOREVER)) {
sys/kern/kern_umtx.c
3579
do_sem_wait(struct thread *td, struct _usem *sem, struct _umtx_time *timeout)
sys/kern/kern_umtx.c
3587
error = fueword32(&sem->_flags, &flags);
sys/kern/kern_umtx.c
3590
error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &uq->uq_key);
sys/kern/kern_umtx.c
3602
rv = casueword32(&sem->_has_waiters, 0, &count1, 1);
sys/kern/kern_umtx.c
3604
rv1 = fueword32(&sem->_count, &count);
sys/kern/kern_umtx.c
3607
rv = suword32(&sem->_has_waiters, 0);
sys/kern/kern_umtx.c
3651
do_sem_wake(struct thread *td, struct _usem *sem)
sys/kern/kern_umtx.c
3657
error = fueword32(&sem->_flags, &flags);
sys/kern/kern_umtx.c
3660
if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0)
sys/kern/kern_umtx.c
3673
error = suword32(&sem->_has_waiters, 0);
sys/kern/kern_umtx.c
3688
do_sem2_wait(struct thread *td, struct _usem2 *sem, struct _umtx_time *timeout)
sys/kern/kern_umtx.c
3696
flags = fuword32(&sem->_flags);
sys/kern/kern_umtx.c
3701
error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &uq->uq_key);
sys/kern/kern_umtx.c
3708
rv = fueword32(&sem->_count, &count);
sys/kern/kern_umtx.c
3728
rv = casueword32(&sem->_count, 0, &count, USEM_HAS_WAITERS);
sys/kern/kern_umtx.c
3773
do_sem2_wake(struct thread *td, struct _usem2 *sem)
sys/kern/kern_umtx.c
3779
rv = fueword32(&sem->_flags, &flags);
sys/kern/kern_umtx.c
3782
if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0)
sys/kern/kern_umtx.c
3794
rv = fueword32(&sem->_count, &count);
sys/kern/kern_umtx.c
3796
rv = casueword32(&sem->_count, count, &count,
sys/kern/sysv_sem.c
1065
sema[semid].u.__sem_base = &sem[semtot];
sys/kern/sysv_sem.c
1074
sema[semid].u.__sem_base, &sem[semtot]));
sys/kern/sysv_sem.c
1113
struct sem *semptr = NULL;
sys/kern/sysv_sem.c
118
static struct sem *sem; /* semaphore pool */
sys/kern/sysv_sem.c
279
sem = malloc(sizeof(struct sem) * seminfo.semmns, M_SEM, M_WAITOK);
sys/kern/sysv_sem.c
363
free(sem, M_SEM);
sys/kern/sysv_sem.c
561
KASSERT(semakptr->u.__sem_base - sem + semakptr->u.sem_nsems <= semtot,
sys/kern/sysv_sem.c
563
semidx, semakptr->u.__sem_base, sem, semakptr->u.sem_nsems,
sys/kern/sysv_sem.c
584
for (i = semakptr->u.__sem_base - sem + semakptr->u.sem_nsems;
sys/kern/sysv_sem.c
586
sem[i - semakptr->u.sem_nsems] = sem[i];
sys/kern/uipc_sem.c
1108
DECLARE_MODULE(sem, sem_mod, SI_SUB_SYSV_SEM, SI_ORDER_FIRST);
sys/kern/uipc_sem.c
1109
MODULE_VERSION(sem, 1);
sys/net/netmap.h
319
uint8_t __attribute__((__aligned__(NM_CACHE_ALIGN))) sem[128];
sys/net/netmap.h
321
uint8_t __declspec(align(NM_CACHE_ALIGN)) sem[128];
sys/sys/sem.h
36
struct sem *__sem_base; /* pointer to first semaphore in set */
sys/sys/sem.h
50
struct sem *__sem_base; /* pointer to first semaphore in set */
tests/sys/fs/fusefs/default_permissions.cc
1492
sem_t sem;
tests/sys/fs/fusefs/default_permissions.cc
1494
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/default_permissions.cc
1499
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/default_permissions.cc
1503
sem_wait(&sem);
tests/sys/fs/fusefs/default_permissions.cc
1504
sem_destroy(&sem);
tests/sys/fs/fusefs/destroy.cc
158
sem_t sem;
tests/sys/fs/fusefs/destroy.cc
161
sem_init(&sem, 0, 0);
tests/sys/fs/fusefs/destroy.cc
186
sem_post(&sem);
tests/sys/fs/fusefs/destroy.cc
200
sem_wait(&sem);
tests/sys/fs/fusefs/destroy.cc
209
sem_destroy(&sem);
tests/sys/fs/fusefs/forget.cc
65
sem_t sem;
tests/sys/fs/fusefs/forget.cc
67
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/forget.cc
79
expect_forget(ino, 3, &sem);
tests/sys/fs/fusefs/forget.cc
90
sem_wait(&sem);
tests/sys/fs/fusefs/forget.cc
91
sem_destroy(&sem);
tests/sys/fs/fusefs/getattr.cc
175
sem_t sem;
tests/sys/fs/fusefs/getattr.cc
177
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/getattr.cc
189
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/getattr.cc
194
sem_wait(&sem);
tests/sys/fs/fusefs/getattr.cc
195
sem_destroy(&sem);
tests/sys/fs/fusefs/getattr.cc
273
sem_t sem;
tests/sys/fs/fusefs/getattr.cc
275
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/getattr.cc
301
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/getattr.cc
306
sem_wait(&sem);
tests/sys/fs/fusefs/getattr.cc
307
sem_destroy(&sem);
tests/sys/fs/fusefs/last_local_modify.cc
110
sem_t *sem = (sem_t*) arg;
tests/sys/fs/fusefs/last_local_modify.cc
112
if (sem)
tests/sys/fs/fusefs/last_local_modify.cc
113
sem_wait(sem);
tests/sys/fs/fusefs/last_local_modify.cc
130
sem_t *sem = (sem_t*) arg;
tests/sys/fs/fusefs/last_local_modify.cc
135
if (sem)
tests/sys/fs/fusefs/last_local_modify.cc
136
sem_wait(sem);
tests/sys/fs/fusefs/last_local_modify.cc
152
sem_t *sem = (sem_t*) arg;
tests/sys/fs/fusefs/last_local_modify.cc
154
if (sem)
tests/sys/fs/fusefs/last_local_modify.cc
155
sem_wait(sem);
tests/sys/fs/fusefs/last_local_modify.cc
172
sem_t *sem = (sem_t*) arg;
tests/sys/fs/fusefs/last_local_modify.cc
175
if (sem)
tests/sys/fs/fusefs/last_local_modify.cc
176
sem_wait(sem);
tests/sys/fs/fusefs/last_local_modify.cc
227
static sem_t sem;
tests/sys/fs/fusefs/last_local_modify.cc
235
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/last_local_modify.cc
274
sem_post(&sem);
tests/sys/fs/fusefs/last_local_modify.cc
341
sem_wait(&sem);
tests/sys/fs/fusefs/last_local_modify.cc
381
static sem_t sem;
tests/sys/fs/fusefs/last_local_modify.cc
392
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/last_local_modify.cc
412
sem_post(&sem);
tests/sys/fs/fusefs/last_local_modify.cc
487
(void*)&sem)) << strerror(errno);
tests/sys/fs/fusefs/last_local_modify.cc
491
(void*)&sem)) << strerror(errno);
tests/sys/fs/fusefs/last_local_modify.cc
495
(void*)&sem)) << strerror(errno);
tests/sys/fs/fusefs/last_local_modify.cc
498
ASSERT_EQ(0, pthread_create(&th0, NULL, write_th, (void*)&sem))
tests/sys/fs/fusefs/mknod.cc
259
sem_t sem;
tests/sys/fs/fusefs/mknod.cc
264
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/mknod.cc
270
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/mknod.cc
281
sem_wait(&sem);
tests/sys/fs/fusefs/mknod.cc
282
sem_destroy(&sem);
tests/sys/fs/fusefs/open.cc
107
sem_t sem;
tests/sys/fs/fusefs/open.cc
109
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/open.cc
121
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/open.cc
126
sem_wait(&sem);
tests/sys/fs/fusefs/open.cc
127
sem_destroy(&sem);
tests/sys/fs/fusefs/opendir.cc
85
sem_t sem;
tests/sys/fs/fusefs/opendir.cc
87
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/opendir.cc
93
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/opendir.cc
98
sem_wait(&sem);
tests/sys/fs/fusefs/opendir.cc
99
sem_destroy(&sem);
tests/sys/fs/fusefs/read.cc
304
sem_t sem;
tests/sys/fs/fusefs/read.cc
306
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/read.cc
319
sem_post(&sem);
tests/sys/fs/fusefs/read.cc
331
sem_post(&sem);
tests/sys/fs/fusefs/read.cc
357
ASSERT_EQ(0, sem_wait(&sem)) << strerror(errno);
tests/sys/fs/fusefs/read.cc
358
ASSERT_EQ(0, sem_wait(&sem)) << strerror(errno);
tests/sys/fs/fusefs/rmdir.cc
111
sem_wait(&sem);
tests/sys/fs/fusefs/rmdir.cc
112
sem_destroy(&sem);
tests/sys/fs/fusefs/rmdir.cc
133
sem_t sem;
tests/sys/fs/fusefs/rmdir.cc
138
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/rmdir.cc
142
sem_wait(&sem);
tests/sys/fs/fusefs/rmdir.cc
143
sem_destroy(&sem);
tests/sys/fs/fusefs/rmdir.cc
150
sem_t sem;
tests/sys/fs/fusefs/rmdir.cc
153
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/rmdir.cc
157
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/rmdir.cc
160
sem_wait(&sem);
tests/sys/fs/fusefs/rmdir.cc
161
sem_destroy(&sem);
tests/sys/fs/fusefs/rmdir.cc
78
sem_t sem;
tests/sys/fs/fusefs/rmdir.cc
82
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/rmdir.cc
94
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/setattr.cc
777
sem_t sem;
tests/sys/fs/fusefs/setattr.cc
779
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/setattr.cc
802
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/setattr.cc
807
sem_wait(&sem);
tests/sys/fs/fusefs/setattr.cc
808
sem_destroy(&sem);
tests/sys/fs/fusefs/statfs.cc
101
sem_t sem;
tests/sys/fs/fusefs/statfs.cc
103
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/statfs.cc
111
sem_post(&sem);
tests/sys/fs/fusefs/statfs.cc
120
ASSERT_EQ(0, sem_wait(&sem)) << strerror(errno);
tests/sys/fs/fusefs/symlink.cc
178
sem_t sem;
tests/sys/fs/fusefs/symlink.cc
181
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/symlink.cc
187
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/symlink.cc
192
sem_wait(&sem);
tests/sys/fs/fusefs/symlink.cc
193
sem_destroy(&sem);
tests/sys/fs/fusefs/unlink.cc
198
sem_t sem;
tests/sys/fs/fusefs/unlink.cc
200
ASSERT_EQ(0, sem_init(&sem, 0, 0)) << strerror(errno);
tests/sys/fs/fusefs/unlink.cc
204
expect_forget(ino, 1, &sem);
tests/sys/fs/fusefs/unlink.cc
207
sem_wait(&sem);
tests/sys/fs/fusefs/unlink.cc
208
sem_destroy(&sem);
tests/sys/fs/fusefs/utils.cc
250
FuseTest::expect_forget(uint64_t ino, uint64_t nlookup, sem_t *sem)
tests/sys/fs/fusefs/utils.cc
260
if (sem != NULL)
tests/sys/fs/fusefs/utils.cc
261
sem_post(sem);
tests/sys/fs/fusefs/utils.cc
585
sem_t *sem;
tests/sys/fs/fusefs/utils.cc
598
sem = (sem_t*)mmap(NULL, sizeof(*sem), mprot, mflags, -1, 0);
tests/sys/fs/fusefs/utils.cc
599
ASSERT_NE(MAP_FAILED, sem) << strerror(errno);
tests/sys/fs/fusefs/utils.cc
600
ASSERT_EQ(0, sem_init(sem, 1, 0)) << strerror(errno);
tests/sys/fs/fusefs/utils.cc
606
if (sem_wait(sem)) {
tests/sys/fs/fusefs/utils.cc
625
sem_destroy(sem);
tests/sys/fs/fusefs/utils.cc
636
ASSERT_EQ(0, sem_post(sem)) << strerror(errno);
tests/sys/fs/fusefs/utils.cc
642
munmap(sem, sizeof(*sem));
tests/sys/fs/fusefs/utils.hh
144
void expect_forget(uint64_t ino, uint64_t nlookup, sem_t *sem = NULL);
tests/sys/netmap/ctrl-api-test.c
1368
if (ctx->sem) {
tests/sys/netmap/ctrl-api-test.c
1369
sem_post(ctx->sem);
tests/sys/netmap/ctrl-api-test.c
1605
sem_t sem;
tests/sys/netmap/ctrl-api-test.c
1620
ret = sem_init(&sem, 0, 0);
tests/sys/netmap/ctrl-api-test.c
1625
ctx->sem = &sem;
tests/sys/netmap/ctrl-api-test.c
1652
ret = sem_timedwait(&sem, &to);
tests/sys/netmap/ctrl-api-test.c
1672
sem_destroy(&sem);
tests/sys/netmap/ctrl-api-test.c
1673
ctx->sem = NULL;
tests/sys/netmap/ctrl-api-test.c
168
sem_t *sem; /* for thread synchronization */
tests/sys/netmap/ctrl-api-test.c
2028
ckroff(sem, 128);
tools/regression/pthread/unwind/sem_wait_cancel.cpp
10
static sem_t sem;
tools/regression/pthread/unwind/sem_wait_cancel.cpp
17
sem_wait(&sem);
tools/regression/pthread/unwind/sem_wait_cancel.cpp
27
sem_init(&sem, 0, 0);
tools/test/stress2/testcases/lockf/lockf.c
136
int sem = 0;
tools/test/stress2/testcases/lockf/lockf.c
145
if (write(fd, &sem, sizeof(sem)) != sizeof(sem))
tools/test/stress2/testcases/lockf/lockf.c
50
int r, sem;
tools/test/stress2/testcases/lockf/lockf.c
59
r = read(fd, &sem, sizeof(sem));
tools/test/stress2/testcases/lockf/lockf.c
64
if (r != sizeof(sem))
tools/test/stress2/testcases/lockf/lockf.c
70
return (sem);
tools/test/stress2/testcases/lockf/lockf.c
75
int r, sem;
tools/test/stress2/testcases/lockf/lockf.c
82
if (read(fd, &sem, sizeof(sem)) != sizeof(sem))
tools/test/stress2/testcases/lockf/lockf.c
86
sem++;
tools/test/stress2/testcases/lockf/lockf.c
87
if (write(fd, &sem, sizeof(sem)) != sizeof(sem))
tools/tools/netmap/lb.c
1007
struct morefrag *mf = (struct morefrag *)rxring->sem;
tools/tools/netmap/lb.c
519
struct morefrag *mf = (struct morefrag *)ring->sem;
tools/tools/netmap/lb.c
831
mf = (struct morefrag *)p->ring->sem;
tools/tools/netmap/lb.c
890
struct morefrag *mf = (struct morefrag *)rxring->sem;
tools/tools/netmap/lb.c
980
mf = (struct morefrag *)ring->sem;
usr.bin/fstat/fstat.c
522
struct semstat sem;
usr.bin/fstat/fstat.c
527
error = procstat_get_sem_info(procstat, fst, &sem, errbuf);
usr.bin/fstat/fstat.c
534
(void)snprintf(mode, sizeof(mode), "%o", sem.mode);
usr.bin/fstat/fstat.c
537
strmode(sem.mode, mode);
usr.bin/fstat/fstat.c
539
printf(" %10s %6u", mode, sem.value);