summaryrefslogtreecommitdiffstats
path: root/sys/sys/fcntl.h
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2009-09-28 16:59:47 +0000
committerdelphij <delphij@FreeBSD.org>2009-09-28 16:59:47 +0000
commit79f2f8c774b48d4ef62f92d4a09e80af3ceaca7c (patch)
tree1cca7c0ea10e2ad0213a1d75a2c8a8fe0061f4d4 /sys/sys/fcntl.h
parentfd5f08e3e82b6caa8a7fff6a32c9e56b9212003e (diff)
downloadFreeBSD-src-79f2f8c774b48d4ef62f92d4a09e80af3ceaca7c.zip
FreeBSD-src-79f2f8c774b48d4ef62f92d4a09e80af3ceaca7c.tar.gz
Add two new fcntls to enable/disable read-ahead:
- F_READAHEAD: specify the amount for sequential access. The amount is specified in bytes and is rounded up to nearest block size. - F_RDAHEAD: Darwin compatible version that use 128KB as the sequential access size. A third argument of zero disables the read-ahead behavior. Please note that the read-ahead amount is also constrainted by sysctl variable, vfs.read_max, which may need to be raised in order to better utilize this feature. Thanks Igor Sysoev for proposing the feature and submitting the original version, and kib@ for his valuable comments. Submitted by: Igor Sysoev <is rambler-co ru> Reviewed by: kib@ MFC after: 1 month
Diffstat (limited to 'sys/sys/fcntl.h')
-rw-r--r--sys/sys/fcntl.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h
index 893bbcd..ef394a3 100644
--- a/sys/sys/fcntl.h
+++ b/sys/sys/fcntl.h
@@ -140,7 +140,7 @@ typedef __pid_t pid_t;
/* bits to save after open */
#define FMASK (FREAD|FWRITE|FAPPEND|FASYNC|FFSYNC|FNONBLOCK|O_DIRECT|FEXEC)
/* bits settable by fcntl(F_SETFL, ...) */
-#define FCNTLFLAGS (FAPPEND|FASYNC|FFSYNC|FNONBLOCK|O_DIRECT)
+#define FCNTLFLAGS (FAPPEND|FASYNC|FFSYNC|FNONBLOCK|FRDAHEAD|O_DIRECT)
#if defined(COMPAT_FREEBSD7) || defined(COMPAT_FREEBSD6) || \
defined(COMPAT_FREEBSD5) || defined(COMPAT_FREEBSD4)
@@ -151,7 +151,8 @@ typedef __pid_t pid_t;
*/
#define FPOSIXSHM O_NOFOLLOW
#undef FCNTLFLAGS
-#define FCNTLFLAGS (FAPPEND|FASYNC|FFSYNC|FNONBLOCK|FPOSIXSHM|O_DIRECT)
+#define FCNTLFLAGS (FAPPEND|FASYNC|FFSYNC|FNONBLOCK|FPOSIXSHM|FRDAHEAD| \
+ O_DIRECT)
#endif
#endif
@@ -176,6 +177,8 @@ typedef __pid_t pid_t;
* different meaning for fcntl(2).
*/
#if __BSD_VISIBLE
+/* Read ahead */
+#define FRDAHEAD O_CREAT
#endif
/* Defined by POSIX Extended API Set Part 2 */
@@ -218,6 +221,8 @@ typedef __pid_t pid_t;
#define F_SETLK 12 /* set record locking information */
#define F_SETLKW 13 /* F_SETLK; wait if blocked */
#define F_SETLK_REMOTE 14 /* debugging support for remote locks */
+#define F_READAHEAD 15 /* read ahead */
+#define F_RDAHEAD 16 /* Darwin compatible read ahead */
/* file descriptor flags (F_GETFD, F_SETFD) */
#define FD_CLOEXEC 1 /* close-on-exec flag */
OpenPOWER on IntegriCloud