vnode_if.src revision 9430
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.4 1995/06/28 07:06: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
151# Gack. The generated VCALL uses the first vp which might
152# not be handled by the same FS as the directory (e.g. special
153# device files)...so it's special-cased.
154#
155#vop_link {
156#	IN struct vnode *vp;
157#	IN WILLRELE struct vnode *tdvp;
158#	IN struct componentname *cnp;
159#};
160
161vop_rename {
162	IN WILLRELE struct vnode *fdvp;
163	IN WILLRELE struct vnode *fvp;
164	IN struct componentname *fcnp;
165	IN WILLRELE struct vnode *tdvp;
166	IN WILLRELE struct vnode *tvp;
167	IN struct componentname *tcnp;
168};
169
170vop_mkdir {
171	IN WILLRELE struct vnode *dvp;
172	OUT struct vnode **vpp;
173	IN struct componentname *cnp;
174	IN struct vattr *vap;
175};
176
177vop_rmdir {
178	IN WILLRELE struct vnode *dvp;
179	IN WILLRELE struct vnode *vp;
180	IN struct componentname *cnp;
181};
182
183vop_symlink {
184	IN WILLRELE struct vnode *dvp;
185	OUT WILLRELE struct vnode **vpp;
186	IN struct componentname *cnp;
187	IN struct vattr *vap;
188	IN char *target;
189};
190
191vop_readdir {
192	IN struct vnode *vp;
193	INOUT struct uio *uio;
194	IN struct ucred *cred;
195	INOUT int *eofflag;
196	INOUT int *ncookies;
197	INOUT u_int **cookies;
198};
199
200vop_readlink {
201	IN struct vnode *vp;
202	INOUT struct uio *uio;
203	IN struct ucred *cred;
204};
205
206vop_abortop {
207	IN struct vnode *dvp;
208	IN struct componentname *cnp;
209};
210
211vop_inactive {
212	IN struct vnode *vp;
213};
214
215vop_reclaim {
216	IN struct vnode *vp;
217};
218
219vop_lock {
220	IN struct vnode *vp;
221};
222
223vop_unlock {
224	IN struct vnode *vp;
225};
226
227vop_bmap {
228	IN struct vnode *vp;
229	IN daddr_t bn;
230	OUT struct vnode **vpp;
231	IN daddr_t *bnp;
232	OUT int *runp;
233};
234
235#vop_strategy {
236#	IN struct buf *bp;
237#};
238
239vop_print {
240	IN struct vnode *vp;
241};
242
243vop_islocked {
244	IN struct vnode *vp;
245};
246
247vop_pathconf {
248	IN struct vnode *vp;
249	IN int name;
250	OUT int *retval;
251};
252
253vop_advlock {
254	IN struct vnode *vp;
255	IN caddr_t id;
256	IN int op;
257	IN struct flock *fl;
258	IN int flags;
259};
260
261vop_blkatoff {
262	IN struct vnode *vp;
263	IN off_t offset;
264	OUT char **res;
265	OUT struct buf **bpp;
266};
267
268vop_valloc {
269	IN struct vnode *pvp;
270	IN int mode;
271	IN struct ucred *cred;
272	OUT struct vnode **vpp;
273};
274
275vop_reallocblks {
276	IN struct vnode *vp;
277	IN struct cluster_save *buflist;
278};
279
280vop_vfree {
281	IN struct vnode *pvp;
282	IN ino_t ino;
283	IN int mode;
284};
285
286vop_truncate {
287	IN struct vnode *vp;
288	IN off_t length;
289	IN int flags;
290	IN struct ucred *cred;
291	IN struct proc *p;
292};
293
294vop_update {
295	IN struct vnode *vp;
296	IN struct timeval *access;
297	IN struct timeval *modify;
298	IN int waitfor;
299};
300
301# Needs work: no vp?
302#vop_bwrite {
303#	IN struct buf *bp;
304#};
305