PERFORCE change 122068 for review
Roman Divacky
rdivacky at FreeBSD.org
Thu Jun 21 09:06:46 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=122068
Change 122068 by rdivacky at rdivacky_witten on 2007/06/21 09:06:06
Introduce fcntl.h part of POSIX Extended API:
o remove __BSD_VISIBLE around O_NOFOLLOW, its POSIX now
o add AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_SYMLINK_FOLLOW, AT_REMOVEDIR
o add AT_EACCESS but ifdefed out for the moment
o add O_DIRECTORY
o add openat() prototype
this is a WIP and commits to other files will follow
Affected files ...
.. //depot/projects/soc2007/rdivacky/linux_at/sys/sys/fcntl.h#4 edit
Differences ...
==== //depot/projects/soc2007/rdivacky/linux_at/sys/sys/fcntl.h#4 (text+ko) ====
@@ -96,16 +96,24 @@
#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 */
#define O_TRUNC 0x0400 /* truncate to zero length */
#define O_EXCL 0x0800 /* error if already exists */
#ifdef _KERNEL
#define FHASLOCK 0x4000 /* descriptor holds advisory lock */
#endif
-#define AT_FDCWD -100 /* CWD for *at syscals */
+/* Defined by POSIX Extended API ... TODO: number of the spec */
+#define AT_FDCWD -100 /* Use the current working directory
+ to determine the target of relative
+ file paths.
+ */
+#ifdef notyet
+#define AT_EACCESS 0x100 /* Check access using effective user and group ID */
+#endif
+#define AT_SYMLINK_NOFOLLOW 0x200 /* Do not follow symbolic links */
+#define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic link */
+#define AT_REMOVEDIR 0x800 /* Remove directory instead of file */
/* Defined by POSIX 1003.1; BSD default, but must be distinct from O_RDONLY. */
#define O_NOCTTY 0x8000 /* don't assign controlling terminal */
@@ -115,6 +123,9 @@
#define O_DIRECT 0x00010000
#endif
+/* Defined by POSIX Extended API ... TODO: number of the spec */
+#define O_DIRECTORY 0x00020000 /* Fail if not directory */
+
/*
* XXX missing O_DSYNC, O_RSYNC.
*/
@@ -221,6 +232,7 @@
int open(const char *, int, ...);
int creat(const char *, mode_t);
int fcntl(int, int, ...);
+int openat(int, const char *, int, ...);
#if __BSD_VISIBLE
int flock(int, int);
#endif
More information about the p4-projects
mailing list