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