1#
2# Copyright (c) 1992, 1993
3# The Regents of the University of California. 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# @(#)vnode_if.src 8.3 (Berkeley) 2/3/94
34# $Id: vnode_if.src,v 1.6 1995/08/01 18:50:41 davidg Exp $
35#
36vop_lookup {
37 IN struct vnode *dvp;
38 INOUT struct vnode **vpp;
39 IN struct componentname *cnp;
40};
41
42vop_create {
43 IN WILLRELE struct vnode *dvp;
44 OUT struct vnode **vpp;
45 IN struct componentname *cnp;
46 IN struct vattr *vap;
47};
48
49vop_mknod {
50 IN WILLRELE struct vnode *dvp;
51 OUT WILLRELE struct vnode **vpp;
52 IN struct componentname *cnp;
53 IN struct vattr *vap;
54};
55
56vop_open {
57 IN struct vnode *vp;
58 IN int mode;
59 IN struct ucred *cred;
60 IN struct proc *p;
61};
62
63vop_close {
64 IN struct vnode *vp;
65 IN int fflag;
66 IN struct ucred *cred;
67 IN struct proc *p;
68};
69
70vop_access {
71 IN struct vnode *vp;
72 IN int mode;
73 IN struct ucred *cred;
74 IN struct proc *p;
75};
76
77vop_getattr {
78 IN struct vnode *vp;
79 IN struct vattr *vap;
80 IN struct ucred *cred;
81 IN struct proc *p;
82};
83
84vop_setattr {
85 IN struct vnode *vp;
86 IN struct vattr *vap;
87 IN struct ucred *cred;
88 IN struct proc *p;
89};
90
91vop_read {
92 IN struct vnode *vp;
93 INOUT struct uio *uio;
94 IN int ioflag;
95 IN struct ucred *cred;
96};
97
98vop_write {
99 IN struct vnode *vp;
100 INOUT struct uio *uio;
101 IN int ioflag;
102 IN struct ucred *cred;
103};
104
105vop_ioctl {
106 IN struct vnode *vp;
107 IN int command;
108 IN caddr_t data;
109 IN int fflag;
110 IN struct ucred *cred;
111 IN struct proc *p;
112};
113
114# Needs work? (fflags)
115vop_select {
116 IN struct vnode *vp;
117 IN int which;
118 IN int fflags;
119 IN struct ucred *cred;
120 IN struct proc *p;
121};
122
123vop_mmap {
124 IN struct vnode *vp;
125 IN int fflags;
126 IN struct ucred *cred;
127 IN struct proc *p;
128};
129
130vop_fsync {
131 IN struct vnode *vp;
132 IN struct ucred *cred;
133 IN int waitfor;
134 IN struct proc *p;
135};
136
137# Needs word: Is newoff right? What's it mean?
138vop_seek {
139 IN struct vnode *vp;
140 IN off_t oldoff;
141 IN off_t newoff;
142 IN struct ucred *cred;
143};
144
145vop_remove {
146 IN WILLRELE struct vnode *dvp;
147 IN WILLRELE struct vnode *vp;
148 IN struct componentname *cnp;
149};
150
151vop_link {
152 IN WILLRELE struct vnode *tdvp;
153 IN struct vnode *vp;
154 IN struct componentname *cnp;
155};
156
157vop_rename {
158 IN WILLRELE struct vnode *fdvp;
159 IN WILLRELE struct vnode *fvp;
160 IN struct componentname *fcnp;
161 IN WILLRELE struct vnode *tdvp;
162 IN WILLRELE struct vnode *tvp;
163 IN struct componentname *tcnp;
164};
165
166vop_mkdir {
167 IN WILLRELE struct vnode *dvp;
168 OUT struct vnode **vpp;
169 IN struct componentname *cnp;
170 IN struct vattr *vap;
171};
172
173vop_rmdir {
174 IN WILLRELE struct vnode *dvp;
175 IN WILLRELE struct vnode *vp;
176 IN struct componentname *cnp;
177};
178
179vop_symlink {
180 IN WILLRELE struct vnode *dvp;
181 OUT WILLRELE struct vnode **vpp;
182 IN struct componentname *cnp;
183 IN struct vattr *vap;
184 IN char *target;
185};
186
187vop_readdir {
188 IN struct vnode *vp;
189 INOUT struct uio *uio;
190 IN struct ucred *cred;
191 INOUT int *eofflag;
192 INOUT int *ncookies;
193 INOUT u_int **cookies;
194};
195
196vop_readlink {
197 IN struct vnode *vp;
198 INOUT struct uio *uio;
199 IN struct ucred *cred;
200};
201
202vop_abortop {
203 IN struct vnode *dvp;
204 IN struct componentname *cnp;
205};
206
207vop_inactive {
208 IN struct vnode *vp;
209};
210
211vop_reclaim {
212 IN struct vnode *vp;
213};
214
215vop_lock {
216 IN struct vnode *vp;
217};
218
219vop_unlock {
220 IN struct vnode *vp;
221};
222
223vop_bmap {
224 IN struct vnode *vp;
225 IN daddr_t bn;
226 OUT struct vnode **vpp;
227 IN daddr_t *bnp;
228 OUT int *runp;
229 OUT int *runb;
230};
231
232#vop_strategy {
233# IN struct buf *bp;
234#};
235
236vop_print {
237 IN struct vnode *vp;
238};
239
240vop_islocked {
241 IN struct vnode *vp;
242};
243
244vop_pathconf {
245 IN struct vnode *vp;
246 IN int name;
247 OUT int *retval;
248};
249
250vop_advlock {
251 IN struct vnode *vp;
252 IN caddr_t id;
253 IN int op;
254 IN struct flock *fl;
255 IN int flags;
256};
257
258vop_blkatoff {
259 IN struct vnode *vp;
260 IN off_t offset;
261 OUT char **res;
262 OUT struct buf **bpp;
263};
264
265vop_valloc {
266 IN struct vnode *pvp;
267 IN int mode;
268 IN struct ucred *cred;
269 OUT struct vnode **vpp;
270};
271
272vop_reallocblks {
273 IN struct vnode *vp;
274 IN struct cluster_save *buflist;
275};
276
277vop_vfree {
278 IN struct vnode *pvp;
279 IN ino_t ino;
280 IN int mode;
281};
282
283vop_truncate {
284 IN struct vnode *vp;
285 IN off_t length;
286 IN int flags;
287 IN struct ucred *cred;
288 IN struct proc *p;
289};
290
291vop_update {
292 IN struct vnode *vp;
293 IN struct timeval *access;
294 IN struct timeval *modify;
295 IN int waitfor;
296};
297
298vop_getpages {
299 IN struct vnode *vp;
300 IN vm_page_t *m;
301 IN int count;
302 IN int reqpage;
303};
304
305vop_putpages {
306 IN struct vnode *vp;
307 IN vm_page_t *m;
308 IN int count;
309 IN int sync;
310 IN int *rtvals;
311};
312# Needs work: no vp?
313#vop_bwrite {
314# IN struct buf *bp;
315#};
2# Copyright (c) 1992, 1993
3# The Regents of the University of California. 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# @(#)vnode_if.src 8.3 (Berkeley) 2/3/94
34# $Id: vnode_if.src,v 1.6 1995/08/01 18:50:41 davidg Exp $
35#
36vop_lookup {
37 IN struct vnode *dvp;
38 INOUT struct vnode **vpp;
39 IN struct componentname *cnp;
40};
41
42vop_create {
43 IN WILLRELE struct vnode *dvp;
44 OUT struct vnode **vpp;
45 IN struct componentname *cnp;
46 IN struct vattr *vap;
47};
48
49vop_mknod {
50 IN WILLRELE struct vnode *dvp;
51 OUT WILLRELE struct vnode **vpp;
52 IN struct componentname *cnp;
53 IN struct vattr *vap;
54};
55
56vop_open {
57 IN struct vnode *vp;
58 IN int mode;
59 IN struct ucred *cred;
60 IN struct proc *p;
61};
62
63vop_close {
64 IN struct vnode *vp;
65 IN int fflag;
66 IN struct ucred *cred;
67 IN struct proc *p;
68};
69
70vop_access {
71 IN struct vnode *vp;
72 IN int mode;
73 IN struct ucred *cred;
74 IN struct proc *p;
75};
76
77vop_getattr {
78 IN struct vnode *vp;
79 IN struct vattr *vap;
80 IN struct ucred *cred;
81 IN struct proc *p;
82};
83
84vop_setattr {
85 IN struct vnode *vp;
86 IN struct vattr *vap;
87 IN struct ucred *cred;
88 IN struct proc *p;
89};
90
91vop_read {
92 IN struct vnode *vp;
93 INOUT struct uio *uio;
94 IN int ioflag;
95 IN struct ucred *cred;
96};
97
98vop_write {
99 IN struct vnode *vp;
100 INOUT struct uio *uio;
101 IN int ioflag;
102 IN struct ucred *cred;
103};
104
105vop_ioctl {
106 IN struct vnode *vp;
107 IN int command;
108 IN caddr_t data;
109 IN int fflag;
110 IN struct ucred *cred;
111 IN struct proc *p;
112};
113
114# Needs work? (fflags)
115vop_select {
116 IN struct vnode *vp;
117 IN int which;
118 IN int fflags;
119 IN struct ucred *cred;
120 IN struct proc *p;
121};
122
123vop_mmap {
124 IN struct vnode *vp;
125 IN int fflags;
126 IN struct ucred *cred;
127 IN struct proc *p;
128};
129
130vop_fsync {
131 IN struct vnode *vp;
132 IN struct ucred *cred;
133 IN int waitfor;
134 IN struct proc *p;
135};
136
137# Needs word: Is newoff right? What's it mean?
138vop_seek {
139 IN struct vnode *vp;
140 IN off_t oldoff;
141 IN off_t newoff;
142 IN struct ucred *cred;
143};
144
145vop_remove {
146 IN WILLRELE struct vnode *dvp;
147 IN WILLRELE struct vnode *vp;
148 IN struct componentname *cnp;
149};
150
151vop_link {
152 IN WILLRELE struct vnode *tdvp;
153 IN struct vnode *vp;
154 IN struct componentname *cnp;
155};
156
157vop_rename {
158 IN WILLRELE struct vnode *fdvp;
159 IN WILLRELE struct vnode *fvp;
160 IN struct componentname *fcnp;
161 IN WILLRELE struct vnode *tdvp;
162 IN WILLRELE struct vnode *tvp;
163 IN struct componentname *tcnp;
164};
165
166vop_mkdir {
167 IN WILLRELE struct vnode *dvp;
168 OUT struct vnode **vpp;
169 IN struct componentname *cnp;
170 IN struct vattr *vap;
171};
172
173vop_rmdir {
174 IN WILLRELE struct vnode *dvp;
175 IN WILLRELE struct vnode *vp;
176 IN struct componentname *cnp;
177};
178
179vop_symlink {
180 IN WILLRELE struct vnode *dvp;
181 OUT WILLRELE struct vnode **vpp;
182 IN struct componentname *cnp;
183 IN struct vattr *vap;
184 IN char *target;
185};
186
187vop_readdir {
188 IN struct vnode *vp;
189 INOUT struct uio *uio;
190 IN struct ucred *cred;
191 INOUT int *eofflag;
192 INOUT int *ncookies;
193 INOUT u_int **cookies;
194};
195
196vop_readlink {
197 IN struct vnode *vp;
198 INOUT struct uio *uio;
199 IN struct ucred *cred;
200};
201
202vop_abortop {
203 IN struct vnode *dvp;
204 IN struct componentname *cnp;
205};
206
207vop_inactive {
208 IN struct vnode *vp;
209};
210
211vop_reclaim {
212 IN struct vnode *vp;
213};
214
215vop_lock {
216 IN struct vnode *vp;
217};
218
219vop_unlock {
220 IN struct vnode *vp;
221};
222
223vop_bmap {
224 IN struct vnode *vp;
225 IN daddr_t bn;
226 OUT struct vnode **vpp;
227 IN daddr_t *bnp;
228 OUT int *runp;
229 OUT int *runb;
230};
231
232#vop_strategy {
233# IN struct buf *bp;
234#};
235
236vop_print {
237 IN struct vnode *vp;
238};
239
240vop_islocked {
241 IN struct vnode *vp;
242};
243
244vop_pathconf {
245 IN struct vnode *vp;
246 IN int name;
247 OUT int *retval;
248};
249
250vop_advlock {
251 IN struct vnode *vp;
252 IN caddr_t id;
253 IN int op;
254 IN struct flock *fl;
255 IN int flags;
256};
257
258vop_blkatoff {
259 IN struct vnode *vp;
260 IN off_t offset;
261 OUT char **res;
262 OUT struct buf **bpp;
263};
264
265vop_valloc {
266 IN struct vnode *pvp;
267 IN int mode;
268 IN struct ucred *cred;
269 OUT struct vnode **vpp;
270};
271
272vop_reallocblks {
273 IN struct vnode *vp;
274 IN struct cluster_save *buflist;
275};
276
277vop_vfree {
278 IN struct vnode *pvp;
279 IN ino_t ino;
280 IN int mode;
281};
282
283vop_truncate {
284 IN struct vnode *vp;
285 IN off_t length;
286 IN int flags;
287 IN struct ucred *cred;
288 IN struct proc *p;
289};
290
291vop_update {
292 IN struct vnode *vp;
293 IN struct timeval *access;
294 IN struct timeval *modify;
295 IN int waitfor;
296};
297
298vop_getpages {
299 IN struct vnode *vp;
300 IN vm_page_t *m;
301 IN int count;
302 IN int reqpage;
303};
304
305vop_putpages {
306 IN struct vnode *vp;
307 IN vm_page_t *m;
308 IN int count;
309 IN int sync;
310 IN int *rtvals;
311};
312# Needs work: no vp?
313#vop_bwrite {
314# IN struct buf *bp;
315#};