FreeBSD/Linux Kernel Cross Reference
sys/sys/vnode_if.h
1 /* $NetBSD: vnode_if.h,v 1.63 2006/11/30 21:07:36 pooka Exp $ */
2
3 /*
4 * Warning: DO NOT EDIT! This file is automatically generated!
5 * (Modifications made here may easily be lost!)
6 *
7 * Created from the file:
8 * NetBSD: vnode_if.src,v 1.50 2006/05/14 21:15:12 elad Exp
9 * by the script:
10 * NetBSD: vnode_if.sh,v 1.43 2006/11/30 21:06:29 pooka Exp
11 */
12
13 /*
14 * Copyright (c) 1992, 1993, 1994, 1995
15 * The Regents of the University of California. All rights reserved.
16 *
17 * Redistribution and use in source and binary forms, with or without
18 * modification, are permitted provided that the following conditions
19 * are met:
20 * 1. Redistributions of source code must retain the above copyright
21 * notice, this list of conditions and the following disclaimer.
22 * 2. Redistributions in binary form must reproduce the above copyright
23 * notice, this list of conditions and the following disclaimer in the
24 * documentation and/or other materials provided with the distribution.
25 * 3. Neither the name of the University nor the names of its contributors
26 * may be used to endorse or promote products derived from this software
27 * without specific prior written permission.
28 *
29 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
33 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39 * SUCH DAMAGE.
40 */
41
42 #ifndef _SYS_VNODE_IF_H_
43 #define _SYS_VNODE_IF_H_
44
45 #ifdef _KERNEL_OPT
46 #include "opt_vnode_lockdebug.h"
47 #endif /* _KERNEL_OPT */
48
49 extern const struct vnodeop_desc vop_default_desc;
50
51
52 /* Special cases: */
53 #include <sys/buf.h>
54
55 #define VOP_BWRITE_DESCOFFSET 1
56 struct vop_bwrite_args {
57 const struct vnodeop_desc *a_desc;
58 struct buf *a_bp;
59 };
60 extern const struct vnodeop_desc vop_bwrite_desc;
61 int VOP_BWRITE(struct buf *);
62 /* End of special cases */
63
64 #define VOP_LOOKUP_DESCOFFSET 2
65 struct vop_lookup_args {
66 const struct vnodeop_desc *a_desc;
67 struct vnode *a_dvp;
68 struct vnode **a_vpp;
69 struct componentname *a_cnp;
70 };
71 extern const struct vnodeop_desc vop_lookup_desc;
72 int VOP_LOOKUP(struct vnode *, struct vnode **, struct componentname *);
73
74 #define VOP_CREATE_DESCOFFSET 3
75 struct vop_create_args {
76 const struct vnodeop_desc *a_desc;
77 struct vnode *a_dvp;
78 struct vnode **a_vpp;
79 struct componentname *a_cnp;
80 struct vattr *a_vap;
81 };
82 extern const struct vnodeop_desc vop_create_desc;
83 int VOP_CREATE(struct vnode *, struct vnode **, struct componentname *,
84 struct vattr *);
85
86 #define VOP_MKNOD_DESCOFFSET 4
87 struct vop_mknod_args {
88 const struct vnodeop_desc *a_desc;
89 struct vnode *a_dvp;
90 struct vnode **a_vpp;
91 struct componentname *a_cnp;
92 struct vattr *a_vap;
93 };
94 extern const struct vnodeop_desc vop_mknod_desc;
95 int VOP_MKNOD(struct vnode *, struct vnode **, struct componentname *,
96 struct vattr *);
97
98 #define VOP_OPEN_DESCOFFSET 5
99 struct vop_open_args {
100 const struct vnodeop_desc *a_desc;
101 struct vnode *a_vp;
102 int a_mode;
103 kauth_cred_t a_cred;
104 struct lwp *a_l;
105 };
106 extern const struct vnodeop_desc vop_open_desc;
107 int VOP_OPEN(struct vnode *, int, kauth_cred_t, struct lwp *);
108
109 #define VOP_CLOSE_DESCOFFSET 6
110 struct vop_close_args {
111 const struct vnodeop_desc *a_desc;
112 struct vnode *a_vp;
113 int a_fflag;
114 kauth_cred_t a_cred;
115 struct lwp *a_l;
116 };
117 extern const struct vnodeop_desc vop_close_desc;
118 int VOP_CLOSE(struct vnode *, int, kauth_cred_t, struct lwp *);
119
120 #define VOP_ACCESS_DESCOFFSET 7
121 struct vop_access_args {
122 const struct vnodeop_desc *a_desc;
123 struct vnode *a_vp;
124 int a_mode;
125 kauth_cred_t a_cred;
126 struct lwp *a_l;
127 };
128 extern const struct vnodeop_desc vop_access_desc;
129 int VOP_ACCESS(struct vnode *, int, kauth_cred_t, struct lwp *);
130
131 #define VOP_GETATTR_DESCOFFSET 8
132 struct vop_getattr_args {
133 const struct vnodeop_desc *a_desc;
134 struct vnode *a_vp;
135 struct vattr *a_vap;
136 kauth_cred_t a_cred;
137 struct lwp *a_l;
138 };
139 extern const struct vnodeop_desc vop_getattr_desc;
140 int VOP_GETATTR(struct vnode *, struct vattr *, kauth_cred_t, struct lwp *);
141
142 #define VOP_SETATTR_DESCOFFSET 9
143 struct vop_setattr_args {
144 const struct vnodeop_desc *a_desc;
145 struct vnode *a_vp;
146 struct vattr *a_vap;
147 kauth_cred_t a_cred;
148 struct lwp *a_l;
149 };
150 extern const struct vnodeop_desc vop_setattr_desc;
151 int VOP_SETATTR(struct vnode *, struct vattr *, kauth_cred_t, struct lwp *);
152
153 #define VOP_READ_DESCOFFSET 10
154 struct vop_read_args {
155 const struct vnodeop_desc *a_desc;
156 struct vnode *a_vp;
157 struct uio *a_uio;
158 int a_ioflag;
159 kauth_cred_t a_cred;
160 };
161 extern const struct vnodeop_desc vop_read_desc;
162 int VOP_READ(struct vnode *, struct uio *, int, kauth_cred_t);
163
164 #define VOP_WRITE_DESCOFFSET 11
165 struct vop_write_args {
166 const struct vnodeop_desc *a_desc;
167 struct vnode *a_vp;
168 struct uio *a_uio;
169 int a_ioflag;
170 kauth_cred_t a_cred;
171 };
172 extern const struct vnodeop_desc vop_write_desc;
173 int VOP_WRITE(struct vnode *, struct uio *, int, kauth_cred_t);
174
175 #define VOP_IOCTL_DESCOFFSET 12
176 struct vop_ioctl_args {
177 const struct vnodeop_desc *a_desc;
178 struct vnode *a_vp;
179 u_long a_command;
180 void *a_data;
181 int a_fflag;
182 kauth_cred_t a_cred;
183 struct lwp *a_l;
184 };
185 extern const struct vnodeop_desc vop_ioctl_desc;
186 int VOP_IOCTL(struct vnode *, u_long, void *, int, kauth_cred_t, struct lwp *);
187
188 #define VOP_FCNTL_DESCOFFSET 13
189 struct vop_fcntl_args {
190 const struct vnodeop_desc *a_desc;
191 struct vnode *a_vp;
192 u_int a_command;
193 void *a_data;
194 int a_fflag;
195 kauth_cred_t a_cred;
196 struct lwp *a_l;
197 };
198 extern const struct vnodeop_desc vop_fcntl_desc;
199 int VOP_FCNTL(struct vnode *, u_int, void *, int, kauth_cred_t, struct lwp *);
200
201 #define VOP_POLL_DESCOFFSET 14
202 struct vop_poll_args {
203 const struct vnodeop_desc *a_desc;
204 struct vnode *a_vp;
205 int a_events;
206 struct lwp *a_l;
207 };
208 extern const struct vnodeop_desc vop_poll_desc;
209 int VOP_POLL(struct vnode *, int, struct lwp *);
210
211 #define VOP_KQFILTER_DESCOFFSET 15
212 struct vop_kqfilter_args {
213 const struct vnodeop_desc *a_desc;
214 struct vnode *a_vp;
215 struct knote *a_kn;
216 };
217 extern const struct vnodeop_desc vop_kqfilter_desc;
218 int VOP_KQFILTER(struct vnode *, struct knote *);
219
220 #define VOP_REVOKE_DESCOFFSET 16
221 struct vop_revoke_args {
222 const struct vnodeop_desc *a_desc;
223 struct vnode *a_vp;
224 int a_flags;
225 };
226 extern const struct vnodeop_desc vop_revoke_desc;
227 int VOP_REVOKE(struct vnode *, int);
228
229 #define VOP_MMAP_DESCOFFSET 17
230 struct vop_mmap_args {
231 const struct vnodeop_desc *a_desc;
232 struct vnode *a_vp;
233 int a_fflags;
234 kauth_cred_t a_cred;
235 struct lwp *a_l;
236 };
237 extern const struct vnodeop_desc vop_mmap_desc;
238 int VOP_MMAP(struct vnode *, int, kauth_cred_t, struct lwp *);
239
240 #define VOP_FSYNC_DESCOFFSET 18
241 struct vop_fsync_args {
242 const struct vnodeop_desc *a_desc;
243 struct vnode *a_vp;
244 kauth_cred_t a_cred;
245 int a_flags;
246 off_t a_offlo;
247 off_t a_offhi;
248 struct lwp *a_l;
249 };
250 extern const struct vnodeop_desc vop_fsync_desc;
251 int VOP_FSYNC(struct vnode *, kauth_cred_t, int, off_t, off_t, struct lwp *);
252
253 #define VOP_SEEK_DESCOFFSET 19
254 struct vop_seek_args {
255 const struct vnodeop_desc *a_desc;
256 struct vnode *a_vp;
257 off_t a_oldoff;
258 off_t a_newoff;
259 kauth_cred_t a_cred;
260 };
261 extern const struct vnodeop_desc vop_seek_desc;
262 int VOP_SEEK(struct vnode *, off_t, off_t, kauth_cred_t);
263
264 #define VOP_REMOVE_DESCOFFSET 20
265 struct vop_remove_args {
266 const struct vnodeop_desc *a_desc;
267 struct vnode *a_dvp;
268 struct vnode *a_vp;
269 struct componentname *a_cnp;
270 };
271 extern const struct vnodeop_desc vop_remove_desc;
272 int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *);
273
274 #define VOP_LINK_DESCOFFSET 21
275 struct vop_link_args {
276 const struct vnodeop_desc *a_desc;
277 struct vnode *a_dvp;
278 struct vnode *a_vp;
279 struct componentname *a_cnp;
280 };
281 extern const struct vnodeop_desc vop_link_desc;
282 int VOP_LINK(struct vnode *, struct vnode *, struct componentname *);
283
284 #define VOP_RENAME_DESCOFFSET 22
285 struct vop_rename_args {
286 const struct vnodeop_desc *a_desc;
287 struct vnode *a_fdvp;
288 struct vnode *a_fvp;
289 struct componentname *a_fcnp;
290 struct vnode *a_tdvp;
291 struct vnode *a_tvp;
292 struct componentname *a_tcnp;
293 };
294 extern const struct vnodeop_desc vop_rename_desc;
295 int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *,
296 struct vnode *, struct vnode *, struct componentname *);
297
298 #define VOP_MKDIR_DESCOFFSET 23
299 struct vop_mkdir_args {
300 const struct vnodeop_desc *a_desc;
301 struct vnode *a_dvp;
302 struct vnode **a_vpp;
303 struct componentname *a_cnp;
304 struct vattr *a_vap;
305 };
306 extern const struct vnodeop_desc vop_mkdir_desc;
307 int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *,
308 struct vattr *);
309
310 #define VOP_RMDIR_DESCOFFSET 24
311 struct vop_rmdir_args {
312 const struct vnodeop_desc *a_desc;
313 struct vnode *a_dvp;
314 struct vnode *a_vp;
315 struct componentname *a_cnp;
316 };
317 extern const struct vnodeop_desc vop_rmdir_desc;
318 int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *);
319
320 #define VOP_SYMLINK_DESCOFFSET 25
321 struct vop_symlink_args {
322 const struct vnodeop_desc *a_desc;
323 struct vnode *a_dvp;
324 struct vnode **a_vpp;
325 struct componentname *a_cnp;
326 struct vattr *a_vap;
327 char *a_target;
328 };
329 extern const struct vnodeop_desc vop_symlink_desc;
330 int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *,
331 struct vattr *, char *);
332
333 #define VOP_READDIR_DESCOFFSET 26
334 struct vop_readdir_args {
335 const struct vnodeop_desc *a_desc;
336 struct vnode *a_vp;
337 struct uio *a_uio;
338 kauth_cred_t a_cred;
339 int *a_eofflag;
340 off_t **a_cookies;
341 int *a_ncookies;
342 };
343 extern const struct vnodeop_desc vop_readdir_desc;
344 int VOP_READDIR(struct vnode *, struct uio *, kauth_cred_t, int *, off_t **,
345 int *);
346
347 #define VOP_READLINK_DESCOFFSET 27
348 struct vop_readlink_args {
349 const struct vnodeop_desc *a_desc;
350 struct vnode *a_vp;
351 struct uio *a_uio;
352 kauth_cred_t a_cred;
353 };
354 extern const struct vnodeop_desc vop_readlink_desc;
355 int VOP_READLINK(struct vnode *, struct uio *, kauth_cred_t);
356
357 #define VOP_ABORTOP_DESCOFFSET 28
358 struct vop_abortop_args {
359 const struct vnodeop_desc *a_desc;
360 struct vnode *a_dvp;
361 struct componentname *a_cnp;
362 };
363 extern const struct vnodeop_desc vop_abortop_desc;
364 int VOP_ABORTOP(struct vnode *, struct componentname *);
365
366 #define VOP_INACTIVE_DESCOFFSET 29
367 struct vop_inactive_args {
368 const struct vnodeop_desc *a_desc;
369 struct vnode *a_vp;
370 struct lwp *a_l;
371 };
372 extern const struct vnodeop_desc vop_inactive_desc;
373 int VOP_INACTIVE(struct vnode *, struct lwp *);
374
375 #define VOP_RECLAIM_DESCOFFSET 30
376 struct vop_reclaim_args {
377 const struct vnodeop_desc *a_desc;
378 struct vnode *a_vp;
379 struct lwp *a_l;
380 };
381 extern const struct vnodeop_desc vop_reclaim_desc;
382 int VOP_RECLAIM(struct vnode *, struct lwp *);
383
384 #define VOP_LOCK_DESCOFFSET 31
385 struct vop_lock_args {
386 const struct vnodeop_desc *a_desc;
387 struct vnode *a_vp;
388 int a_flags;
389 };
390 extern const struct vnodeop_desc vop_lock_desc;
391 int VOP_LOCK(struct vnode *, int);
392
393 #define VOP_UNLOCK_DESCOFFSET 32
394 struct vop_unlock_args {
395 const struct vnodeop_desc *a_desc;
396 struct vnode *a_vp;
397 int a_flags;
398 };
399 extern const struct vnodeop_desc vop_unlock_desc;
400 int VOP_UNLOCK(struct vnode *, int);
401
402 #define VOP_BMAP_DESCOFFSET 33
403 struct vop_bmap_args {
404 const struct vnodeop_desc *a_desc;
405 struct vnode *a_vp;
406 daddr_t a_bn;
407 struct vnode **a_vpp;
408 daddr_t *a_bnp;
409 int *a_runp;
410 };
411 extern const struct vnodeop_desc vop_bmap_desc;
412 int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *);
413
414 #define VOP_STRATEGY_DESCOFFSET 34
415 struct vop_strategy_args {
416 const struct vnodeop_desc *a_desc;
417 struct vnode *a_vp;
418 struct buf *a_bp;
419 };
420 extern const struct vnodeop_desc vop_strategy_desc;
421 int VOP_STRATEGY(struct vnode *, struct buf *);
422
423 #define VOP_PRINT_DESCOFFSET 35
424 struct vop_print_args {
425 const struct vnodeop_desc *a_desc;
426 struct vnode *a_vp;
427 };
428 extern const struct vnodeop_desc vop_print_desc;
429 int VOP_PRINT(struct vnode *);
430
431 #define VOP_ISLOCKED_DESCOFFSET 36
432 struct vop_islocked_args {
433 const struct vnodeop_desc *a_desc;
434 struct vnode *a_vp;
435 };
436 extern const struct vnodeop_desc vop_islocked_desc;
437 int VOP_ISLOCKED(struct vnode *);
438
439 #define VOP_PATHCONF_DESCOFFSET 37
440 struct vop_pathconf_args {
441 const struct vnodeop_desc *a_desc;
442 struct vnode *a_vp;
443 int a_name;
444 register_t *a_retval;
445 };
446 extern const struct vnodeop_desc vop_pathconf_desc;
447 int VOP_PATHCONF(struct vnode *, int, register_t *);
448
449 #define VOP_ADVLOCK_DESCOFFSET 38
450 struct vop_advlock_args {
451 const struct vnodeop_desc *a_desc;
452 struct vnode *a_vp;
453 void *a_id;
454 int a_op;
455 struct flock *a_fl;
456 int a_flags;
457 };
458 extern const struct vnodeop_desc vop_advlock_desc;
459 int VOP_ADVLOCK(struct vnode *, void *, int, struct flock *, int);
460
461 #define VOP_LEASE_DESCOFFSET 39
462 struct vop_lease_args {
463 const struct vnodeop_desc *a_desc;
464 struct vnode *a_vp;
465 struct lwp *a_l;
466 kauth_cred_t a_cred;
467 int a_flag;
468 };
469 extern const struct vnodeop_desc vop_lease_desc;
470 int VOP_LEASE(struct vnode *, struct lwp *, kauth_cred_t, int);
471
472 #define VOP_WHITEOUT_DESCOFFSET 40
473 struct vop_whiteout_args {
474 const struct vnodeop_desc *a_desc;
475 struct vnode *a_dvp;
476 struct componentname *a_cnp;
477 int a_flags;
478 };
479 extern const struct vnodeop_desc vop_whiteout_desc;
480 int VOP_WHITEOUT(struct vnode *, struct componentname *, int);
481
482 #define VOP_GETPAGES_DESCOFFSET 41
483 struct vop_getpages_args {
484 const struct vnodeop_desc *a_desc;
485 struct vnode *a_vp;
486 voff_t a_offset;
487 struct vm_page **a_m;
488 int *a_count;
489 int a_centeridx;
490 vm_prot_t a_access_type;
491 int a_advice;
492 int a_flags;
493 };
494 extern const struct vnodeop_desc vop_getpages_desc;
495 int VOP_GETPAGES(struct vnode *, voff_t, struct vm_page **, int *, int,
496 vm_prot_t, int, int);
497
498 #define VOP_PUTPAGES_DESCOFFSET 42
499 struct vop_putpages_args {
500 const struct vnodeop_desc *a_desc;
501 struct vnode *a_vp;
502 voff_t a_offlo;
503 voff_t a_offhi;
504 int a_flags;
505 };
506 extern const struct vnodeop_desc vop_putpages_desc;
507 int VOP_PUTPAGES(struct vnode *, voff_t, voff_t, int);
508
509 #define VOP_CLOSEEXTATTR_DESCOFFSET 43
510 struct vop_closeextattr_args {
511 const struct vnodeop_desc *a_desc;
512 struct vnode *a_vp;
513 int a_commit;
514 kauth_cred_t a_cred;
515 struct lwp *a_l;
516 };
517 extern const struct vnodeop_desc vop_closeextattr_desc;
518 int VOP_CLOSEEXTATTR(struct vnode *, int, kauth_cred_t, struct lwp *);
519
520 #define VOP_GETEXTATTR_DESCOFFSET 44
521 struct vop_getextattr_args {
522 const struct vnodeop_desc *a_desc;
523 struct vnode *a_vp;
524 int a_attrnamespace;
525 const char *a_name;
526 struct uio *a_uio;
527 size_t *a_size;
528 kauth_cred_t a_cred;
529 struct lwp *a_l;
530 };
531 extern const struct vnodeop_desc vop_getextattr_desc;
532 int VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *,
533 size_t *, kauth_cred_t, struct lwp *);
534
535 #define VOP_LISTEXTATTR_DESCOFFSET 45
536 struct vop_listextattr_args {
537 const struct vnodeop_desc *a_desc;
538 struct vnode *a_vp;
539 int a_attrnamespace;
540 struct uio *a_uio;
541 size_t *a_size;
542 kauth_cred_t a_cred;
543 struct lwp *a_l;
544 };
545 extern const struct vnodeop_desc vop_listextattr_desc;
546 int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *,
547 kauth_cred_t, struct lwp *);
548
549 #define VOP_OPENEXTATTR_DESCOFFSET 46
550 struct vop_openextattr_args {
551 const struct vnodeop_desc *a_desc;
552 struct vnode *a_vp;
553 kauth_cred_t a_cred;
554 struct lwp *a_l;
555 };
556 extern const struct vnodeop_desc vop_openextattr_desc;
557 int VOP_OPENEXTATTR(struct vnode *, kauth_cred_t, struct lwp *);
558
559 #define VOP_DELETEEXTATTR_DESCOFFSET 47
560 struct vop_deleteextattr_args {
561 const struct vnodeop_desc *a_desc;
562 struct vnode *a_vp;
563 int a_attrnamespace;
564 const char *a_name;
565 kauth_cred_t a_cred;
566 struct lwp *a_l;
567 };
568 extern const struct vnodeop_desc vop_deleteextattr_desc;
569 int VOP_DELETEEXTATTR(struct vnode *, int, const char *, kauth_cred_t,
570 struct lwp *);
571
572 #define VOP_SETEXTATTR_DESCOFFSET 48
573 struct vop_setextattr_args {
574 const struct vnodeop_desc *a_desc;
575 struct vnode *a_vp;
576 int a_attrnamespace;
577 const char *a_name;
578 struct uio *a_uio;
579 kauth_cred_t a_cred;
580 struct lwp *a_l;
581 };
582 extern const struct vnodeop_desc vop_setextattr_desc;
583 int VOP_SETEXTATTR(struct vnode *, int, const char *, struct uio *,
584 kauth_cred_t, struct lwp *);
585
586 #define VNODE_OPS_COUNT 49
587
588 /* End of special cases. */
589
590 #endif /* !_SYS_VNODE_IF_H_ */
Cache object: 80501a623ebe2b517ba560794d050bc3
|