vnode - mathfur/minix GitHub Wiki

呼出元

filp

概要

servers/vfs/vnode.hにて定義 inodeに似た何か。 ユーザ、グループが保有するもの。

実装

EXTERN struct vnode {
  /* 以下は分かる */
  mode_t v_mode;		/* file type, protection, etc. */
  uid_t v_uid;			/* uid(==ユーザID)  of inode. */
  gid_t v_gid;			/* gid(==グループID) of inode. */

  /* なんとなく分かる */
  dev_t v_sdev;                 /* スペシャルファイルのデバイス番号. */
  tll_t v_lock;			/* three-level-lock */

  /* 分からない */
             /* v_ と _eは何を意味する? */
             /* _t は「typedefで定義された型」の意味 */
  struct vmnt *v_vmnt;          /* vmnt object of the partition */
  endpoint_t(==int) v_fs_e;            /* FS process' endpoint number(エンドポイントとは?) */
  endpoint_t v_mapfs_e;		/* mapped FS process' endpoint number */
  ino_t(==uint32_t) v_inode_nr; /* inode number on its (minor) device */
  ino_t v_mapinode_nr;		/* mapped inode number of mapped FS. */
  off_t v_size;			/* current(何に対してカレント?) file size in bytes */
  int v_ref_count;		/* # times vnode used; 0 means slot is free */
  int v_fs_count;		/* # reference at the underlying FS */
  int v_mapfs_count;		/* # reference at the underlying mapped FS */
  endpoint_t v_bfs_e;		/* endpoint number for the FS proces in case
				   of a block special file */
  dev_t v_dev;                  /* device number on which the corresponding
                                   inode resides */
} vnode[NR_VNODES];

コメント