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