Lines Matching refs:vnode

61  *	@(#)vnode.h	8.17 (Berkeley) 5/20/95
85 #include <sys/vnode.h>
106 * VFS Internal (private) trigger vnode resolver info.
135 struct vnode {
136 lck_mtx_t v_lock; /* vnode mutex */
137 TAILQ_ENTRY(vnode) v_freelist; /* vnode freelist */
138 TAILQ_ENTRY(vnode) v_mntvnodes; /* vnodes for mount point */
139 LIST_HEAD(, namecache) v_nclinks; /* name cache entries that name this vnode */
143 uint32_t v_flag; /* vnode flags (see below) */
144 uint16_t v_lflag; /* vnode local and named ref flags */
150 void * v_owner; /* act that owns the vnode */
151 uint16_t v_type; /* vnode type */
153 uint32_t v_id; /* identity of vnode contents */
163 struct klist v_knotes; /* knotes attached to this vnode */
174 * back to the vnode lock for protection
178 const char *v_name; /* name component of the vnode */
179 vnode_t v_parent; /* pointer to parent vnode */
189 int (**v_op)(void *); /* vnode operations vector */
196 vnode_resolve_t v_resolve; /* trigger vnode resolve info (VDIR only) */
219 #define VLIST_RAGE 0x01 /* vnode is currently in the rapid age list */
220 #define VLIST_DEAD 0x02 /* vnode is currently in the dead list */
221 #define VLIST_ASYNC_WORK 0x04 /* vnode is currently on the deferred async work queue */
226 #define VL_SUSPENDED 0x0001 /* vnode is suspended */
227 #define VL_DRAIN 0x0002 /* vnode is being drained */
228 #define VL_TERMINATE 0x0004 /* vnode is in the process of being recycled */
230 #define VL_DEAD 0x0010 /* vnode is dead, cleaned of filesystem-specific info */
231 #define VL_MARKTERM 0x0020 /* vnode should be recycled when no longer referenced */
234 #define VL_LABEL 0x0100 /* vnode is marked for labeling */
235 #define VL_LABELWAIT 0x0200 /* vnode is marked for labeling */
236 #define VL_LABELED 0x0400 /* vnode is labeled */
238 #define VL_HASSTREAMS 0x1000 /* vnode has had at least one associated named stream vnode (may not have one any longer) */
248 #define VTEXT 0x000002 /* vnode is a pure text prototype */
249 #define VSYSTEM 0x000004 /* vnode being used by kernel */
250 #define VISTTY 0x000008 /* vnode represents a tty */
251 #define VRAGE 0x000010 /* vnode is in rapid age state */
252 #define VBDEVVP 0x000020 /* vnode created by bdevvp */
253 #define VDEVFLUSH 0x000040 /* device vnode after vflush */
256 #define VSHARED_DYLD 0x000200 /* vnode is a dyld shared cache file */
258 #define VSTANDARD 0x000800 /* vnode obtained from common pool */
259 #define VAGE 0x001000 /* Insert vnode at head of free list */
261 #define VNCACHEABLE 0x004000 /* vnode is allowed to be put back in name cache */
263 #define VISSHADOW 0x008000 /* vnode is a shadow file */
265 #define VSWAP 0x010000 /* vnode is being used as swapfile */
269 #define VLOCKLOCAL 0x080000 /* this vnode does adv locking in vfs */
273 #define VISNAMEDSTREAM 0x400000 /* vnode is a named stream (eg HFS resource fork) */
279 * Global vnode data.
281 extern struct vnode *rootvnode; /* root (i.e. "/") vnode */
285 extern struct vnode *imgsrc_rootvnodes[];
312 * This structure describes the vnode operation taking place.
383 int bdevvp(dev_t dev, struct vnode **vpp);
385 void vprint(const char *label, struct vnode *vp);
390 int vn_rdwr_64(enum uio_rw rw, struct vnode *vp, uint64_t base,
395 int vn_setlabel (struct vnode *vp, struct label *intlabel,
398 void fifo_printinfo(struct vnode *vp);
404 errno_t vn_rename(struct vnode *fdvp, struct vnode **fvpp, struct componentname *fcnp, struct vnode_attr *fvap,
405 struct vnode *tdvp, struct vnode **tvpp, struct componentname *tcnp, struct vnode_attr *tvap,
423 int vn_authorize_rename(struct vnode *fdvp, struct vnode *fvp, struct componentname *fcnp,
424 struct vnode *tdvp, struct vnode *tvp, struct componentname *tcnp,
552 int vnode_hasnamedstreams(vnode_t); /* Does this vnode have associated named streams? */