xref: /csrg-svn/sys/ufs/mfs/mfsnode.h (revision 48033)
139388Smckusick /*
239388Smckusick  * Copyright (c) 1989 The Regents of the University of California.
339388Smckusick  * All rights reserved.
439388Smckusick  *
544536Sbostic  * %sccs.include.redist.c%
639388Smckusick  *
7*48033Smckusick  *	@(#)mfsnode.h	7.3 (Berkeley) 04/16/91
839388Smckusick  */
939388Smckusick 
1039388Smckusick /*
1139388Smckusick  * This structure defines the control data for the memory
1239388Smckusick  * based file system.
1339388Smckusick  */
1439388Smckusick 
1539388Smckusick struct mfsnode {
1639388Smckusick 	struct	vnode *mfs_vnode;	/* vnode associated with this mfsnode */
1739388Smckusick 	caddr_t	mfs_baseoff;		/* base of file system in memory */
1839388Smckusick 	long	mfs_size;		/* size of memory file system */
1939388Smckusick 	pid_t	mfs_pid;		/* supporting process pid */
2039388Smckusick 	struct	buf *mfs_buflist;	/* list of I/O requests */
2139388Smckusick 	long	mfs_spare[4];
2239388Smckusick };
2339388Smckusick 
2439388Smckusick /*
2539388Smckusick  * Convert between mfsnode pointers and vnode pointers
2639388Smckusick  */
2739388Smckusick #define VTOMFS(vp)	((struct mfsnode *)(vp)->v_data)
2839388Smckusick #define MFSTOV(mfsp)	((mfsp)->mfs_vnode)
29*48033Smckusick 
30*48033Smckusick /*
31*48033Smckusick  * Prototypes for MFS operations on vnodes.
32*48033Smckusick  */
33*48033Smckusick int	mfs_badop();
34*48033Smckusick #define mfs_lookup ((int (*) __P(( \
35*48033Smckusick 		struct vnode *vp, \
36*48033Smckusick 		struct nameidata *ndp, \
37*48033Smckusick 		struct proc *p))) mfs_badop)
38*48033Smckusick #define mfs_create ((int (*) __P(( \
39*48033Smckusick 		struct nameidata *ndp, \
40*48033Smckusick 		struct vattr *vap, \
41*48033Smckusick 		struct proc *p))) mfs_badop)
42*48033Smckusick #define mfs_mknod ((int (*) __P(( \
43*48033Smckusick 		struct nameidata *ndp, \
44*48033Smckusick 		struct vattr *vap, \
45*48033Smckusick 		struct ucred *cred, \
46*48033Smckusick 		struct proc *p))) mfs_badop)
47*48033Smckusick int	mfs_open __P((
48*48033Smckusick 		struct vnode *vp,
49*48033Smckusick 		int mode,
50*48033Smckusick 		struct ucred *cred,
51*48033Smckusick 		struct proc *p));
52*48033Smckusick int	mfs_close __P((
53*48033Smckusick 		struct vnode *vp,
54*48033Smckusick 		int fflag,
55*48033Smckusick 		struct ucred *cred,
56*48033Smckusick 		struct proc *p));
57*48033Smckusick #define mfs_access ((int (*) __P(( \
58*48033Smckusick 		struct vnode *vp, \
59*48033Smckusick 		int mode, \
60*48033Smckusick 		struct ucred *cred, \
61*48033Smckusick 		struct proc *p))) mfs_badop)
62*48033Smckusick #define mfs_getattr ((int (*) __P(( \
63*48033Smckusick 		struct vnode *vp, \
64*48033Smckusick 		struct vattr *vap, \
65*48033Smckusick 		struct ucred *cred, \
66*48033Smckusick 		struct proc *p))) mfs_badop)
67*48033Smckusick #define mfs_setattr ((int (*) __P(( \
68*48033Smckusick 		struct vnode *vp, \
69*48033Smckusick 		struct vattr *vap, \
70*48033Smckusick 		struct ucred *cred, \
71*48033Smckusick 		struct proc *p))) mfs_badop)
72*48033Smckusick #define mfs_read ((int (*) __P(( \
73*48033Smckusick 		struct vnode *vp, \
74*48033Smckusick 		struct uio *uio, \
75*48033Smckusick 		int ioflag, \
76*48033Smckusick 		struct ucred *cred))) mfs_badop)
77*48033Smckusick #define mfs_write ((int (*) __P(( \
78*48033Smckusick 		struct vnode *vp, \
79*48033Smckusick 		struct uio *uio, \
80*48033Smckusick 		int ioflag, \
81*48033Smckusick 		struct ucred *cred))) mfs_badop)
82*48033Smckusick int	mfs_ioctl __P((
83*48033Smckusick 		struct vnode *vp,
84*48033Smckusick 		int command,
85*48033Smckusick 		caddr_t data,
86*48033Smckusick 		int fflag,
87*48033Smckusick 		struct ucred *cred,
88*48033Smckusick 		struct proc *p));
89*48033Smckusick #define mfs_select ((int (*) __P(( \
90*48033Smckusick 		struct vnode *vp, \
91*48033Smckusick 		int which, \
92*48033Smckusick 		int fflags, \
93*48033Smckusick 		struct ucred *cred, \
94*48033Smckusick 		struct proc *p))) mfs_badop)
95*48033Smckusick #define mfs_mmap ((int (*) __P(( \
96*48033Smckusick 		struct vnode *vp, \
97*48033Smckusick 		int fflags, \
98*48033Smckusick 		struct ucred *cred, \
99*48033Smckusick 		struct proc *p))) mfs_badop)
100*48033Smckusick #define mfs_fsync ((int (*) __P(( \
101*48033Smckusick 		struct vnode *vp, \
102*48033Smckusick 		int fflags, \
103*48033Smckusick 		struct ucred *cred, \
104*48033Smckusick 		int waitfor, \
105*48033Smckusick 		struct proc *p))) mfs_badop)
106*48033Smckusick #define mfs_seek ((int (*) __P(( \
107*48033Smckusick 		struct vnode *vp, \
108*48033Smckusick 		off_t oldoff, \
109*48033Smckusick 		off_t newoff, \
110*48033Smckusick 		struct ucred *cred))) mfs_badop)
111*48033Smckusick #define mfs_remove ((int (*) __P(( \
112*48033Smckusick 		struct nameidata *ndp, \
113*48033Smckusick 		struct proc *p))) mfs_badop)
114*48033Smckusick #define mfs_link ((int (*) __P(( \
115*48033Smckusick 		struct vnode *vp, \
116*48033Smckusick 		struct nameidata *ndp, \
117*48033Smckusick 		struct proc *p))) mfs_badop)
118*48033Smckusick #define mfs_rename ((int (*) __P(( \
119*48033Smckusick 		struct nameidata *fndp, \
120*48033Smckusick 		struct nameidata *tdnp, \
121*48033Smckusick 		struct proc *p))) mfs_badop)
122*48033Smckusick #define mfs_mkdir ((int (*) __P(( \
123*48033Smckusick 		struct nameidata *ndp, \
124*48033Smckusick 		struct vattr *vap, \
125*48033Smckusick 		struct proc *p))) mfs_badop)
126*48033Smckusick #define mfs_rmdir ((int (*) __P(( \
127*48033Smckusick 		struct nameidata *ndp, \
128*48033Smckusick 		struct proc *p))) mfs_badop)
129*48033Smckusick #define mfs_symlink ((int (*) __P(( \
130*48033Smckusick 		struct nameidata *ndp, \
131*48033Smckusick 		struct vattr *vap, \
132*48033Smckusick 		char *target, \
133*48033Smckusick 		struct proc *p))) mfs_badop)
134*48033Smckusick #define mfs_readdir ((int (*) __P(( \
135*48033Smckusick 		struct vnode *vp, \
136*48033Smckusick 		struct uio *uio, \
137*48033Smckusick 		struct ucred *cred, \
138*48033Smckusick 		int *eofflagp))) mfs_badop)
139*48033Smckusick #define mfs_readlink ((int (*) __P(( \
140*48033Smckusick 		struct vnode *vp, \
141*48033Smckusick 		struct uio *uio, \
142*48033Smckusick 		struct ucred *cred))) mfs_badop)
143*48033Smckusick #define mfs_abortop ((int (*) __P(( \
144*48033Smckusick 		struct nameidata *ndp))) mfs_badop)
145*48033Smckusick int	mfs_inactive __P((
146*48033Smckusick 		struct vnode *vp,
147*48033Smckusick 		struct proc *p));
148*48033Smckusick #define mfs_reclaim ((int (*) __P(( \
149*48033Smckusick 		struct vnode *vp))) nullop)
150*48033Smckusick #define mfs_lock ((int (*) __P(( \
151*48033Smckusick 		struct vnode *vp))) nullop)
152*48033Smckusick #define mfs_unlock ((int (*) __P(( \
153*48033Smckusick 		struct vnode *vp))) nullop)
154*48033Smckusick int	mfs_bmap __P((
155*48033Smckusick 		struct vnode *vp,
156*48033Smckusick 		daddr_t bn,
157*48033Smckusick 		struct vnode **vpp,
158*48033Smckusick 		daddr_t *bnp));
159*48033Smckusick int	mfs_strategy __P((
160*48033Smckusick 		struct buf *bp));
161*48033Smckusick int	mfs_print __P((
162*48033Smckusick 		struct vnode *vp));
163*48033Smckusick #define mfs_islocked ((int (*) __P(( \
164*48033Smckusick 		struct vnode *vp))) nullop)
165*48033Smckusick #define mfs_advlock ((int (*) __P(( \
166*48033Smckusick 		struct vnode *vp, \
167*48033Smckusick 		caddr_t id, \
168*48033Smckusick 		int op, \
169*48033Smckusick 		struct flock *fl, \
170*48033Smckusick 		int flags))) mfs_badop)
171