xref: /netbsd-src/sys/kern/vnode_if.src (revision 76dfffe33547c37f8bdd446e3e4ab0f3c16cea4b)
1#	$NetBSD: vnode_if.src,v 1.11 1996/09/07 12:41:06 mycroft Exp $
2#
3# Copyright (c) 1992, 1993
4#	The Regents of the University of California.  All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12#    notice, this list of conditions and the following disclaimer in the
13#    documentation and/or other materials provided with the distribution.
14# 3. All advertising materials mentioning features or use of this software
15#    must display the following acknowledgement:
16#	This product includes software developed by the University of
17#	California, Berkeley and its contributors.
18# 4. Neither the name of the University nor the names of its contributors
19#    may be used to endorse or promote products derived from this software
20#    without specific prior written permission.
21#
22# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32# SUCH DAMAGE.
33#
34#	@(#)vnode_if.src	8.3 (Berkeley) 2/3/94
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 u_long command;
108	IN caddr_t data;
109	IN int fflag;
110	IN struct ucred *cred;
111	IN struct proc *p;
112};
113
114vop_poll {
115	IN struct vnode *vp;
116	IN int events;
117	IN struct proc *p;
118};
119
120vop_mmap {
121	IN struct vnode *vp;
122	IN int fflags;
123	IN struct ucred *cred;
124	IN struct proc *p;
125};
126
127vop_fsync {
128	IN struct vnode *vp;
129	IN struct ucred *cred;
130	IN int waitfor;
131	IN struct proc *p;
132};
133
134# Needs word: Is newoff right?  What's it mean?
135vop_seek {
136	IN struct vnode *vp;
137	IN off_t oldoff;
138	IN off_t newoff;
139	IN struct ucred *cred;
140};
141
142vop_remove {
143	IN WILLRELE struct vnode *dvp;
144	IN WILLRELE struct vnode *vp;
145	IN struct componentname *cnp;
146};
147
148vop_link {
149	IN WILLRELE struct vnode *dvp;
150	IN struct vnode *vp;
151	IN struct componentname *cnp;
152};
153
154vop_rename {
155	IN WILLRELE struct vnode *fdvp;
156	IN WILLRELE struct vnode *fvp;
157	IN struct componentname *fcnp;
158	IN WILLRELE struct vnode *tdvp;
159	IN WILLRELE struct vnode *tvp;
160	IN struct componentname *tcnp;
161};
162
163vop_mkdir {
164	IN WILLRELE struct vnode *dvp;
165	OUT struct vnode **vpp;
166	IN struct componentname *cnp;
167	IN struct vattr *vap;
168};
169
170vop_rmdir {
171	IN WILLRELE struct vnode *dvp;
172	IN WILLRELE struct vnode *vp;
173	IN struct componentname *cnp;
174};
175
176vop_symlink {
177	IN WILLRELE struct vnode *dvp;
178	OUT WILLRELE struct vnode **vpp;
179	IN struct componentname *cnp;
180	IN struct vattr *vap;
181	IN char *target;
182};
183
184vop_readdir {
185	IN struct vnode *vp;
186	INOUT struct uio *uio;
187	IN struct ucred *cred;
188	OUT int *eofflag;
189	OUT u_long *cookies;
190	IN int ncookies;
191};
192
193vop_readlink {
194	IN struct vnode *vp;
195	INOUT struct uio *uio;
196	IN struct ucred *cred;
197};
198
199vop_abortop {
200	IN struct vnode *dvp;
201	IN struct componentname *cnp;
202};
203
204vop_inactive {
205	IN struct vnode *vp;
206};
207
208vop_reclaim {
209	IN struct vnode *vp;
210};
211
212vop_lock {
213	IN struct vnode *vp;
214};
215
216vop_unlock {
217	IN struct vnode *vp;
218};
219
220vop_bmap {
221	IN struct vnode *vp;
222	IN daddr_t bn;
223	OUT struct vnode **vpp;
224	IN daddr_t *bnp;
225	OUT int *runp;
226};
227
228#vop_strategy {
229#	IN struct buf *bp;
230#};
231
232vop_print {
233	IN struct vnode *vp;
234};
235
236vop_islocked {
237	IN struct vnode *vp;
238};
239
240vop_pathconf {
241	IN struct vnode *vp;
242	IN int name;
243	OUT register_t *retval;
244};
245
246vop_advlock {
247	IN struct vnode *vp;
248	IN caddr_t id;
249	IN int op;
250	IN struct flock *fl;
251	IN int flags;
252};
253
254vop_blkatoff {
255	IN struct vnode *vp;
256	IN off_t offset;
257	OUT char **res;
258	OUT struct buf **bpp;
259};
260
261vop_valloc {
262	IN struct vnode *pvp;
263	IN int mode;
264	IN struct ucred *cred;
265	OUT struct vnode **vpp;
266};
267
268vop_reallocblks {
269	IN struct vnode *vp;
270	IN struct cluster_save *buflist;
271};
272
273vop_vfree {
274	IN struct vnode *pvp;
275	IN ino_t ino;
276	IN int mode;
277};
278
279vop_truncate {
280	IN struct vnode *vp;
281	IN off_t length;
282	IN int flags;
283	IN struct ucred *cred;
284	IN struct proc *p;
285};
286
287vop_update {
288	IN struct vnode *vp;
289	IN struct timespec *access;
290	IN struct timespec *modify;
291	IN int waitfor;
292};
293
294vop_lease {
295	IN struct vnode *vp;
296	IN struct proc *p;
297	IN struct ucred *cred;
298	IN int flag;
299};
300
301vop_whiteout {
302	IN struct vnode *dvp;
303	IN struct componentname *cnp;
304	IN int flags;
305};
306
307# Needs work: no vp?
308#vop_bwrite {
309#	IN struct buf *bp;
310#};
311