Symbol: ksem
sys/kern/uipc_sem.c
104
static LIST_HEAD(, ksem) *ksem_pshared_hashtab __cacheline_aligned;
sys/kern/uipc_sem.c
323
ksem_remove_pshared(ksem_t *ksem)
sys/kern/uipc_sem.c
326
LIST_REMOVE(ksem, ks_entry);
sys/kern/uipc_sem.c
334
ksem_t *ksem = NULL;
sys/kern/uipc_sem.c
338
LIST_FOREACH(ksem, &ksem_pshared_hashtab[bucket], ks_entry) {
sys/kern/uipc_sem.c
339
if (ksem->ks_pshared_id == id) {
sys/kern/uipc_sem.c
340
mutex_enter(&ksem->ks_lock);
sys/kern/uipc_sem.c
341
if (ksem->ks_pshared_proc == NULL) {
sys/kern/uipc_sem.c
346
mutex_exit(&ksem->ks_lock);
sys/kern/uipc_sem.c
349
ksem->ks_ref++;
sys/kern/uipc_sem.c
350
KASSERT(ksem->ks_ref != 0);
sys/kern/uipc_sem.c
351
return ksem;
sys/kern/uipc_sem.c
362
ksem_t *ksem = ksem_lookup_pshared_locked(id);
sys/kern/uipc_sem.c
364
return ksem;
sys/kern/uipc_sem.c
368
ksem_alloc_pshared_id(ksem_t *ksem)
sys/kern/uipc_sem.c
373
KASSERT(ksem->ks_pshared_proc != NULL);
sys/kern/uipc_sem.c
386
ksem->ks_pshared_id = try;
sys/kern/uipc_sem.c
387
u_long bucket = KSEM_PSHARED_HASH(ksem->ks_pshared_id);
sys/kern/uipc_sem.c
388
LIST_INSERT_HEAD(&ksem_pshared_hashtab[bucket], ksem, ks_entry);
sys/kern/uipc_sem.c
518
ksem_release(ksem_t *ksem, int fd)
sys/kern/uipc_sem.c
522
KASSERT(mutex_owned(&ksem->ks_lock));
sys/kern/uipc_sem.c
524
KASSERT(ksem->ks_ref > 0);
sys/kern/uipc_sem.c
525
if (--ksem->ks_ref == 0) {
sys/kern/uipc_sem.c
530
destroy = (ksem->ks_flags & KS_UNLINKED) ||
sys/kern/uipc_sem.c
531
(ksem->ks_name == NULL);
sys/kern/uipc_sem.c
533
mutex_exit(&ksem->ks_lock);
sys/kern/uipc_sem.c
536
ksem_free(ksem);
sys/kern/uipc_sem.c
92
MODULE(MODULE_CLASS_MISC, ksem, NULL);
sys/kern/uipc_sem.c
99
static LIST_HEAD(,ksem) ksem_head __cacheline_aligned;
sys/sys/file.h
123
struct ksem *fd_ks; // DTYPE_SEM
sys/sys/ksem.h
54
LIST_ENTRY(ksem) ks_entry; /* global list entry */
tests/kernel/t_ksem.c
111
intptr_t ksem, ksem1;
tests/kernel/t_ksem.c
115
ATF_REQUIRE_EQ(_ksem_open("/ksem_b", O_CREAT | O_EXCL, 0644, 0, &ksem),
tests/kernel/t_ksem.c
119
ATF_REQUIRE(_ksem_getvalue(ksem, &val) == 0 && val == 0);
tests/kernel/t_ksem.c
127
ATF_REQUIRE_EQ(_ksem_close(ksem), 0);
tests/kernel/t_ksem.c
55
intptr_t ksem;
tests/kernel/t_ksem.c
58
ksem = 0;
tests/kernel/t_ksem.c
59
ATF_REQUIRE_EQ(_ksem_init(0, &ksem), 0);
tests/kernel/t_ksem.c
60
ATF_REQUIRE(_ksem_close(ksem) == -1 && errno == EINVAL);
tests/kernel/t_ksem.c
61
ATF_REQUIRE_EQ(_ksem_destroy(ksem), 0);
tests/kernel/t_ksem.c
72
intptr_t ksem;
tests/kernel/t_ksem.c
75
ksem = KSEM_PSHARED;
tests/kernel/t_ksem.c
76
ATF_REQUIRE_EQ(_ksem_init(0, &ksem), 0);
tests/kernel/t_ksem.c
77
ATF_REQUIRE(_ksem_close(ksem) == -1 && errno == EINVAL);
tests/kernel/t_ksem.c
78
ATF_REQUIRE_EQ(_ksem_destroy(ksem), 0);
tests/kernel/t_ksem.c
89
intptr_t ksem;
tests/kernel/t_ksem.c
92
ATF_REQUIRE_EQ(_ksem_open("/ksem_x", O_CREAT | O_EXCL, 0644, 0, &ksem),
tests/kernel/t_ksem.c
94
ATF_REQUIRE(_ksem_destroy(ksem) == -1 && errno == EINVAL);
tests/kernel/t_ksem.c
95
ATF_REQUIRE_EQ(_ksem_close(ksem), 0);