#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
type sem_t

constant SEM_FAILED

function int sem_close (sem_t*)
function int sem_destroy (sem_t*)
function int sem_getvalue (sem_t*, int*)
function int sem_init (sem_t*, int, unsigned int)
function {sem_t*} sem_open (const char*, int, ...)
function int sem_post (sem_t*)
# if !defined POSIX && !defined UNIX98
function int sem_timedwait (sem_t*, const struct timespec*)
# endif
function int sem_trywait (sem_t*)
function int sem_unlink (const char*)
function int sem_wait (sem_t*)

allow-header fcntl.h
# if !defined POSIX2008 && !defined XOPEN2K8
allow-header sys/types.h
# endif
// Consider addition of this permission in POSIX.1:2008 as a bug fix,
// so allow for POSIX.1:2001 as well since that includes sem_timedwait.
# if !defined POSIX && !defined UNIX98
allow-header time.h
# endif

allow sem_*
allow SEM_*
allow *_t
#endif
