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