#if !defined ISO && !defined ISO99 && !defined ISO11
constant F_DUPFD
constant F_GETFD
constant F_SETFD
constant F_GETFL
constant F_SETFL
constant F_GETLK
constant F_SETLK
constant F_SETLKW
#if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
constant F_GETOWN
constant F_SETOWN
#endif

constant FD_CLOEXEC

constant F_RDLCK
constant F_UNLCK
constant F_WRLCK

#if defined POSIX
allow SEEK_SET
allow SEEK_CUR
allow SEEK_END
#else
constant SEEK_SET
constant SEEK_CUR
constant SEEK_END
#endif

constant O_CREAT
constant O_EXCL
constant O_NOCTTY
constant O_TRUNC

constant O_APPEND
constant O_NONBLOCK
constant O_SYNC
#if !defined XPG3 && !defined XPG4
constant O_DSYNC
constant O_RSYNC
#endif

constant O_ACCMODE

constant O_RDONLY
constant O_RDWR
constant O_WRONLY

#if !defined POSIX
constant S_IFMT
constant S_IFBLK
constant S_IFCHR
constant S_IFIFO
constant S_IFREG
constant S_IFDIR
constant S_IFLNK
constant S_IFSOCK

constant S_IRWXU
constant S_IRUSR
constant S_IWUSR
constant S_IXUSR
constant S_IRWXG
constant S_IRGRP
constant S_IWGRP
constant S_IXGRP
constant S_IRWXO
constant S_IROTH
constant S_IWOTH
constant S_IXOTH
constant S_ISUID
constant S_ISGID
#if !defined POSIX2008
constant S_ISVTX
#endif
#endif

#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
constant POSIX_FADV_NORMAL
constant POSIX_FADV_SEQUENTIAL
constant POSIX_FADV_RANDOM
constant POSIX_FADV_WILLNEED
constant POSIX_FADV_DONTNEED
constant POSIX_FADV_NOREUSE
#endif

type {struct flock}

element {struct flock} short l_type
element {struct flock} short l_whence
element {struct flock} off_t l_start
element {struct flock} off_t l_len
element {struct flock} pid_t l_pid

#if !defined POSIX
# if !defined UNIX98
type mode_t
# endif
type off_t
type pid_t
#endif

function int creat (const char*, mode_t)
function int fcntl (int, int, ...)
function int open (const char*, int, ...)
#if defined XOPEN2K8 || defined POSIX2008
function int openat (int, const char*, int, ...)
#endif
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int posix_fadvise (int, off_t, off_t, int)
function int posix_fallocate (int, off_t, off_t)
#endif

#if defined XOPEN2K8 || defined POSIX2008
constant O_TTY_INIT
constant O_CLOEXEC
constant O_EXEC
constant O_SEARCH
constant O_DIRECTORY
constant O_NOFOLLOW
constant F_DUPFD_CLOEXEC
constant AT_FDCWD
constant AT_EACCESS
constant AT_SYMLINK_NOFOLLOW
constant AT_SYMLINK_FOLLOW
constant AT_REMOVEDIR

function int openat(int, const char*, int, ...)
#endif

#if !defined POSIX
allow-header sys/stat.h
allow-header unistd.h
#endif

allow l_*
allow F_*
allow O_*
allow S_*
allow *_t
#endif
