_KSEM(2) | System Calls Manual | _KSEM(2)

# NAME

`_ksem`, `_ksem_init`, `_ksem_open`, `_ksem_close`, `_ksem_unlink`, `_ksem_destroy`, `_ksem_getvalue`, `_ksem_post`, `_ksem_wait`, `_ksem_timedwait`, `_ksem_trywait` —
back-end implementation for POSIX semaphores

# SYNOPSIS

`#include <sys/ksem.h>`

int
`_ksem_init`(int value, intptr_t *idp);

int
`_ksem_open`(const char *name, int oflag, mode_t mode, unsigned int value, intptr_t *idp);

int
`_ksem_close`(intptr_t id);

int
`_ksem_unlink`(const char *name);

int
`_ksem_destroy`(intptr_t id);

int
`_ksem_getvalue`(intptr_t id, unsigned int *value);

int
`_ksem_post`(intptr_t id);

int
`_ksem_wait`(intptr_t id);

int
`_ksem_timedwait`(intptr_t id, const struct timespec *abstime);

int
`_ksem_trywait`(intptr_t id);

# DESCRIPTION

The `_ksem_*`() family of system calls provide the kernel implementation of POSIX semaphores.

# RETURN VALUES

Successful calls to the `_ksem_*`() system calls return a value of zero. Otherwise, -1 is returned and errno is set to provide more information.

# ERRORS

Please see the section 3 manual pages for specific error information.

# SEE ALSO

sem_close(3), sem_destroy(3), sem_getvalue(3), sem_init(3), sem_open(3), sem_post(3), sem_unlink(3), sem_wait(3), sem(4)

# HISTORY

Most of the `_ksem_*`() system calls first appeared in NetBSD 2.0. The `_ksem_timedwait`() system call first appeared in NetBSD 5.0.

November 30, 2015 | NetBSD 9.3