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