-
-#ifdef KERNEL
-/*
- * Convert between inode pointers and vnode pointers
- */
-#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) >> 13])
-#define VTTOIF(indx) (vttoif_tab[(int)(indx)])
-
-#define MAKEIMODE(indx, mode) (int)(VTTOIF(indx) | (mode))
-
-/*
- * Lock and unlock inodes.
- */
-#define ILOCK(ip) { \
- while ((ip)->i_flag & ILOCKED) { \
- (ip)->i_flag |= IWANT; \
- (void) sleep((caddr_t)(ip), PINOD); \
- } \
- (ip)->i_flag |= ILOCKED; \
-}
-
-#define IUNLOCK(ip) { \
- (ip)->i_flag &= ~ILOCKED; \
- if ((ip)->i_flag&IWANT) { \
- (ip)->i_flag &= ~IWANT; \
- wakeup((caddr_t)(ip)); \
- } \
-}
-
-#define IUPDAT(ip, t1, t2, waitfor) { \
- if (ip->i_flag&(IUPD|IACC|ICHG|IMOD)) \
- (void) iupdat(ip, t1, t2, waitfor); \
-}
-
-#define ITIMES(ip, t1, t2) { \
- if ((ip)->i_flag&(IUPD|IACC|ICHG)) { \
- (ip)->i_flag |= IMOD; \
- if ((ip)->i_flag&IACC) \
- (ip)->i_atime = (t1)->tv_sec; \
- if ((ip)->i_flag&IUPD) \
- (ip)->i_mtime = (t2)->tv_sec; \
- if ((ip)->i_flag&ICHG) \
- (ip)->i_ctime = time.tv_sec; \
- (ip)->i_flag &= ~(IACC|IUPD|ICHG); \
- } \
-}
-
-/*
- * This overlays the fid sturcture (see mount.h)
- */
-struct ufid {
- u_short ufid_len;
- ino_t ufid_ino;
- long ufid_gen;
-};
-#endif