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