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