Author: kmacy
Date: Wed May 20 20:08:51 2009
New Revision: 192471
URL: http://svn.freebsd.org/changeset/base/192471

Log:
  MFC NDINIT macros without changing the size of nameidata

Modified:
  stable/7/sys/sys/fcntl.h
  stable/7/sys/sys/namei.h

Modified: stable/7/sys/sys/fcntl.h
==============================================================================
--- stable/7/sys/sys/fcntl.h    Wed May 20 20:05:56 2009        (r192470)
+++ stable/7/sys/sys/fcntl.h    Wed May 20 20:08:51 2009        (r192471)
@@ -105,6 +105,12 @@ typedef    __pid_t         pid_t;
 #ifdef _KERNEL
 #define        FHASLOCK        0x4000          /* descriptor holds advisory 
lock */
 #endif
+/*
+ * Magic value that specify the use of the current working directory
+ * to determine the target of relative file paths in the openat() and
+ * similar syscalls.
+ */
+#define        AT_FDCWD                -100
 
 /* Defined by POSIX 1003.1; BSD default, but must be distinct from O_RDONLY. */
 #define        O_NOCTTY        0x8000          /* don't assign controlling 
terminal */

Modified: stable/7/sys/sys/namei.h
==============================================================================
--- stable/7/sys/sys/namei.h    Wed May 20 20:05:56 2009        (r192470)
+++ stable/7/sys/sys/namei.h    Wed May 20 20:08:51 2009        (r192471)
@@ -86,6 +86,9 @@ struct nameidata {
         * through the VOP interface.
         */
        struct componentname ni_cnd;
+#ifdef notyet
+       int     ni_dirfd;               /* starting directory for *at functions 
*/      
+#endif
 };
 
 #ifdef _KERNEL
@@ -148,20 +151,31 @@ struct nameidata {
 /*
  * Initialization of a nameidata structure.
  */
-static void NDINIT(struct nameidata *, u_long, u_long, enum uio_seg,
-           const char *, struct thread *);
+#define        NDINIT(ndp, op, flags, segflg, namep, td)                       
\
+       NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, NULL, td)
+#define        NDINIT_AT(ndp, op, flags, segflg, namep, dirfd, td)             
\
+       NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, td)
+#define        NDINIT_ATVP(ndp, op, flags, segflg, namep, vp, td)              
\
+       NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, td)
+
 static __inline void
-NDINIT(struct nameidata *ndp,
+NDINIT_ALL(struct nameidata *ndp,
        u_long op, u_long flags,
        enum uio_seg segflg,
        const char *namep,
+       int dirfd,
+       struct vnode *startdir,
        struct thread *td)
 {
        ndp->ni_cnd.cn_nameiop = op;
        ndp->ni_cnd.cn_flags = flags;
        ndp->ni_segflg = segflg;
        ndp->ni_dirp = namep;
+       ndp->ni_startdir = startdir;
        ndp->ni_cnd.cn_thread = td;
+#ifdef notyet
+       ndp->ni_dirfd = dirfd;
+#endif
 }
 
 #define NDF_NO_DVP_RELE                0x00000001
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to