| _KSEM(2) | System Calls Manual | _KSEM(2) | 
_ksem, _ksem_init,
  _ksem_open, _ksem_close,
  _ksem_unlink, _ksem_destroy,
  _ksem_getvalue, _ksem_post,
  _ksem_wait, _ksem_timedwait,
  _ksem_trywait —
#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);
_ksem_*() family of system calls provide the kernel
  implementation of POSIX semaphores.
_ksem_*() system calls return a
  value of zero. Otherwise, -1 is returned and errno is
  set to provide more information.
_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 |