xref: /third_party/musl/include/semaphore.h (revision 570af302)
1#ifndef _SEMAPHORE_H
2#define _SEMAPHORE_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7#include <features.h>
8
9#define __NEED_time_t
10#define __NEED_struct_timespec
11#include <bits/alltypes.h>
12
13#include <fcntl.h>
14
15#define SEM_FAILED ((sem_t *)0)
16
17typedef struct {
18	volatile int __val[4*sizeof(long)/sizeof(int)];
19} sem_t;
20
21int    sem_close(sem_t *);
22int    sem_destroy(sem_t *);
23int    sem_getvalue(sem_t *__restrict, int *__restrict);
24int    sem_init(sem_t *, int, unsigned);
25sem_t *sem_open(const char *, int, ...);
26int    sem_post(sem_t *);
27int    sem_timedwait(sem_t *__restrict, const struct timespec *__restrict);
28int    sem_trywait(sem_t *);
29int    sem_unlink(const char *);
30int    sem_wait(sem_t *);
31
32#if _REDIR_TIME64
33__REDIR(sem_timedwait, __sem_timedwait_time64);
34#endif
35
36#ifdef __cplusplus
37}
38#endif
39#endif
40