1#pragma once 2 3#ifdef __cplusplus 4extern "C" { 5#endif 6 7#include <features.h> 8 9#define __NEED_sem_t 10#define __NEED_time_t 11#define __NEED_struct_timespec 12#include <bits/alltypes.h> 13 14#include <fcntl.h> 15 16#define SEM_FAILED ((sem_t*)0) 17 18int sem_close(sem_t*); 19int sem_destroy(sem_t*); 20int sem_getvalue(sem_t* __restrict, int* __restrict); 21int sem_init(sem_t*, int, unsigned); 22sem_t* sem_open(const char*, int, ...); 23int sem_post(sem_t*); 24int sem_timedwait(sem_t* __restrict, const struct timespec* __restrict); 25int sem_trywait(sem_t*); 26int sem_unlink(const char*); 27int sem_wait(sem_t*); 28 29#ifdef __cplusplus 30} 31#endif 32