move IFMT => VTYPE and VTYPE => IFMT to vnode since stat requires it
[unix-history] / usr / src / sys / ufs / ffs / inode.h
index 645d1a4..ae06ac2 100644 (file)
@@ -4,7 +4,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)inode.h     7.20 (Berkeley) %G%
+ *     @(#)inode.h     7.22 (Berkeley) %G%
  */
 
 #include <ufs/ufs/dinode.h>
  */
 
 #include <ufs/ufs/dinode.h>
@@ -36,13 +36,23 @@ struct inode {
 #define        i_lfs   inode_u.lfs
        struct  dquot *i_dquot[MAXQUOTAS]; /* pointer to dquot structures */
        struct  lockf *i_lockf; /* head of byte-level lock list */
 #define        i_lfs   inode_u.lfs
        struct  dquot *i_dquot[MAXQUOTAS]; /* pointer to dquot structures */
        struct  lockf *i_lockf; /* head of byte-level lock list */
-       long    i_diroff;       /* offset in dir, where we found last entry */
-       off_t   i_endoff;       /* end of useful stuff in directory */
        u_quad_t i_modrev;      /* revision level for lease */
        pid_t   i_lockholder;   /* DEBUG: holder of inode lock */
        pid_t   i_lockwaiter;   /* DEBUG: latest blocked for inode lock */
        u_quad_t i_modrev;      /* revision level for lease */
        pid_t   i_lockholder;   /* DEBUG: holder of inode lock */
        pid_t   i_lockwaiter;   /* DEBUG: latest blocked for inode lock */
-       long    i_spare[16];    /* spares to round up to 256 bytes */
+       /*
+        * Side effects; used during directory lookup.
+        */
+       off_t   i_endoff;       /* end of useful stuff in directory */
+       long    i_diroff;       /* offset in dir, where we found last entry */
+       long    i_offset;       /* offset of free space in directory */
+       long    i_count;        /* size of free slot in directory */
+       ino_t   i_ino;          /* inode number of found directory */
+       u_long  i_reclen;       /* size of found directory entry */
+       /*
+        * the on-disk dinode itself.
+        */
        struct  dinode i_din;   /* the on-disk dinode */
        struct  dinode i_din;   /* the on-disk dinode */
+       long    i_spare[12];    /* spares to round up to 256 bytes */
 };
 
 #define        i_mode          i_din.di_mode
 };
 
 #define        i_mode          i_din.di_mode
@@ -87,14 +97,6 @@ struct inode {
 #define VTOI(vp)       ((struct inode *)(vp)->v_data)
 #define ITOV(ip)       ((ip)->i_vnode)
 
 #define VTOI(vp)       ((struct inode *)(vp)->v_data)
 #define ITOV(ip)       ((ip)->i_vnode)
 
-/* Convert between vnode types and inode formats. */
-extern enum vtype      iftovt_tab[];
-extern int             vttoif_tab[];
-#define IFTOVT(mode)   (iftovt_tab[((mode) & IFMT) >> 12])
-#define VTTOIF(indx)   (vttoif_tab[(int)(indx)])
-
-#define MAKEIMODE(indx, mode)  (int)(VTTOIF(indx) | (mode))
-
 /* Lock and unlock inodes. */
 #ifdef notdef
 #define        ILOCK(ip) { \
 /* Lock and unlock inodes. */
 #ifdef notdef
 #define        ILOCK(ip) { \