1 #ifndef _SEMAPHORE_H 2 #define _SEMAPHORE_H 3 #ifdef __cplusplus 4 extern "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 17 typedef struct { 18 volatile int __val[4*sizeof(long)/sizeof(int)]; 19 } sem_t; 20 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 *); 31 32 #if _REDIR_TIME64 33 __REDIR(sem_timedwait, __sem_timedwait_time64); 34 #endif 35 36 #ifdef __cplusplus 37 } 38 #endif 39 #endif 40