xref: /minix/minix/servers/vfs/vnode.h (revision 7f5f010b)
1 #ifndef __VFS_VNODE_H__
2 #define __VFS_VNODE_H__
3 
4 EXTERN struct vnode {
5   endpoint_t v_fs_e;            /* FS process' endpoint number */
6   endpoint_t v_mapfs_e;		/* mapped FS process' endpoint number */
7   ino_t v_inode_nr;		/* inode number on its (minor) device */
8   ino_t v_mapinode_nr;		/* mapped inode number of mapped FS. */
9   mode_t v_mode;		/* file type, protection, etc. */
10   uid_t v_uid;			/* uid of inode. */
11   gid_t v_gid;			/* gid of inode. */
12   off_t v_size;			/* current file size in bytes */
13   int v_ref_count;		/* # times vnode used; 0 means slot is free */
14   int v_fs_count;		/* # reference at the underlying FS */
15   int v_mapfs_count;		/* # reference at the underlying mapped FS */
16   endpoint_t v_bfs_e;		/* endpoint number for the FS proces in case
17 				   of a block special file */
18   dev_t v_dev;                  /* device number on which the corresponding
19                                    inode resides */
20   dev_t v_sdev;                 /* device number for special files */
21   struct vmnt *v_vmnt;          /* vmnt object of the partition */
22   tll_t v_lock;			/* three-level-lock */
23 } vnode[NR_VNODES];
24 
25 /* vnode lock types mapping */
26 #define VNODE_NONE TLL_NONE	/* used only for get_filp2 to avoid locking */
27 #define VNODE_READ TLL_READ
28 #define VNODE_OPCL TLL_READSER
29 #define VNODE_WRITE TLL_WRITE
30 #endif
31