summaryrefslogtreecommitdiffstats
path: root/sys/sys
diff options
context:
space:
mode:
authormike <mike@FreeBSD.org>2002-09-17 22:22:50 +0000
committermike <mike@FreeBSD.org>2002-09-17 22:22:50 +0000
commit65b2813872da16eda1767b5afd5d8cc233c9babc (patch)
treed34394a3d29fa896c46ce64f855696985ee2329e /sys/sys
parent494e59ef36b7b311f00285ac94cd6e7c2e7d8f9d (diff)
downloadFreeBSD-src-65b2813872da16eda1767b5afd5d8cc233c9babc.zip
FreeBSD-src-65b2813872da16eda1767b5afd5d8cc233c9babc.tar.gz
o Add typedefs for mode_t, off_t, pid_t rather than including
<sys/types.h>. o Use the relatively new visibility primitives for conditionals. o Make O_SYNC an alias for O_FSYNC. o Mark the F* names as deprecated. o Add some comments to note missing POSIX requirements or options.
Diffstat (limited to 'sys/sys')
-rw-r--r--sys/sys/fcntl.h50
1 files changed, 37 insertions, 13 deletions
diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h
index 30f9a09..83e09ef 100644
--- a/sys/sys/fcntl.h
+++ b/sys/sys/fcntl.h
@@ -48,8 +48,22 @@
* related kernel definitions.
*/
-#ifndef _KERNEL
-#include <sys/types.h>
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+#ifndef _MODE_T_DECLARED
+typedef __mode_t mode_t;
+#define _MODE_T_DECLARED
+#endif
+
+#ifndef _OFF_T_DECLARED
+typedef __off_t off_t;
+#define _OFF_T_DECLARED
+#endif
+
+#ifndef _PID_T_DECLARED
+typedef __pid_t pid_t;
+#define _PID_T_DECLARED
#endif
/*
@@ -73,17 +87,20 @@
* FREAD and FWRITE are excluded from the #ifdef _KERNEL so that TIOCFLUSH,
* which was documented to use FREAD/FWRITE, continues to work.
*/
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
#define FREAD 0x0001
#define FWRITE 0x0002
#endif
#define O_NONBLOCK 0x0004 /* no delay */
#define O_APPEND 0x0008 /* set append mode */
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
#define O_SHLOCK 0x0010 /* open with shared file lock */
#define O_EXLOCK 0x0020 /* open with exclusive file lock */
#define O_ASYNC 0x0040 /* signal pgrp when data ready */
#define O_FSYNC 0x0080 /* synchronous writes */
+#endif
+#define O_SYNC 0x0080 /* POSIX synonym for O_FSYNC */
+#if __BSD_VISIBLE
#define O_NOFOLLOW 0x0100 /* don't follow symlinks */
#endif
#define O_CREAT 0x0200 /* create if nonexistent */
@@ -99,8 +116,14 @@
/* Defined by POSIX 1003.1; BSD default, but must be distinct from O_RDONLY. */
#define O_NOCTTY 0x8000 /* don't assign controlling terminal */
+#if __BSD_VISIBLE
/* Attempt to bypass buffer cache */
#define O_DIRECT 0x00010000
+#endif
+
+/*
+ * XXX missing O_DSYNC, O_RSYNC.
+ */
#ifdef _KERNEL
/* convert from open() flags to/from fflags; convert O_RD/WR to FREAD/FWRITE */
@@ -116,9 +139,9 @@
/*
* The O_* flags used to have only F* names, which were used in the kernel
* and by fcntl. We retain the F* names for the kernel f_flag field
- * and for backward compatibility for fcntl.
+ * and for backward compatibility for fcntl. These flags are deprecated.
*/
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
#define FAPPEND O_APPEND /* kernel/compat */
#define FASYNC O_ASYNC /* kernel/compat */
#define FFSYNC O_FSYNC /* kernel */
@@ -133,7 +156,7 @@
* initial open syscall. Those bits can thus be given a
* different meaning for fcntl(2).
*/
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
/*
* Set by shm_open(3) to get automatic MAP_ASYNC behavior
@@ -153,7 +176,7 @@
#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
+#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
#define F_GETOWN 5 /* get SIGIO/SIGURG proc/pgrp */
#define F_SETOWN 6 /* set SIGIO/SIGURG proc/pgrp */
#endif
@@ -187,7 +210,7 @@ struct flock {
};
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
/* lock operations for flock(2) */
#define LOCK_SH 0x01 /* shared file lock */
#define LOCK_EX 0x02 /* exclusive file lock */
@@ -195,17 +218,18 @@ struct flock {
#define LOCK_UN 0x08 /* unlock file */
#endif
+/*
+ * XXX missing posix_fadvise() and posix_fallocate(), and POSIX_FADV_* macros.
+ */
#ifndef _KERNEL
-#include <sys/cdefs.h>
-
__BEGIN_DECLS
int open(const char *, int, ...);
int creat(const char *, mode_t);
int fcntl(int, int, ...);
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
int flock(int, int);
-#endif /* !_POSIX_SOURCE */
+#endif
__END_DECLS
#endif
OpenPOWER on IntegriCloud