vnode_if.src revision 1.2 1 # $NetBSD: vnode_if.src,v 1.2 1994/06/29 06:34:07 cgd 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 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)
115 vop_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
123 vop_mmap {
124 IN struct vnode *vp;
125 IN int fflags;
126 IN struct ucred *cred;
127 IN struct proc *p;
128 };
129
130 vop_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?
138 vop_seek {
139 IN struct vnode *vp;
140 IN off_t oldoff;
141 IN off_t newoff;
142 IN struct ucred *cred;
143 };
144
145 vop_remove {
146 IN WILLRELE struct vnode *dvp;
147 IN WILLRELE struct vnode *vp;
148 IN struct componentname *cnp;
149 };
150
151 vop_link {
152 IN WILLRELE struct vnode *vp;
153 IN struct vnode *tdvp;
154 IN struct componentname *cnp;
155 };
156
157 vop_rename {
158 IN WILLRELE struct vnode *fdvp;
159 IN WILLRELE struct vnode *fvp;
160 IN struct componentname *fcnp;
161 IN WILLRELE struct vnode *tdvp;
162 IN WILLRELE struct vnode *tvp;
163 IN struct componentname *tcnp;
164 };
165
166 vop_mkdir {
167 IN WILLRELE struct vnode *dvp;
168 OUT struct vnode **vpp;
169 IN struct componentname *cnp;
170 IN struct vattr *vap;
171 };
172
173 vop_rmdir {
174 IN WILLRELE struct vnode *dvp;
175 IN WILLRELE struct vnode *vp;
176 IN struct componentname *cnp;
177 };
178
179 vop_symlink {
180 IN WILLRELE struct vnode *dvp;
181 OUT WILLRELE struct vnode **vpp;
182 IN struct componentname *cnp;
183 IN struct vattr *vap;
184 IN char *target;
185 };
186
187 vop_readdir {
188 IN struct vnode *vp;
189 INOUT struct uio *uio;
190 IN struct ucred *cred;
191 OUT int *eofflag;
192 OUT u_long *cookies;
193 IN int ncookies;
194 };
195
196 vop_readlink {
197 IN struct vnode *vp;
198 INOUT struct uio *uio;
199 IN struct ucred *cred;
200 };
201
202 vop_abortop {
203 IN struct vnode *dvp;
204 IN struct componentname *cnp;
205 };
206
207 vop_inactive {
208 IN struct vnode *vp;
209 };
210
211 vop_reclaim {
212 IN struct vnode *vp;
213 };
214
215 vop_lock {
216 IN struct vnode *vp;
217 };
218
219 vop_unlock {
220 IN struct vnode *vp;
221 };
222
223 vop_bmap {
224 IN struct vnode *vp;
225 IN daddr_t bn;
226 OUT struct vnode **vpp;
227 IN daddr_t *bnp;
228 OUT int *runp;
229 };
230
231 #vop_strategy {
232 # IN struct buf *bp;
233 #};
234
235 vop_print {
236 IN struct vnode *vp;
237 };
238
239 vop_islocked {
240 IN struct vnode *vp;
241 };
242
243 vop_pathconf {
244 IN struct vnode *vp;
245 IN int name;
246 OUT int *retval;
247 };
248
249 vop_advlock {
250 IN struct vnode *vp;
251 IN caddr_t id;
252 IN int op;
253 IN struct flock *fl;
254 IN int flags;
255 };
256
257 vop_blkatoff {
258 IN struct vnode *vp;
259 IN off_t offset;
260 OUT char **res;
261 OUT struct buf **bpp;
262 };
263
264 vop_valloc {
265 IN struct vnode *pvp;
266 IN int mode;
267 IN struct ucred *cred;
268 OUT struct vnode **vpp;
269 };
270
271 vop_reallocblks {
272 IN struct vnode *vp;
273 IN struct cluster_save *buflist;
274 };
275
276 vop_vfree {
277 IN struct vnode *pvp;
278 IN ino_t ino;
279 IN int mode;
280 };
281
282 vop_truncate {
283 IN struct vnode *vp;
284 IN off_t length;
285 IN int flags;
286 IN struct ucred *cred;
287 IN struct proc *p;
288 };
289
290 vop_update {
291 IN struct vnode *vp;
292 IN struct timeval *access;
293 IN struct timeval *modify;
294 IN int waitfor;
295 };
296
297 # Needs work: no vp?
298 #vop_bwrite {
299 # IN struct buf *bp;
300 #};
301