|
|
1.1 root 1: /*
2: * Copyright (c) 1989 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms, with or without
6: * modification, are permitted provided that the following conditions
7: * are met:
8: * 1. Redistributions of source code must retain the above copyright
9: * notice, this list of conditions and the following disclaimer.
10: * 2. Redistributions in binary form must reproduce the above copyright
11: * notice, this list of conditions and the following disclaimer in the
12: * documentation and/or other materials provided with the distribution.
13: * 3. All advertising materials mentioning features or use of this software
14: * must display the following acknowledgement:
15: * This product includes software developed by the University of
16: * California, Berkeley and its contributors.
17: * 4. Neither the name of the University nor the names of its contributors
18: * may be used to endorse or promote products derived from this software
19: * without specific prior written permission.
20: *
21: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31: * SUCH DAMAGE.
32: *
33: * @(#)mfsnode.h 7.3 (Berkeley) 4/16/91
34: */
35:
36: /*
37: * This structure defines the control data for the memory
38: * based file system.
39: */
40:
41: struct mfsnode {
42: struct vnode *mfs_vnode; /* vnode associated with this mfsnode */
43: caddr_t mfs_baseoff; /* base of file system in memory */
44: long mfs_size; /* size of memory file system */
45: pid_t mfs_pid; /* supporting process pid */
46: struct buf *mfs_buflist; /* list of I/O requests */
47: long mfs_spare[4];
48: };
49:
50: /*
51: * Convert between mfsnode pointers and vnode pointers
52: */
53: #define VTOMFS(vp) ((struct mfsnode *)(vp)->v_data)
54: #define MFSTOV(mfsp) ((mfsp)->mfs_vnode)
55:
56: /*
57: * Prototypes for MFS operations on vnodes.
58: */
59: int mfs_badop();
60: #define mfs_lookup ((int (*) __P(( \
61: struct vnode *vp, \
62: struct nameidata *ndp, \
63: struct proc *p))) mfs_badop)
64: #define mfs_create ((int (*) __P(( \
65: struct nameidata *ndp, \
66: struct vattr *vap, \
67: struct proc *p))) mfs_badop)
68: #define mfs_mknod ((int (*) __P(( \
69: struct nameidata *ndp, \
70: struct vattr *vap, \
71: struct ucred *cred, \
72: struct proc *p))) mfs_badop)
73: int mfs_open __P((
74: struct vnode *vp,
75: int mode,
76: struct ucred *cred,
77: struct proc *p));
78: int mfs_close __P((
79: struct vnode *vp,
80: int fflag,
81: struct ucred *cred,
82: struct proc *p));
83: #define mfs_access ((int (*) __P(( \
84: struct vnode *vp, \
85: int mode, \
86: struct ucred *cred, \
87: struct proc *p))) mfs_badop)
88: #define mfs_getattr ((int (*) __P(( \
89: struct vnode *vp, \
90: struct vattr *vap, \
91: struct ucred *cred, \
92: struct proc *p))) mfs_badop)
93: #define mfs_setattr ((int (*) __P(( \
94: struct vnode *vp, \
95: struct vattr *vap, \
96: struct ucred *cred, \
97: struct proc *p))) mfs_badop)
98: #define mfs_read ((int (*) __P(( \
99: struct vnode *vp, \
100: struct uio *uio, \
101: int ioflag, \
102: struct ucred *cred))) mfs_badop)
103: #define mfs_write ((int (*) __P(( \
104: struct vnode *vp, \
105: struct uio *uio, \
106: int ioflag, \
107: struct ucred *cred))) mfs_badop)
108: int mfs_ioctl __P((
109: struct vnode *vp,
110: int command,
111: caddr_t data,
112: int fflag,
113: struct ucred *cred,
114: struct proc *p));
115: #define mfs_select ((int (*) __P(( \
116: struct vnode *vp, \
117: int which, \
118: int fflags, \
119: struct ucred *cred, \
120: struct proc *p))) mfs_badop)
121: #define mfs_mmap ((int (*) __P(( \
122: struct vnode *vp, \
123: int fflags, \
124: struct ucred *cred, \
125: struct proc *p))) mfs_badop)
126: #define mfs_fsync ((int (*) __P(( \
127: struct vnode *vp, \
128: int fflags, \
129: struct ucred *cred, \
130: int waitfor, \
131: struct proc *p))) mfs_badop)
132: #define mfs_seek ((int (*) __P(( \
133: struct vnode *vp, \
134: off_t oldoff, \
135: off_t newoff, \
136: struct ucred *cred))) mfs_badop)
137: #define mfs_remove ((int (*) __P(( \
138: struct nameidata *ndp, \
139: struct proc *p))) mfs_badop)
140: #define mfs_link ((int (*) __P(( \
141: struct vnode *vp, \
142: struct nameidata *ndp, \
143: struct proc *p))) mfs_badop)
144: #define mfs_rename ((int (*) __P(( \
145: struct nameidata *fndp, \
146: struct nameidata *tdnp, \
147: struct proc *p))) mfs_badop)
148: #define mfs_mkdir ((int (*) __P(( \
149: struct nameidata *ndp, \
150: struct vattr *vap, \
151: struct proc *p))) mfs_badop)
152: #define mfs_rmdir ((int (*) __P(( \
153: struct nameidata *ndp, \
154: struct proc *p))) mfs_badop)
155: #define mfs_symlink ((int (*) __P(( \
156: struct nameidata *ndp, \
157: struct vattr *vap, \
158: char *target, \
159: struct proc *p))) mfs_badop)
160: #define mfs_readdir ((int (*) __P(( \
161: struct vnode *vp, \
162: struct uio *uio, \
163: struct ucred *cred, \
164: int *eofflagp))) mfs_badop)
165: #define mfs_readlink ((int (*) __P(( \
166: struct vnode *vp, \
167: struct uio *uio, \
168: struct ucred *cred))) mfs_badop)
169: #define mfs_abortop ((int (*) __P(( \
170: struct nameidata *ndp))) mfs_badop)
171: int mfs_inactive __P((
172: struct vnode *vp,
173: struct proc *p));
174: #define mfs_reclaim ((int (*) __P(( \
175: struct vnode *vp))) nullop)
176: #define mfs_lock ((int (*) __P(( \
177: struct vnode *vp))) nullop)
178: #define mfs_unlock ((int (*) __P(( \
179: struct vnode *vp))) nullop)
180: int mfs_bmap __P((
181: struct vnode *vp,
182: daddr_t bn,
183: struct vnode **vpp,
184: daddr_t *bnp));
185: int mfs_strategy __P((
186: struct buf *bp));
187: int mfs_print __P((
188: struct vnode *vp));
189: #define mfs_islocked ((int (*) __P(( \
190: struct vnode *vp))) nullop)
191: #define mfs_advlock ((int (*) __P(( \
192: struct vnode *vp, \
193: caddr_t id, \
194: int op, \
195: struct flock *fl, \
196: int flags))) mfs_badop)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.