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