|
|
| version 1.15, 2004/04/24 04:32:03 | version 1.16, 2004/05/19 22:53:03 |
|---|---|
| Line 89 typedef int vop_t (void *); | Line 89 typedef int vop_t (void *); |
| * v_flag, v_usecount, v_holdcount and v_writecount are | * v_flag, v_usecount, v_holdcount and v_writecount are |
| * locked by the v_interlock token. | * locked by the v_interlock token. |
| * v_pollinfo is locked by the lock contained inside it. | * v_pollinfo is locked by the lock contained inside it. |
| * | |
| * XXX note: v_opencount currently only used by specfs. It should be used | |
| * universally. | |
| */ | */ |
| struct vnode { | struct vnode { |
| u_long v_flag; /* vnode flags (see below) */ | u_long v_flag; /* vnode flags (see below) */ |
| int v_usecount; /* reference count of users */ | int v_usecount; /* reference count of users */ |
| int v_writecount; /* reference count of writers */ | int v_writecount; /* reference count of writers */ |
| int v_holdcnt; /* page & buffer references */ | int v_holdcnt; /* page & buffer references */ |
| int v_opencount; /* number of explicit opens */ | |
| u_long v_id; /* capability identifier */ | u_long v_id; /* capability identifier */ |
| struct mount *v_mount; /* ptr to vfs we are in */ | struct mount *v_mount; /* ptr to vfs we are in */ |
| vop_t **v_op; /* vnode operations vector */ | vop_t **v_op; /* vnode operations vector */ |
| Line 109 struct vnode { | Line 113 struct vnode { |
| struct mount *vu_mountedhere;/* ptr to mounted vfs (VDIR) */ | struct mount *vu_mountedhere;/* ptr to mounted vfs (VDIR) */ |
| struct socket *vu_socket; /* unix ipc (VSOCK) */ | struct socket *vu_socket; /* unix ipc (VSOCK) */ |
| struct { | struct { |
| udev_t vu_udev; /* device number for attach */ | |
| struct specinfo *vu_specinfo; /* device (VCHR, VBLK) */ | struct specinfo *vu_specinfo; /* device (VCHR, VBLK) */ |
| SLIST_ENTRY(vnode) vu_specnext; | SLIST_ENTRY(vnode) vu_specnext; |
| } vu_spec; | } vu_spec; |
| Line 140 struct vnode { | Line 145 struct vnode { |
| }; | }; |
| #define v_mountedhere v_un.vu_mountedhere | #define v_mountedhere v_un.vu_mountedhere |
| #define v_socket v_un.vu_socket | #define v_socket v_un.vu_socket |
| #define v_udev v_un.vu_spec.vu_udev | |
| #define v_rdev v_un.vu_spec.vu_specinfo | #define v_rdev v_un.vu_spec.vu_specinfo |
| #define v_specnext v_un.vu_spec.vu_specnext | #define v_specnext v_un.vu_spec.vu_specnext |
| #define v_fifoinfo v_un.vu_fifoinfo | #define v_fifoinfo v_un.vu_fifoinfo |
| Line 525 struct vop_bwrite_args; | Line 531 struct vop_bwrite_args; |
| extern int (*lease_check_hook) (struct vop_lease_args *); | extern int (*lease_check_hook) (struct vop_lease_args *); |
| void addalias (struct vnode *vp, dev_t nvp_rdev); | void addaliasu (struct vnode *vp, udev_t nvp_udev); |
| void addaliasu (struct vnode *vp, udev_t nvp_rdev); | int v_associate_rdev(struct vnode *vp, dev_t dev); |
| void v_release_rdev(struct vnode *vp); | |
| int bdevvp (dev_t dev, struct vnode **vpp); | int bdevvp (dev_t dev, struct vnode **vpp); |
| void cvtstat (struct stat *st, struct ostat *ost); | void cvtstat (struct stat *st, struct ostat *ost); |
| void cvtnstat (struct stat *sb, struct nstat *nsb); | void cvtnstat (struct stat *sb, struct nstat *nsb); |