vnode_if.src revision 1.11 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 #
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 };
62
63 vop_close {
64 IN struct vnode *vp;
65 IN int fflag;
66 IN struct ucred *cred;
67 IN struct proc *p;
68 };
69
70 vop_access {
71 IN struct vnode *vp;
72 IN int mode;
73 IN struct ucred *cred;
74 IN struct proc *p;
75 };
76
77 vop_getattr {
78 IN struct vnode *vp;
79 IN struct vattr *vap;
80 IN struct ucred *cred;
81 IN struct proc *p;
82 };
83
84 vop_setattr {
85 IN struct vnode *vp;
86 IN struct vattr *vap;
87 IN struct ucred *cred;
88 IN struct proc *p;
89 };
90
91 vop_read {
92 IN struct vnode *vp;
93 INOUT struct uio *uio;
94 IN int ioflag;
95 IN struct ucred *cred;
96 };
97
98 vop_write {
99 IN struct vnode *vp;
100 INOUT struct uio *uio;
101 IN int ioflag;
102 IN struct ucred *cred;
103 };
104
105 vop_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
114 vop_poll {
115 IN struct vnode *vp;
116 IN int events;
117 IN struct proc *p;
118 };
119
120 vop_mmap {
121 IN struct vnode *vp;
122 IN int fflags;
123 IN struct ucred *cred;
124 IN struct proc *p;
125 };
126
127 vop_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?
135 vop_seek {
136 IN struct vnode *vp;
137 IN off_t oldoff;
138 IN off_t newoff;
139 IN struct ucred *cred;
140 };
141
142 vop_remove {
143 IN WILLRELE struct vnode *dvp;
144 IN WILLRELE struct vnode *vp;
145 IN struct componentname *cnp;
146 };
147
148 vop_link {
149 IN WILLRELE struct vnode *dvp;
150 IN struct vnode *vp;
151 IN struct componentname *cnp;
152 };
153
154 vop_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
163 vop_mkdir {
164 IN WILLRELE struct vnode *dvp;
165 OUT struct vnode **vpp;
166 IN struct componentname *cnp;
167 IN struct vattr *vap;
168 };
169
170 vop_rmdir {
171 IN WILLRELE struct vnode *dvp;
172 IN WILLRELE struct vnode *vp;
173 IN struct componentname *cnp;
174 };
175
176 vop_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
184 vop_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
193 vop_readlink {
194 IN struct vnode *vp;
195 INOUT struct uio *uio;
196 IN struct ucred *cred;
197 };
198
199 vop_abortop {
200 IN struct vnode *dvp;
201 IN struct componentname *cnp;
202 };
203
204 vop_inactive {
205 IN struct vnode *vp;
206 };
207
208 vop_reclaim {
209 IN struct vnode *vp;
210 };
211
212 vop_lock {
213 IN struct vnode *vp;
214 };
215
216 vop_unlock {
217 IN struct vnode *vp;
218 };
219
220 vop_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
232 vop_print {
233 IN struct vnode *vp;
234 };
235
236 vop_islocked {
237 IN struct vnode *vp;
238 };
239
240 vop_pathconf {
241 IN struct vnode *vp;
242 IN int name;
243 OUT register_t *retval;
244 };
245
246 vop_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
254 vop_blkatoff {
255 IN struct vnode *vp;
256 IN off_t offset;
257 OUT char **res;
258 OUT struct buf **bpp;
259 };
260
261 vop_valloc {
262 IN struct vnode *pvp;
263 IN int mode;
264 IN struct ucred *cred;
265 OUT struct vnode **vpp;
266 };
267
268 vop_reallocblks {
269 IN struct vnode *vp;
270 IN struct cluster_save *buflist;
271 };
272
273 vop_vfree {
274 IN struct vnode *pvp;
275 IN ino_t ino;
276 IN int mode;
277 };
278
279 vop_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
287 vop_update {
288 IN struct vnode *vp;
289 IN struct timespec *access;
290 IN struct timespec *modify;
291 IN int waitfor;
292 };
293
294 vop_lease {
295 IN struct vnode *vp;
296 IN struct proc *p;
297 IN struct ucred *cred;
298 IN int flag;
299 };
300
301 vop_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