-/*
- * Flag values accessible to open(2) and fcntl(2)-- copied from
- * <sys/file.h>. (The first three can only be set by open.)
- */
-#define O_RDONLY 000 /* open for reading */
-#define O_WRONLY 001 /* open for writing */
-#define O_RDWR 002 /* open for read & write */
-#define O_NDELAY FNDELAY /* non-blocking open */
- /* really non-blocking I/O for fcntl */
-#define O_APPEND FAPPEND /* append on each write */
-#define O_CREAT FCREAT /* open with file create */
-#define O_TRUNC FTRUNC /* open with truncation */
-#define O_EXCL FEXCL /* error on create if file exists */
-
-#ifndef F_DUPFD
-/* fcntl(2) requests */
-#define F_DUPFD 0 /* Duplicate fildes */
-#define F_GETFD 1 /* Get fildes flags */
-#define F_SETFD 2 /* Set fildes flags */
-#define F_GETFL 3 /* Get file flags */
-#define F_SETFL 4 /* Set file flags */
-#define F_GETOWN 5 /* Get owner */
-#define F_SETOWN 6 /* Set owner */
-
-/* flags for F_GETFL, F_SETFL-- copied from <sys/file.h> */
-#define FNDELAY 00004 /* non-blocking reads */
-#define FAPPEND 00010 /* append on each write */
-#define FASYNC 00100 /* signal pgrp when data ready */
-#define FCREAT 01000 /* create if nonexistant */
-#define FTRUNC 02000 /* truncate to zero length */
-#define FEXCL 04000 /* error if already created */
+#ifndef F_DUPFD
+
+/* command values for fcntl(2) */
+#define F_DUPFD 0 /* duplicate file descriptor */
+#define F_GETFD 1 /* get file descriptor flags */
+#define F_SETFD 2 /* set file descriptor flags */
+#define F_GETFL 3 /* get file status flags */
+#define F_SETFL 4 /* set file status flags */
+#ifndef _POSIX_SOURCE
+#define F_GETOWN 5 /* get SIGIO/SIGURG proc/pgrp */
+#define F_SETOWN 6 /* set SIGIO/SIGURG proc/pgrp */
+#endif
+#define F_GETLK 7 /* get record locking information */
+#define F_SETLK 8 /* set record locking information */
+#define F_SETLKW 9 /* F_SETLK; wait if blocked */
+
+/* file descriptor flags (F_GETFD, F_SETFD) */
+#define FD_CLOEXEC 1 /* close-on-exec flag */
+
+/* record locking flags (F_GETLK, F_SETLK, F_SETLKW) */
+#define F_RDLCK 1 /* shared or read lock */
+#define F_UNLCK 2 /* unlock */
+#define F_WRLCK 3 /* exclusive or write lock */
+
+#ifndef _POSIX_SOURCE
+/* lock operations for flock(2) */
+#define LOCK_SH 0x01 /* shared file lock */
+#define LOCK_EX 0x02 /* exclusive file lock */
+#define LOCK_NB 0x04 /* don't block when locking */
+#define LOCK_UN 0x08 /* unlock file */