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