use alt signal stack when present for implementation-internal signals
[musl.git] / include / semaphore.h
blob3690f49609d16026db882032ec7d7e2363e5eaa0
1 #ifndef _SEMAPHORE_H
2 #define _SEMAPHORE_H
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
7 #include <features.h>
9 #define __NEED_time_t
10 #define __NEED_struct_timespec
11 #include <bits/alltypes.h>
13 #include <fcntl.h>
15 #define SEM_FAILED ((sem_t *)0)
17 typedef struct {
18 volatile int __val[4*sizeof(long)/sizeof(int)];
19 } sem_t;
21 int sem_close(sem_t *);
22 int sem_destroy(sem_t *);
23 int sem_getvalue(sem_t *__restrict, int *__restrict);
24 int sem_init(sem_t *, int, unsigned);
25 sem_t *sem_open(const char *, int, ...);
26 int sem_post(sem_t *);
27 int sem_timedwait(sem_t *__restrict, const struct timespec *__restrict);
28 int sem_trywait(sem_t *);
29 int sem_unlink(const char *);
30 int sem_wait(sem_t *);
32 #if _REDIR_TIME64
33 __REDIR(sem_timedwait, __sem_timedwait_time64);
34 #endif
36 #ifdef __cplusplus
38 #endif
39 #endif