18 #pragma GCC system_header 19 #include_next <semaphore.h> 21 #ifndef _COBALT_SEMAPHORE_H 22 #define _COBALT_SEMAPHORE_H 24 #include <boilerplate/atomic.h> 25 #include <cobalt/wrappers.h> 26 #include <cobalt/uapi/sem.h> 32 COBALT_DECL(
int,
sem_init(sem_t *sem,
38 COBALT_DECL(
int,
sem_post(sem_t *sem));
40 COBALT_DECL(
int,
sem_wait(sem_t *sem));
43 const struct timespec *abs_timeout));
47 COBALT_DECL(
int, sem_getvalue(sem_t *sem,
int *value));
49 COBALT_DECL(sem_t *, sem_open(
const char *name,
int oflags, ...));
53 COBALT_DECL(
int,
sem_unlink(
const char *name));
55 int sem_init_np(sem_t *sem,
59 int sem_broadcast_np(sem_t *sem);
int sem_wait(sem_t *sem)
Decrement a semaphore.
Definition: semaphore.c:310
int sem_trywait(sem_t *sem)
Attempt to decrement a semaphore.
Definition: semaphore.c:247
int sem_unlink(const char *name)
Unlink a named semaphore.
Definition: semaphore.c:595
int sem_close(sem_t *sem)
Close a named semaphore.
Definition: semaphore.c:548
int sem_destroy(sem_t *sem)
Destroy an unnamed semaphore.
Definition: semaphore.c:139
int sem_init(sem_t *sem, int pshared, unsigned int value)
Initialize an unnamed semaphore.
Definition: semaphore.c:87
int sem_post(sem_t *sem)
Post a semaphore.
Definition: semaphore.c:185
int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout)
Attempt to decrement a semaphore with a time limit.
Definition: semaphore.c:365