xref: /minix3/sys/ufs/mfs/mfsnode.h (revision d65f6f70097893d1dfe5e389f081f247bf3df183)
1*d65f6f70SBen Gras /*	$NetBSD: mfsnode.h,v 1.21 2008/03/26 14:19:43 ad Exp $	*/
2*d65f6f70SBen Gras 
3*d65f6f70SBen Gras /*
4*d65f6f70SBen Gras  * Copyright (c) 1989, 1993
5*d65f6f70SBen Gras  *	The Regents of the University of California.  All rights reserved.
6*d65f6f70SBen Gras  *
7*d65f6f70SBen Gras  * Redistribution and use in source and binary forms, with or without
8*d65f6f70SBen Gras  * modification, are permitted provided that the following conditions
9*d65f6f70SBen Gras  * are met:
10*d65f6f70SBen Gras  * 1. Redistributions of source code must retain the above copyright
11*d65f6f70SBen Gras  *    notice, this list of conditions and the following disclaimer.
12*d65f6f70SBen Gras  * 2. Redistributions in binary form must reproduce the above copyright
13*d65f6f70SBen Gras  *    notice, this list of conditions and the following disclaimer in the
14*d65f6f70SBen Gras  *    documentation and/or other materials provided with the distribution.
15*d65f6f70SBen Gras  * 3. Neither the name of the University nor the names of its contributors
16*d65f6f70SBen Gras  *    may be used to endorse or promote products derived from this software
17*d65f6f70SBen Gras  *    without specific prior written permission.
18*d65f6f70SBen Gras  *
19*d65f6f70SBen Gras  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20*d65f6f70SBen Gras  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21*d65f6f70SBen Gras  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22*d65f6f70SBen Gras  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23*d65f6f70SBen Gras  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24*d65f6f70SBen Gras  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25*d65f6f70SBen Gras  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26*d65f6f70SBen Gras  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27*d65f6f70SBen Gras  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28*d65f6f70SBen Gras  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29*d65f6f70SBen Gras  * SUCH DAMAGE.
30*d65f6f70SBen Gras  *
31*d65f6f70SBen Gras  *	@(#)mfsnode.h	8.3 (Berkeley) 5/19/95
32*d65f6f70SBen Gras  */
33*d65f6f70SBen Gras 
34*d65f6f70SBen Gras #ifndef _UFS_MFS_MFSNODE_H_
35*d65f6f70SBen Gras #define _UFS_MFS_MFSNODE_H_
36*d65f6f70SBen Gras 
37*d65f6f70SBen Gras /*
38*d65f6f70SBen Gras  * This structure defines the control data for the memory based file system.
39*d65f6f70SBen Gras  */
40*d65f6f70SBen Gras 
41*d65f6f70SBen Gras struct mfsnode {
42*d65f6f70SBen Gras 	struct vnode *mfs_vnode;	/* vnode associated with this mfsnode */
43*d65f6f70SBen Gras 	void 	*mfs_baseoff;		/* base of file system in memory */
44*d65f6f70SBen Gras 	long	mfs_size;		/* size of memory file system */
45*d65f6f70SBen Gras 	struct proc *mfs_proc;		/* supporting process */
46*d65f6f70SBen Gras 	int	mfs_shutdown;		/* shutdown this mfsnode */
47*d65f6f70SBen Gras #if defined(_KERNEL)
48*d65f6f70SBen Gras 	kcondvar_t mfs_cv;		/* notifier */
49*d65f6f70SBen Gras 	int	mfs_refcnt;		/* number of references */
50*d65f6f70SBen Gras 	struct	bufq_state *mfs_buflist;/* list of I/O requests */
51*d65f6f70SBen Gras #endif /* defined(_KERNEL) */
52*d65f6f70SBen Gras };
53*d65f6f70SBen Gras 
54*d65f6f70SBen Gras #if defined(_KERNEL)
55*d65f6f70SBen Gras /*
56*d65f6f70SBen Gras  * Convert between mfsnode pointers and vnode pointers
57*d65f6f70SBen Gras  */
58*d65f6f70SBen Gras #define VTOMFS(vp)	((struct mfsnode *)(vp)->v_data)
59*d65f6f70SBen Gras #define MFSTOV(mfsp)	((mfsp)->mfs_vnode)
60*d65f6f70SBen Gras 
61*d65f6f70SBen Gras /* Prototypes for MFS operations on vnodes. */
62*d65f6f70SBen Gras #define	mfs_lookup	genfs_badop
63*d65f6f70SBen Gras #define	mfs_create	genfs_badop
64*d65f6f70SBen Gras #define	mfs_mknod	genfs_badop
65*d65f6f70SBen Gras #define	mfs_access	genfs_badop
66*d65f6f70SBen Gras #define	mfs_getattr	genfs_badop
67*d65f6f70SBen Gras #define	mfs_setattr	genfs_badop
68*d65f6f70SBen Gras #define	mfs_read	genfs_badop
69*d65f6f70SBen Gras #define	mfs_write	genfs_badop
70*d65f6f70SBen Gras #define	mfs_poll	genfs_badop
71*d65f6f70SBen Gras #define	mfs_mmap	genfs_badop
72*d65f6f70SBen Gras #define	mfs_seek	genfs_badop
73*d65f6f70SBen Gras #define	mfs_remove	genfs_badop
74*d65f6f70SBen Gras #define	mfs_link	genfs_badop
75*d65f6f70SBen Gras #define	mfs_rename	genfs_badop
76*d65f6f70SBen Gras #define	mfs_mkdir	genfs_badop
77*d65f6f70SBen Gras #define	mfs_rmdir	genfs_badop
78*d65f6f70SBen Gras #define	mfs_symlink	genfs_badop
79*d65f6f70SBen Gras #define	mfs_readdir	genfs_badop
80*d65f6f70SBen Gras #define	mfs_readlink	genfs_badop
81*d65f6f70SBen Gras #define	mfs_abortop	genfs_badop
82*d65f6f70SBen Gras #define	mfs_islocked	genfs_noislocked
83*d65f6f70SBen Gras #define	mfs_pathconf	genfs_badop
84*d65f6f70SBen Gras #define	mfs_advlock	genfs_badop
85*d65f6f70SBen Gras #define	mfs_bwrite	vn_bwrite
86*d65f6f70SBen Gras #define	mfs_revoke	genfs_revoke
87*d65f6f70SBen Gras #define	mfs_putpages	genfs_null_putpages
88*d65f6f70SBen Gras 
89*d65f6f70SBen Gras #endif /* defined(_KERNEL) */
90*d65f6f70SBen Gras 
91*d65f6f70SBen Gras #endif /* !_UFS_MFS_MFSNODE_H_ */
92