vnode_if.src revision 21673
1169695Skan#
2169695Skan# Copyright (c) 1992, 1993
3169695Skan#	The Regents of the University of California.  All rights reserved.
4169695Skan#
5169695Skan# Redistribution and use in source and binary forms, with or without
6169695Skan# modification, are permitted provided that the following conditions
7169695Skan# are met:
8169695Skan# 1. Redistributions of source code must retain the above copyright
9169695Skan#    notice, this list of conditions and the following disclaimer.
10169695Skan# 2. Redistributions in binary form must reproduce the above copyright
11169695Skan#    notice, this list of conditions and the following disclaimer in the
12169695Skan#    documentation and/or other materials provided with the distribution.
13169695Skan# 3. All advertising materials mentioning features or use of this software
14169695Skan#    must display the following acknowledgement:
15169695Skan#	This product includes software developed by the University of
16169695Skan#	California, Berkeley and its contributors.
17169695Skan# 4. Neither the name of the University nor the names of its contributors
18169695Skan#    may be used to endorse or promote products derived from this software
19169695Skan#    without specific prior written permission.
20169695Skan#
21169695Skan# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22169695Skan# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23169695Skan# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24169695Skan# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25169695Skan# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26169695Skan# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27169695Skan# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28169695Skan# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29169695Skan# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30169695Skan# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31169695Skan# SUCH DAMAGE.
32169695Skan#
33169695Skan#	@(#)vnode_if.src	8.3 (Berkeley) 2/3/94
34169695Skan# $FreeBSD: head/sys/kern/vnode_if.src 21673 1997-01-14 07:20:47Z jkh $
35169695Skan#
36169695Skanvop_lookup {
37169695Skan	IN struct vnode *dvp;
38169695Skan	INOUT struct vnode **vpp;
39169695Skan	IN struct componentname *cnp;
40169695Skan};
41169695Skan
42169695Skanvop_create {
43169695Skan	IN WILLRELE struct vnode *dvp;
44169695Skan	OUT struct vnode **vpp;
45169695Skan	IN struct componentname *cnp;
46169695Skan	IN struct vattr *vap;
47169695Skan};
48169695Skan
49169695Skanvop_mknod {
50169695Skan	IN WILLRELE struct vnode *dvp;
51169695Skan	OUT WILLRELE struct vnode **vpp;
52169695Skan	IN struct componentname *cnp;
53169695Skan	IN struct vattr *vap;
54169695Skan};
55169695Skan
56169695Skanvop_open {
57169695Skan	IN struct vnode *vp;
58169695Skan	IN int mode;
59169695Skan	IN struct ucred *cred;
60169695Skan	IN struct proc *p;
61169695Skan};
62169695Skan
63169695Skanvop_close {
64169695Skan	IN struct vnode *vp;
65169695Skan	IN int fflag;
66169695Skan	IN struct ucred *cred;
67169695Skan	IN struct proc *p;
68169695Skan};
69169695Skan
70169695Skanvop_access {
71169695Skan	IN struct vnode *vp;
72169695Skan	IN int mode;
73169695Skan	IN struct ucred *cred;
74169695Skan	IN struct proc *p;
75169695Skan};
76169695Skan
77169695Skanvop_getattr {
78169695Skan	IN struct vnode *vp;
79169695Skan	IN struct vattr *vap;
80169695Skan	IN struct ucred *cred;
81169695Skan	IN struct proc *p;
82169695Skan};
83169695Skan
84169695Skanvop_setattr {
85169695Skan	IN struct vnode *vp;
86169695Skan	IN struct vattr *vap;
87169695Skan	IN struct ucred *cred;
88169695Skan	IN struct proc *p;
89169695Skan};
90169695Skan
91169695Skanvop_read {
92169695Skan	IN struct vnode *vp;
93169695Skan	INOUT struct uio *uio;
94169695Skan	IN int ioflag;
95169695Skan	IN struct ucred *cred;
96169695Skan};
97169695Skan
98169695Skanvop_write {
99169695Skan	IN struct vnode *vp;
100169695Skan	INOUT struct uio *uio;
101169695Skan	IN int ioflag;
102169695Skan	IN struct ucred *cred;
103169695Skan};
104169695Skan
105169695Skanvop_ioctl {
106169695Skan	IN struct vnode *vp;
107169695Skan	IN int command;
108169695Skan	IN caddr_t data;
109169695Skan	IN int fflag;
110169695Skan	IN struct ucred *cred;
111169695Skan	IN struct proc *p;
112169695Skan};
113169695Skan
114169695Skan# Needs work?  (fflags)
115169695Skanvop_select {
116169695Skan	IN struct vnode *vp;
117169695Skan	IN int which;
118169695Skan	IN int fflags;
119169695Skan	IN struct ucred *cred;
120169695Skan	IN struct proc *p;
121169695Skan};
122169695Skan
123169695Skanvop_mmap {
124169695Skan	IN struct vnode *vp;
125169695Skan	IN int fflags;
126169695Skan	IN struct ucred *cred;
127169695Skan	IN struct proc *p;
128169695Skan};
129169695Skan
130169695Skanvop_fsync {
131169695Skan	IN struct vnode *vp;
132169695Skan	IN struct ucred *cred;
133169695Skan	IN int waitfor;
134169695Skan	IN struct proc *p;
135169695Skan};
136169695Skan
137169695Skan# Needs word: Is newoff right?  What's it mean?
138169695Skanvop_seek {
139169695Skan	IN struct vnode *vp;
140169695Skan	IN off_t oldoff;
141169695Skan	IN off_t newoff;
142169695Skan	IN struct ucred *cred;
143169695Skan};
144169695Skan
145169695Skanvop_remove {
146169695Skan	IN WILLRELE struct vnode *dvp;
147169695Skan	IN WILLRELE struct vnode *vp;
148169695Skan	IN struct componentname *cnp;
149169695Skan};
150169695Skan
151169695Skanvop_link {
152169695Skan	IN WILLRELE struct vnode *tdvp;
153169695Skan	IN struct vnode *vp;
154169695Skan	IN struct componentname *cnp;
155169695Skan};
156169695Skan
157169695Skanvop_rename {
158169695Skan	IN WILLRELE struct vnode *fdvp;
159169695Skan	IN WILLRELE struct vnode *fvp;
160169695Skan	IN struct componentname *fcnp;
161169695Skan	IN WILLRELE struct vnode *tdvp;
162169695Skan	IN WILLRELE struct vnode *tvp;
163169695Skan	IN struct componentname *tcnp;
164169695Skan};
165169695Skan
166169695Skanvop_mkdir {
167169695Skan	IN WILLRELE struct vnode *dvp;
168169695Skan	OUT struct vnode **vpp;
169169695Skan	IN struct componentname *cnp;
170169695Skan	IN struct vattr *vap;
171169695Skan};
172169695Skan
173169695Skanvop_rmdir {
174169695Skan	IN WILLRELE struct vnode *dvp;
175169695Skan	IN WILLRELE struct vnode *vp;
176169695Skan	IN struct componentname *cnp;
177169695Skan};
178169695Skan
179169695Skanvop_symlink {
180169695Skan	IN WILLRELE struct vnode *dvp;
181169695Skan	OUT WILLRELE struct vnode **vpp;
182169695Skan	IN struct componentname *cnp;
183169695Skan	IN struct vattr *vap;
184169695Skan	IN char *target;
185169695Skan};
186169695Skan
187169695Skanvop_readdir {
188169695Skan	IN struct vnode *vp;
189169695Skan	INOUT struct uio *uio;
190169695Skan	IN struct ucred *cred;
191169695Skan	INOUT int *eofflag;
192169695Skan	INOUT int *ncookies;
193169695Skan	INOUT u_int **cookies;
194169695Skan};
195169695Skan
196169695Skanvop_readlink {
197169695Skan	IN struct vnode *vp;
198169695Skan	INOUT struct uio *uio;
199169695Skan	IN struct ucred *cred;
200169695Skan};
201169695Skan
202169695Skanvop_abortop {
203169695Skan	IN struct vnode *dvp;
204169695Skan	IN struct componentname *cnp;
205169695Skan};
206169695Skan
207169695Skanvop_inactive {
208169695Skan	IN struct vnode *vp;
209169695Skan};
210169695Skan
211169695Skanvop_reclaim {
212169695Skan	IN struct vnode *vp;
213169695Skan};
214169695Skan
215169695Skanvop_lock {
216169695Skan	IN struct vnode *vp;
217169695Skan};
218169695Skan
219169695Skanvop_unlock {
220169695Skan	IN struct vnode *vp;
221169695Skan};
222169695Skan
223169695Skanvop_bmap {
224169695Skan	IN struct vnode *vp;
225169695Skan	IN daddr_t bn;
226169695Skan	OUT struct vnode **vpp;
227169695Skan	IN daddr_t *bnp;
228169695Skan	OUT int *runp;
229169695Skan	OUT int *runb;
230169695Skan};
231169695Skan
232169695Skan#vop_strategy {
233169695Skan#	IN struct buf *bp;
234169695Skan#};
235169695Skan
236169695Skanvop_print {
237169695Skan	IN struct vnode *vp;
238169695Skan};
239169695Skan
240169695Skanvop_islocked {
241169695Skan	IN struct vnode *vp;
242169695Skan};
243169695Skan
244169695Skanvop_pathconf {
245169695Skan	IN struct vnode *vp;
246169695Skan	IN int name;
247169695Skan	OUT int *retval;
248169695Skan};
249169695Skan
250169695Skanvop_advlock {
251169695Skan	IN struct vnode *vp;
252169695Skan	IN caddr_t id;
253169695Skan	IN int op;
254169695Skan	IN struct flock *fl;
255169695Skan	IN int flags;
256169695Skan};
257169695Skan
258169695Skanvop_blkatoff {
259169695Skan	IN struct vnode *vp;
260169695Skan	IN off_t offset;
261169695Skan	OUT char **res;
262169695Skan	OUT struct buf **bpp;
263169695Skan};
264169695Skan
265169695Skanvop_valloc {
266169695Skan	IN struct vnode *pvp;
267169695Skan	IN int mode;
268169695Skan	IN struct ucred *cred;
269169695Skan	OUT struct vnode **vpp;
270169695Skan};
271169695Skan
272169695Skanvop_reallocblks {
273169695Skan	IN struct vnode *vp;
274169695Skan	IN struct cluster_save *buflist;
275169695Skan};
276169695Skan
277169695Skanvop_vfree {
278169695Skan	IN struct vnode *pvp;
279169695Skan	IN ino_t ino;
280169695Skan	IN int mode;
281169695Skan};
282169695Skan
283169695Skanvop_truncate {
284169695Skan	IN struct vnode *vp;
285169695Skan	IN off_t length;
286169695Skan	IN int flags;
287169695Skan	IN struct ucred *cred;
288169695Skan	IN struct proc *p;
289169695Skan};
290169695Skan
291169695Skanvop_update {
292169695Skan	IN struct vnode *vp;
293169695Skan	IN struct timeval *access;
294169695Skan	IN struct timeval *modify;
295169695Skan	IN int waitfor;
296169695Skan};
297169695Skan
298169695Skanvop_getpages {
299169695Skan	IN struct vnode *vp;
300169695Skan	IN vm_page_t *m;
301169695Skan	IN int count;
302169695Skan	IN int reqpage;
303169695Skan	IN vm_ooffset_t offset;
304169695Skan};
305169695Skan
306169695Skanvop_putpages {
307169695Skan	IN struct vnode *vp;
308169695Skan	IN vm_page_t *m;
309169695Skan	IN int count;
310169695Skan	IN int sync;
311169695Skan	IN int *rtvals;
312169695Skan	IN vm_ooffset_t offset;
313169695Skan};
314169695Skan
315169695Skan# Needs work: no vp?
316169695Skan#vop_bwrite {
317169695Skan#	IN struct buf *bp;
318169695Skan#};
319169695Skan