1#ifndef _SEMAPHORE_H 2#define _SEMAPHORE_H 3#ifdef __cplusplus 4extern "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 17typedef struct { 18 volatile int __val[4*sizeof(long)/sizeof(int)]; 19} sem_t; 20 21int sem_close(sem_t *); 22int sem_destroy(sem_t *); 23int sem_getvalue(sem_t *__restrict, int *__restrict); 24int sem_init(sem_t *, int, unsigned); 25sem_t *sem_open(const char *, int, ...); 26int sem_post(sem_t *); 27int sem_timedwait(sem_t *__restrict, const struct timespec *__restrict); 28int sem_trywait(sem_t *); 29int sem_unlink(const char *); 30int 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