]> git.saurik.com Git - apple/xnu.git/blob - bsd/vfs/vnode_if.c
xnu-517.tar.gz
[apple/xnu.git] / bsd / vfs / vnode_if.c
1
2 /*
3 * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
4 *
5 * @APPLE_LICENSE_HEADER_START@
6 *
7 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
8 *
9 * This file contains Original Code and/or Modifications of Original Code
10 * as defined in and that are subject to the Apple Public Source License
11 * Version 2.0 (the 'License'). You may not use this file except in
12 * compliance with the License. Please obtain a copy of the License at
13 * http://www.opensource.apple.com/apsl/ and read it before using this
14 * file.
15 *
16 * The Original Code and all software distributed under the License are
17 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
18 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
19 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
21 * Please see the License for the specific language governing rights and
22 * limitations under the License.
23 *
24 * @APPLE_LICENSE_HEADER_END@
25 */
26 /*
27 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
28 * Copyright (c) 1992, 1993, 1994, 1995
29 * The Regents of the University of California. All rights reserved.
30 *
31 * Redistribution and use in source and binary forms, with or without
32 * modification, are permitted provided that the following conditions
33 * are met:
34 * 1. Redistributions of source code must retain the above copyright
35 * notice, this list of conditions and the following disclaimer.
36 * 2. Redistributions in binary form must reproduce the above copyright
37 * notice, this list of conditions and the following disclaimer in the
38 * documentation and/or other materials provided with the distribution.
39 * 3. All advertising materials mentioning features or use of this software
40 * must display the following acknowledgement:
41 * This product includes software developed by the University of
42 * California, Berkeley and its contributors.
43 * 4. Neither the name of the University nor the names of its contributors
44 * may be used to endorse or promote products derived from this software
45 * without specific prior written permission.
46 *
47 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND
48 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
49 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
50 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
51 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
52 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
53 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
54 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
55 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
56 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
57 * SUCH DAMAGE.
58 */
59
60
61 /*
62 * Warning: This file is generated automatically.
63 * (Modifications made here may easily be lost!)
64 *
65 * Created by the script:
66 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
67 */
68
69
70 #include <sys/param.h>
71 #include <sys/mount.h>
72 #include <sys/vm.h>
73 #include <sys/vnode.h>
74
75 struct vnodeop_desc vop_default_desc = {
76 0,
77 "default",
78 0,
79 NULL,
80 VDESC_NO_OFFSET,
81 VDESC_NO_OFFSET,
82 VDESC_NO_OFFSET,
83 VDESC_NO_OFFSET,
84 NULL,
85 };
86
87
88 int vop_lookup_vp_offsets[] = {
89 VOPARG_OFFSETOF(struct vop_lookup_args,a_dvp),
90 VDESC_NO_OFFSET
91 };
92 struct vnodeop_desc vop_lookup_desc = {
93 0,
94 "vop_lookup",
95 0,
96 vop_lookup_vp_offsets,
97 VOPARG_OFFSETOF(struct vop_lookup_args, a_vpp),
98 VDESC_NO_OFFSET,
99 VDESC_NO_OFFSET,
100 VOPARG_OFFSETOF(struct vop_lookup_args, a_cnp),
101 NULL,
102 };
103
104 int vop_cachedlookup_vp_offsets[] = {
105 VOPARG_OFFSETOF(struct vop_cachedlookup_args,a_dvp),
106 VDESC_NO_OFFSET
107 };
108 struct vnodeop_desc vop_cachedlookup_desc = {
109 0,
110 "vop_cachedlookup",
111 0,
112 vop_cachedlookup_vp_offsets,
113 VOPARG_OFFSETOF(struct vop_cachedlookup_args, a_vpp),
114 VDESC_NO_OFFSET,
115 VDESC_NO_OFFSET,
116 VOPARG_OFFSETOF(struct vop_cachedlookup_args, a_cnp),
117 NULL,
118 };
119
120 int vop_create_vp_offsets[] = {
121 VOPARG_OFFSETOF(struct vop_create_args,a_dvp),
122 VDESC_NO_OFFSET
123 };
124 struct vnodeop_desc vop_create_desc = {
125 0,
126 "vop_create",
127 0 | VDESC_VP0_WILLRELE,
128 vop_create_vp_offsets,
129 VOPARG_OFFSETOF(struct vop_create_args, a_vpp),
130 VDESC_NO_OFFSET,
131 VDESC_NO_OFFSET,
132 VOPARG_OFFSETOF(struct vop_create_args, a_cnp),
133 NULL,
134 };
135
136 int vop_whiteout_vp_offsets[] = {
137 VOPARG_OFFSETOF(struct vop_whiteout_args,a_dvp),
138 VDESC_NO_OFFSET
139 };
140 struct vnodeop_desc vop_whiteout_desc = {
141 0,
142 "vop_whiteout",
143 0 | VDESC_VP0_WILLRELE,
144 vop_whiteout_vp_offsets,
145 VDESC_NO_OFFSET,
146 VDESC_NO_OFFSET,
147 VDESC_NO_OFFSET,
148 VOPARG_OFFSETOF(struct vop_whiteout_args, a_cnp),
149 NULL,
150 };
151
152 int vop_mknod_vp_offsets[] = {
153 VOPARG_OFFSETOF(struct vop_mknod_args,a_dvp),
154 VDESC_NO_OFFSET
155 };
156 struct vnodeop_desc vop_mknod_desc = {
157 0,
158 "vop_mknod",
159 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
160 vop_mknod_vp_offsets,
161 VOPARG_OFFSETOF(struct vop_mknod_args, a_vpp),
162 VDESC_NO_OFFSET,
163 VDESC_NO_OFFSET,
164 VOPARG_OFFSETOF(struct vop_mknod_args, a_cnp),
165 NULL,
166 };
167
168 int vop_mkcomplex_vp_offsets[] = {
169 VOPARG_OFFSETOF(struct vop_mkcomplex_args,a_dvp),
170 VDESC_NO_OFFSET
171 };
172 struct vnodeop_desc vop_mkcomplex_desc = {
173 0,
174 "vop_mkcomplex",
175 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
176 vop_mkcomplex_vp_offsets,
177 VOPARG_OFFSETOF(struct vop_mkcomplex_args, a_vpp),
178 VDESC_NO_OFFSET,
179 VDESC_NO_OFFSET,
180 VOPARG_OFFSETOF(struct vop_mkcomplex_args, a_cnp),
181 NULL,
182 };
183
184 int vop_open_vp_offsets[] = {
185 VOPARG_OFFSETOF(struct vop_open_args,a_vp),
186 VDESC_NO_OFFSET
187 };
188 struct vnodeop_desc vop_open_desc = {
189 0,
190 "vop_open",
191 0,
192 vop_open_vp_offsets,
193 VDESC_NO_OFFSET,
194 VOPARG_OFFSETOF(struct vop_open_args, a_cred),
195 VOPARG_OFFSETOF(struct vop_open_args, a_p),
196 VDESC_NO_OFFSET,
197 NULL,
198 };
199
200 int vop_close_vp_offsets[] = {
201 VOPARG_OFFSETOF(struct vop_close_args,a_vp),
202 VDESC_NO_OFFSET
203 };
204 struct vnodeop_desc vop_close_desc = {
205 0,
206 "vop_close",
207 0,
208 vop_close_vp_offsets,
209 VDESC_NO_OFFSET,
210 VOPARG_OFFSETOF(struct vop_close_args, a_cred),
211 VOPARG_OFFSETOF(struct vop_close_args, a_p),
212 VDESC_NO_OFFSET,
213 NULL,
214 };
215
216 int vop_access_vp_offsets[] = {
217 VOPARG_OFFSETOF(struct vop_access_args,a_vp),
218 VDESC_NO_OFFSET
219 };
220 struct vnodeop_desc vop_access_desc = {
221 0,
222 "vop_access",
223 0,
224 vop_access_vp_offsets,
225 VDESC_NO_OFFSET,
226 VOPARG_OFFSETOF(struct vop_access_args, a_cred),
227 VOPARG_OFFSETOF(struct vop_access_args, a_p),
228 VDESC_NO_OFFSET,
229 NULL,
230 };
231
232 int vop_getattr_vp_offsets[] = {
233 VOPARG_OFFSETOF(struct vop_getattr_args,a_vp),
234 VDESC_NO_OFFSET
235 };
236 struct vnodeop_desc vop_getattr_desc = {
237 0,
238 "vop_getattr",
239 0,
240 vop_getattr_vp_offsets,
241 VDESC_NO_OFFSET,
242 VOPARG_OFFSETOF(struct vop_getattr_args, a_cred),
243 VOPARG_OFFSETOF(struct vop_getattr_args, a_p),
244 VDESC_NO_OFFSET,
245 NULL,
246 };
247
248 int vop_setattr_vp_offsets[] = {
249 VOPARG_OFFSETOF(struct vop_setattr_args,a_vp),
250 VDESC_NO_OFFSET
251 };
252 struct vnodeop_desc vop_setattr_desc = {
253 0,
254 "vop_setattr",
255 0,
256 vop_setattr_vp_offsets,
257 VDESC_NO_OFFSET,
258 VOPARG_OFFSETOF(struct vop_setattr_args, a_cred),
259 VOPARG_OFFSETOF(struct vop_setattr_args, a_p),
260 VDESC_NO_OFFSET,
261 NULL,
262 };
263
264 int vop_getattrlist_vp_offsets[] = {
265 VOPARG_OFFSETOF(struct vop_getattrlist_args,a_vp),
266 VDESC_NO_OFFSET
267 };
268 struct vnodeop_desc vop_getattrlist_desc = {
269 0,
270 "vop_getattrlist",
271 0,
272 vop_getattrlist_vp_offsets,
273 VDESC_NO_OFFSET,
274 VOPARG_OFFSETOF(struct vop_getattrlist_args, a_cred),
275 VOPARG_OFFSETOF(struct vop_getattrlist_args, a_p),
276 VDESC_NO_OFFSET,
277 NULL,
278 };
279
280 int vop_setattrlist_vp_offsets[] = {
281 VOPARG_OFFSETOF(struct vop_setattrlist_args,a_vp),
282 VDESC_NO_OFFSET
283 };
284 struct vnodeop_desc vop_setattrlist_desc = {
285 0,
286 "vop_setattrlist",
287 0,
288 vop_setattrlist_vp_offsets,
289 VDESC_NO_OFFSET,
290 VOPARG_OFFSETOF(struct vop_setattrlist_args, a_cred),
291 VOPARG_OFFSETOF(struct vop_setattrlist_args, a_p),
292 VDESC_NO_OFFSET,
293 NULL,
294 };
295
296 int vop_read_vp_offsets[] = {
297 VOPARG_OFFSETOF(struct vop_read_args,a_vp),
298 VDESC_NO_OFFSET
299 };
300 struct vnodeop_desc vop_read_desc = {
301 0,
302 "vop_read",
303 0,
304 vop_read_vp_offsets,
305 VDESC_NO_OFFSET,
306 VOPARG_OFFSETOF(struct vop_read_args, a_cred),
307 VDESC_NO_OFFSET,
308 VDESC_NO_OFFSET,
309 NULL,
310 };
311
312 int vop_write_vp_offsets[] = {
313 VOPARG_OFFSETOF(struct vop_write_args,a_vp),
314 VDESC_NO_OFFSET
315 };
316 struct vnodeop_desc vop_write_desc = {
317 0,
318 "vop_write",
319 0,
320 vop_write_vp_offsets,
321 VDESC_NO_OFFSET,
322 VOPARG_OFFSETOF(struct vop_write_args, a_cred),
323 VDESC_NO_OFFSET,
324 VDESC_NO_OFFSET,
325 NULL,
326 };
327
328 int vop_lease_vp_offsets[] = {
329 VOPARG_OFFSETOF(struct vop_lease_args,a_vp),
330 VDESC_NO_OFFSET
331 };
332 struct vnodeop_desc vop_lease_desc = {
333 0,
334 "vop_lease",
335 0,
336 vop_lease_vp_offsets,
337 VDESC_NO_OFFSET,
338 VOPARG_OFFSETOF(struct vop_lease_args, a_cred),
339 VOPARG_OFFSETOF(struct vop_lease_args, a_p),
340 VDESC_NO_OFFSET,
341 NULL,
342 };
343
344 int vop_ioctl_vp_offsets[] = {
345 VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp),
346 VDESC_NO_OFFSET
347 };
348 struct vnodeop_desc vop_ioctl_desc = {
349 0,
350 "vop_ioctl",
351 0,
352 vop_ioctl_vp_offsets,
353 VDESC_NO_OFFSET,
354 VOPARG_OFFSETOF(struct vop_ioctl_args, a_cred),
355 VOPARG_OFFSETOF(struct vop_ioctl_args, a_p),
356 VDESC_NO_OFFSET,
357 NULL,
358 };
359
360 int vop_select_vp_offsets[] = {
361 VOPARG_OFFSETOF(struct vop_select_args,a_vp),
362 VDESC_NO_OFFSET
363 };
364 struct vnodeop_desc vop_select_desc = {
365 0,
366 "vop_select",
367 0,
368 vop_select_vp_offsets,
369 VDESC_NO_OFFSET,
370 VOPARG_OFFSETOF(struct vop_select_args, a_cred),
371 VOPARG_OFFSETOF(struct vop_select_args, a_p),
372 VDESC_NO_OFFSET,
373 NULL,
374 };
375
376 int vop_exchange_vp_offsets[] = {
377 VOPARG_OFFSETOF(struct vop_exchange_args,a_fvp),
378 VOPARG_OFFSETOF(struct vop_exchange_args,a_tvp),
379 VDESC_NO_OFFSET
380 };
381 struct vnodeop_desc vop_exchange_desc = {
382 0,
383 "vop_exchange",
384 0,
385 vop_exchange_vp_offsets,
386 VDESC_NO_OFFSET,
387 VOPARG_OFFSETOF(struct vop_exchange_args, a_cred),
388 VOPARG_OFFSETOF(struct vop_exchange_args, a_p),
389 VDESC_NO_OFFSET,
390 NULL,
391 };
392
393 int vop_kqfilt_add_vp_offsets[] = {
394 VOPARG_OFFSETOF(struct vop_kqfilt_add_args,a_vp),
395 VDESC_NO_OFFSET
396 };
397 struct vnodeop_desc vop_kqfilt_add_desc = {
398 0,
399 "vop_kqfilt_add",
400 0,
401 vop_kqfilt_add_vp_offsets,
402 VDESC_NO_OFFSET,
403 VDESC_NO_OFFSET,
404 VOPARG_OFFSETOF(struct vop_kqfilt_add_args, a_p),
405 VDESC_NO_OFFSET,
406 NULL,
407 };
408
409 int vop_kqfilt_remove_vp_offsets[] = {
410 VOPARG_OFFSETOF(struct vop_kqfilt_remove_args,a_vp),
411 VDESC_NO_OFFSET
412 };
413 struct vnodeop_desc vop_kqfilt_remove_desc = {
414 0,
415 "vop_kqfilt_remove",
416 0,
417 vop_kqfilt_remove_vp_offsets,
418 VDESC_NO_OFFSET,
419 VDESC_NO_OFFSET,
420 VOPARG_OFFSETOF(struct vop_kqfilt_remove_args, a_p),
421 VDESC_NO_OFFSET,
422 NULL,
423 };
424
425 int vop_revoke_vp_offsets[] = {
426 VOPARG_OFFSETOF(struct vop_revoke_args,a_vp),
427 VDESC_NO_OFFSET
428 };
429 struct vnodeop_desc vop_revoke_desc = {
430 0,
431 "vop_revoke",
432 0,
433 vop_revoke_vp_offsets,
434 VDESC_NO_OFFSET,
435 VDESC_NO_OFFSET,
436 VDESC_NO_OFFSET,
437 VDESC_NO_OFFSET,
438 NULL,
439 };
440
441 int vop_mmap_vp_offsets[] = {
442 VOPARG_OFFSETOF(struct vop_mmap_args,a_vp),
443 VDESC_NO_OFFSET
444 };
445 struct vnodeop_desc vop_mmap_desc = {
446 0,
447 "vop_mmap",
448 0,
449 vop_mmap_vp_offsets,
450 VDESC_NO_OFFSET,
451 VOPARG_OFFSETOF(struct vop_mmap_args, a_cred),
452 VOPARG_OFFSETOF(struct vop_mmap_args, a_p),
453 VDESC_NO_OFFSET,
454 NULL,
455 };
456
457 int vop_fsync_vp_offsets[] = {
458 VOPARG_OFFSETOF(struct vop_fsync_args,a_vp),
459 VDESC_NO_OFFSET
460 };
461 struct vnodeop_desc vop_fsync_desc = {
462 0,
463 "vop_fsync",
464 0,
465 vop_fsync_vp_offsets,
466 VDESC_NO_OFFSET,
467 VOPARG_OFFSETOF(struct vop_fsync_args, a_cred),
468 VOPARG_OFFSETOF(struct vop_fsync_args, a_p),
469 VDESC_NO_OFFSET,
470 NULL,
471 };
472
473 int vop_seek_vp_offsets[] = {
474 VOPARG_OFFSETOF(struct vop_seek_args,a_vp),
475 VDESC_NO_OFFSET
476 };
477 struct vnodeop_desc vop_seek_desc = {
478 0,
479 "vop_seek",
480 0,
481 vop_seek_vp_offsets,
482 VDESC_NO_OFFSET,
483 VOPARG_OFFSETOF(struct vop_seek_args, a_cred),
484 VDESC_NO_OFFSET,
485 VDESC_NO_OFFSET,
486 NULL,
487 };
488
489 int vop_remove_vp_offsets[] = {
490 VOPARG_OFFSETOF(struct vop_remove_args,a_dvp),
491 VOPARG_OFFSETOF(struct vop_remove_args,a_vp),
492 VDESC_NO_OFFSET
493 };
494 struct vnodeop_desc vop_remove_desc = {
495 0,
496 "vop_remove",
497 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
498 vop_remove_vp_offsets,
499 VDESC_NO_OFFSET,
500 VDESC_NO_OFFSET,
501 VDESC_NO_OFFSET,
502 VOPARG_OFFSETOF(struct vop_remove_args, a_cnp),
503 NULL,
504 };
505
506 int vop_link_vp_offsets[] = {
507 VOPARG_OFFSETOF(struct vop_link_args,a_vp),
508 VOPARG_OFFSETOF(struct vop_link_args,a_tdvp),
509 VDESC_NO_OFFSET
510 };
511 struct vnodeop_desc vop_link_desc = {
512 0,
513 "vop_link",
514 0 | VDESC_VP1_WILLRELE,
515 vop_link_vp_offsets,
516 VDESC_NO_OFFSET,
517 VDESC_NO_OFFSET,
518 VDESC_NO_OFFSET,
519 VOPARG_OFFSETOF(struct vop_link_args, a_cnp),
520 NULL,
521 };
522
523 int vop_rename_vp_offsets[] = {
524 VOPARG_OFFSETOF(struct vop_rename_args,a_fdvp),
525 VOPARG_OFFSETOF(struct vop_rename_args,a_fvp),
526 VOPARG_OFFSETOF(struct vop_rename_args,a_tdvp),
527 VOPARG_OFFSETOF(struct vop_rename_args,a_tvp),
528 VDESC_NO_OFFSET
529 };
530 struct vnodeop_desc vop_rename_desc = {
531 0,
532 "vop_rename",
533 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
534 vop_rename_vp_offsets,
535 VDESC_NO_OFFSET,
536 VDESC_NO_OFFSET,
537 VDESC_NO_OFFSET,
538 VOPARG_OFFSETOF(struct vop_rename_args, a_fcnp),
539 NULL,
540 };
541
542 int vop_mkdir_vp_offsets[] = {
543 VOPARG_OFFSETOF(struct vop_mkdir_args,a_dvp),
544 VDESC_NO_OFFSET
545 };
546 struct vnodeop_desc vop_mkdir_desc = {
547 0,
548 "vop_mkdir",
549 0 | VDESC_VP0_WILLRELE,
550 vop_mkdir_vp_offsets,
551 VOPARG_OFFSETOF(struct vop_mkdir_args, a_vpp),
552 VDESC_NO_OFFSET,
553 VDESC_NO_OFFSET,
554 VOPARG_OFFSETOF(struct vop_mkdir_args, a_cnp),
555 NULL,
556 };
557
558 int vop_rmdir_vp_offsets[] = {
559 VOPARG_OFFSETOF(struct vop_rmdir_args,a_dvp),
560 VOPARG_OFFSETOF(struct vop_rmdir_args,a_vp),
561 VDESC_NO_OFFSET
562 };
563 struct vnodeop_desc vop_rmdir_desc = {
564 0,
565 "vop_rmdir",
566 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
567 vop_rmdir_vp_offsets,
568 VDESC_NO_OFFSET,
569 VDESC_NO_OFFSET,
570 VDESC_NO_OFFSET,
571 VOPARG_OFFSETOF(struct vop_rmdir_args, a_cnp),
572 NULL,
573 };
574
575 int vop_symlink_vp_offsets[] = {
576 VOPARG_OFFSETOF(struct vop_symlink_args,a_dvp),
577 VDESC_NO_OFFSET
578 };
579 struct vnodeop_desc vop_symlink_desc = {
580 0,
581 "vop_symlink",
582 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
583 vop_symlink_vp_offsets,
584 VOPARG_OFFSETOF(struct vop_symlink_args, a_vpp),
585 VDESC_NO_OFFSET,
586 VDESC_NO_OFFSET,
587 VOPARG_OFFSETOF(struct vop_symlink_args, a_cnp),
588 NULL,
589 };
590
591 int vop_readdir_vp_offsets[] = {
592 VOPARG_OFFSETOF(struct vop_readdir_args,a_vp),
593 VDESC_NO_OFFSET
594 };
595 struct vnodeop_desc vop_readdir_desc = {
596 0,
597 "vop_readdir",
598 0,
599 vop_readdir_vp_offsets,
600 VDESC_NO_OFFSET,
601 VOPARG_OFFSETOF(struct vop_readdir_args, a_cred),
602 VDESC_NO_OFFSET,
603 VDESC_NO_OFFSET,
604 NULL,
605 };
606
607 int vop_readdirattr_vp_offsets[] = {
608 VOPARG_OFFSETOF(struct vop_readdirattr_args,a_vp),
609 VDESC_NO_OFFSET
610 };
611 struct vnodeop_desc vop_readdirattr_desc = {
612 0,
613 "vop_readdirattr",
614 0,
615 vop_readdirattr_vp_offsets,
616 VDESC_NO_OFFSET,
617 VOPARG_OFFSETOF(struct vop_readdirattr_args, a_cred),
618 VDESC_NO_OFFSET,
619 VDESC_NO_OFFSET,
620 NULL,
621 };
622
623 int vop_readlink_vp_offsets[] = {
624 VOPARG_OFFSETOF(struct vop_readlink_args,a_vp),
625 VDESC_NO_OFFSET
626 };
627 struct vnodeop_desc vop_readlink_desc = {
628 0,
629 "vop_readlink",
630 0,
631 vop_readlink_vp_offsets,
632 VDESC_NO_OFFSET,
633 VOPARG_OFFSETOF(struct vop_readlink_args, a_cred),
634 VDESC_NO_OFFSET,
635 VDESC_NO_OFFSET,
636 NULL,
637 };
638
639 int vop_abortop_vp_offsets[] = {
640 VOPARG_OFFSETOF(struct vop_abortop_args,a_dvp),
641 VDESC_NO_OFFSET
642 };
643 struct vnodeop_desc vop_abortop_desc = {
644 0,
645 "vop_abortop",
646 0,
647 vop_abortop_vp_offsets,
648 VDESC_NO_OFFSET,
649 VDESC_NO_OFFSET,
650 VDESC_NO_OFFSET,
651 VOPARG_OFFSETOF(struct vop_abortop_args, a_cnp),
652 NULL,
653 };
654
655 int vop_inactive_vp_offsets[] = {
656 VOPARG_OFFSETOF(struct vop_inactive_args,a_vp),
657 VDESC_NO_OFFSET
658 };
659 struct vnodeop_desc vop_inactive_desc = {
660 0,
661 "vop_inactive",
662 0,
663 vop_inactive_vp_offsets,
664 VDESC_NO_OFFSET,
665 VDESC_NO_OFFSET,
666 VOPARG_OFFSETOF(struct vop_inactive_args, a_p),
667 VDESC_NO_OFFSET,
668 NULL,
669 };
670
671 int vop_reclaim_vp_offsets[] = {
672 VOPARG_OFFSETOF(struct vop_reclaim_args,a_vp),
673 VDESC_NO_OFFSET
674 };
675 struct vnodeop_desc vop_reclaim_desc = {
676 0,
677 "vop_reclaim",
678 0,
679 vop_reclaim_vp_offsets,
680 VDESC_NO_OFFSET,
681 VDESC_NO_OFFSET,
682 VOPARG_OFFSETOF(struct vop_reclaim_args, a_p),
683 VDESC_NO_OFFSET,
684 NULL,
685 };
686
687 int vop_lock_vp_offsets[] = {
688 VOPARG_OFFSETOF(struct vop_lock_args,a_vp),
689 VDESC_NO_OFFSET
690 };
691 struct vnodeop_desc vop_lock_desc = {
692 0,
693 "vop_lock",
694 0,
695 vop_lock_vp_offsets,
696 VDESC_NO_OFFSET,
697 VDESC_NO_OFFSET,
698 VOPARG_OFFSETOF(struct vop_lock_args, a_p),
699 VDESC_NO_OFFSET,
700 NULL,
701 };
702
703 int vop_unlock_vp_offsets[] = {
704 VOPARG_OFFSETOF(struct vop_unlock_args,a_vp),
705 VDESC_NO_OFFSET
706 };
707 struct vnodeop_desc vop_unlock_desc = {
708 0,
709 "vop_unlock",
710 0,
711 vop_unlock_vp_offsets,
712 VDESC_NO_OFFSET,
713 VDESC_NO_OFFSET,
714 VOPARG_OFFSETOF(struct vop_unlock_args, a_p),
715 VDESC_NO_OFFSET,
716 NULL,
717 };
718
719 int vop_bmap_vp_offsets[] = {
720 VOPARG_OFFSETOF(struct vop_bmap_args,a_vp),
721 VDESC_NO_OFFSET
722 };
723 struct vnodeop_desc vop_bmap_desc = {
724 0,
725 "vop_bmap",
726 0,
727 vop_bmap_vp_offsets,
728 VOPARG_OFFSETOF(struct vop_bmap_args, a_vpp),
729 VDESC_NO_OFFSET,
730 VDESC_NO_OFFSET,
731 VDESC_NO_OFFSET,
732 NULL,
733 };
734
735 int vop_print_vp_offsets[] = {
736 VOPARG_OFFSETOF(struct vop_print_args,a_vp),
737 VDESC_NO_OFFSET
738 };
739 struct vnodeop_desc vop_print_desc = {
740 0,
741 "vop_print",
742 0,
743 vop_print_vp_offsets,
744 VDESC_NO_OFFSET,
745 VDESC_NO_OFFSET,
746 VDESC_NO_OFFSET,
747 VDESC_NO_OFFSET,
748 NULL,
749 };
750
751 int vop_islocked_vp_offsets[] = {
752 VOPARG_OFFSETOF(struct vop_islocked_args,a_vp),
753 VDESC_NO_OFFSET
754 };
755 struct vnodeop_desc vop_islocked_desc = {
756 0,
757 "vop_islocked",
758 0,
759 vop_islocked_vp_offsets,
760 VDESC_NO_OFFSET,
761 VDESC_NO_OFFSET,
762 VDESC_NO_OFFSET,
763 VDESC_NO_OFFSET,
764 NULL,
765 };
766
767 int vop_pathconf_vp_offsets[] = {
768 VOPARG_OFFSETOF(struct vop_pathconf_args,a_vp),
769 VDESC_NO_OFFSET
770 };
771 struct vnodeop_desc vop_pathconf_desc = {
772 0,
773 "vop_pathconf",
774 0,
775 vop_pathconf_vp_offsets,
776 VDESC_NO_OFFSET,
777 VDESC_NO_OFFSET,
778 VDESC_NO_OFFSET,
779 VDESC_NO_OFFSET,
780 NULL,
781 };
782
783 int vop_advlock_vp_offsets[] = {
784 VOPARG_OFFSETOF(struct vop_advlock_args,a_vp),
785 VDESC_NO_OFFSET
786 };
787 struct vnodeop_desc vop_advlock_desc = {
788 0,
789 "vop_advlock",
790 0,
791 vop_advlock_vp_offsets,
792 VDESC_NO_OFFSET,
793 VDESC_NO_OFFSET,
794 VDESC_NO_OFFSET,
795 VDESC_NO_OFFSET,
796 NULL,
797 };
798
799 int vop_blkatoff_vp_offsets[] = {
800 VOPARG_OFFSETOF(struct vop_blkatoff_args,a_vp),
801 VDESC_NO_OFFSET
802 };
803 struct vnodeop_desc vop_blkatoff_desc = {
804 0,
805 "vop_blkatoff",
806 0,
807 vop_blkatoff_vp_offsets,
808 VDESC_NO_OFFSET,
809 VDESC_NO_OFFSET,
810 VDESC_NO_OFFSET,
811 VDESC_NO_OFFSET,
812 NULL,
813 };
814
815 int vop_valloc_vp_offsets[] = {
816 VOPARG_OFFSETOF(struct vop_valloc_args,a_pvp),
817 VDESC_NO_OFFSET
818 };
819 struct vnodeop_desc vop_valloc_desc = {
820 0,
821 "vop_valloc",
822 0,
823 vop_valloc_vp_offsets,
824 VOPARG_OFFSETOF(struct vop_valloc_args, a_vpp),
825 VOPARG_OFFSETOF(struct vop_valloc_args, a_cred),
826 VDESC_NO_OFFSET,
827 VDESC_NO_OFFSET,
828 NULL,
829 };
830
831 int vop_reallocblks_vp_offsets[] = {
832 VOPARG_OFFSETOF(struct vop_reallocblks_args,a_vp),
833 VDESC_NO_OFFSET
834 };
835 struct vnodeop_desc vop_reallocblks_desc = {
836 0,
837 "vop_reallocblks",
838 0,
839 vop_reallocblks_vp_offsets,
840 VDESC_NO_OFFSET,
841 VDESC_NO_OFFSET,
842 VDESC_NO_OFFSET,
843 VDESC_NO_OFFSET,
844 NULL,
845 };
846
847 int vop_vfree_vp_offsets[] = {
848 VOPARG_OFFSETOF(struct vop_vfree_args,a_pvp),
849 VDESC_NO_OFFSET
850 };
851 struct vnodeop_desc vop_vfree_desc = {
852 0,
853 "vop_vfree",
854 0,
855 vop_vfree_vp_offsets,
856 VDESC_NO_OFFSET,
857 VDESC_NO_OFFSET,
858 VDESC_NO_OFFSET,
859 VDESC_NO_OFFSET,
860 NULL,
861 };
862
863 int vop_truncate_vp_offsets[] = {
864 VOPARG_OFFSETOF(struct vop_truncate_args,a_vp),
865 VDESC_NO_OFFSET
866 };
867 struct vnodeop_desc vop_truncate_desc = {
868 0,
869 "vop_truncate",
870 0,
871 vop_truncate_vp_offsets,
872 VDESC_NO_OFFSET,
873 VOPARG_OFFSETOF(struct vop_truncate_args, a_cred),
874 VOPARG_OFFSETOF(struct vop_truncate_args, a_p),
875 VDESC_NO_OFFSET,
876 NULL,
877 };
878
879 int vop_allocate_vp_offsets[] = {
880 VOPARG_OFFSETOF(struct vop_allocate_args,a_vp),
881 VDESC_NO_OFFSET
882 };
883 struct vnodeop_desc vop_allocate_desc = {
884 0,
885 "vop_allocate",
886 0,
887 vop_allocate_vp_offsets,
888 VDESC_NO_OFFSET,
889 VOPARG_OFFSETOF(struct vop_allocate_args, a_cred),
890 VOPARG_OFFSETOF(struct vop_allocate_args, a_p),
891 VDESC_NO_OFFSET,
892 NULL,
893 };
894
895 int vop_update_vp_offsets[] = {
896 VOPARG_OFFSETOF(struct vop_update_args,a_vp),
897 VDESC_NO_OFFSET
898 };
899 struct vnodeop_desc vop_update_desc = {
900 0,
901 "vop_update",
902 0,
903 vop_update_vp_offsets,
904 VDESC_NO_OFFSET,
905 VDESC_NO_OFFSET,
906 VDESC_NO_OFFSET,
907 VDESC_NO_OFFSET,
908 NULL,
909 };
910
911 int vop_pgrd_vp_offsets[] = {
912 VOPARG_OFFSETOF(struct vop_pgrd_args,a_vp),
913 VDESC_NO_OFFSET
914 };
915 struct vnodeop_desc vop_pgrd_desc = {
916 0,
917 "vop_pgrd",
918 0,
919 vop_pgrd_vp_offsets,
920 VDESC_NO_OFFSET,
921 VOPARG_OFFSETOF(struct vop_pgrd_args, a_cred),
922 VDESC_NO_OFFSET,
923 VDESC_NO_OFFSET,
924 NULL,
925 };
926
927 int vop_pgwr_vp_offsets[] = {
928 VOPARG_OFFSETOF(struct vop_pgwr_args,a_vp),
929 VDESC_NO_OFFSET
930 };
931 struct vnodeop_desc vop_pgwr_desc = {
932 0,
933 "vop_pgwr",
934 0,
935 vop_pgwr_vp_offsets,
936 VDESC_NO_OFFSET,
937 VOPARG_OFFSETOF(struct vop_pgwr_args, a_cred),
938 VDESC_NO_OFFSET,
939 VDESC_NO_OFFSET,
940 NULL,
941 };
942
943 int vop_pagein_vp_offsets[] = {
944 VOPARG_OFFSETOF(struct vop_pagein_args,a_vp),
945 VDESC_NO_OFFSET
946 };
947 struct vnodeop_desc vop_pagein_desc = {
948 0,
949 "vop_pagein",
950 0,
951 vop_pagein_vp_offsets,
952 VDESC_NO_OFFSET,
953 VOPARG_OFFSETOF(struct vop_pagein_args, a_cred),
954 VDESC_NO_OFFSET,
955 VDESC_NO_OFFSET,
956 NULL,
957 };
958
959 int vop_pageout_vp_offsets[] = {
960 VOPARG_OFFSETOF(struct vop_pageout_args,a_vp),
961 VDESC_NO_OFFSET
962 };
963 struct vnodeop_desc vop_pageout_desc = {
964 0,
965 "vop_pageout",
966 0,
967 vop_pageout_vp_offsets,
968 VDESC_NO_OFFSET,
969 VOPARG_OFFSETOF(struct vop_pageout_args, a_cred),
970 VDESC_NO_OFFSET,
971 VDESC_NO_OFFSET,
972 NULL,
973 };
974
975 int vop_devblocksize_vp_offsets[] = {
976 VOPARG_OFFSETOF(struct vop_devblocksize_args,a_vp),
977 VDESC_NO_OFFSET
978 };
979 struct vnodeop_desc vop_devblocksize_desc = {
980 0,
981 "vop_devblocksize",
982 0,
983 vop_devblocksize_vp_offsets,
984 VDESC_NO_OFFSET,
985 VDESC_NO_OFFSET,
986 VDESC_NO_OFFSET,
987 VDESC_NO_OFFSET,
988 NULL,
989 };
990
991 int vop_searchfs_vp_offsets[] = {
992 VOPARG_OFFSETOF(struct vop_searchfs_args,a_vp),
993 VDESC_NO_OFFSET
994 };
995 struct vnodeop_desc vop_searchfs_desc = {
996 0,
997 "vop_searchfs",
998 0,
999 vop_searchfs_vp_offsets,
1000 VDESC_NO_OFFSET,
1001 VDESC_NO_OFFSET,
1002 VDESC_NO_OFFSET,
1003 VDESC_NO_OFFSET,
1004 NULL,
1005 };
1006
1007 int vop_copyfile_vp_offsets[] = {
1008 VOPARG_OFFSETOF(struct vop_copyfile_args,a_fvp),
1009 VOPARG_OFFSETOF(struct vop_copyfile_args,a_tdvp),
1010 VOPARG_OFFSETOF(struct vop_copyfile_args,a_tvp),
1011 VDESC_NO_OFFSET
1012 };
1013 struct vnodeop_desc vop_copyfile_desc = {
1014 0,
1015 "vop_copyfile",
1016 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
1017 vop_copyfile_vp_offsets,
1018 VDESC_NO_OFFSET,
1019 VDESC_NO_OFFSET,
1020 VDESC_NO_OFFSET,
1021 VOPARG_OFFSETOF(struct vop_copyfile_args, a_tcnp),
1022 NULL,
1023 };
1024
1025 int vop_blktooff_vp_offsets[] = {
1026 VOPARG_OFFSETOF(struct vop_blktooff_args,a_vp),
1027 VDESC_NO_OFFSET
1028 };
1029 struct vnodeop_desc vop_blktooff_desc = {
1030 0,
1031 "vop_blktooff",
1032 0,
1033 vop_blktooff_vp_offsets,
1034 VDESC_NO_OFFSET,
1035 VDESC_NO_OFFSET,
1036 VDESC_NO_OFFSET,
1037 VDESC_NO_OFFSET,
1038 NULL,
1039 };
1040
1041 int vop_offtoblk_vp_offsets[] = {
1042 VOPARG_OFFSETOF(struct vop_offtoblk_args,a_vp),
1043 VDESC_NO_OFFSET
1044 };
1045 struct vnodeop_desc vop_offtoblk_desc = {
1046 0,
1047 "vop_offtoblk",
1048 0,
1049 vop_offtoblk_vp_offsets,
1050 VDESC_NO_OFFSET,
1051 VDESC_NO_OFFSET,
1052 VDESC_NO_OFFSET,
1053 VDESC_NO_OFFSET,
1054 NULL,
1055 };
1056
1057 int vop_cmap_vp_offsets[] = {
1058 VOPARG_OFFSETOF(struct vop_cmap_args,a_vp),
1059 VDESC_NO_OFFSET
1060 };
1061 struct vnodeop_desc vop_cmap_desc = {
1062 0,
1063 "vop_cmap",
1064 0,
1065 vop_cmap_vp_offsets,
1066 VDESC_NO_OFFSET,
1067 VDESC_NO_OFFSET,
1068 VDESC_NO_OFFSET,
1069 VDESC_NO_OFFSET,
1070 NULL,
1071 };
1072
1073 /* Special cases: */
1074
1075 int vop_strategy_vp_offsets[] = {
1076 VDESC_NO_OFFSET
1077 };
1078 struct vnodeop_desc vop_strategy_desc = {
1079 0,
1080 "vop_strategy",
1081 0,
1082 vop_strategy_vp_offsets,
1083 VDESC_NO_OFFSET,
1084 VDESC_NO_OFFSET,
1085 VDESC_NO_OFFSET,
1086 VDESC_NO_OFFSET,
1087 NULL,
1088 };
1089
1090 int vop_bwrite_vp_offsets[] = {
1091 VDESC_NO_OFFSET
1092 };
1093 struct vnodeop_desc vop_bwrite_desc = {
1094 0,
1095 "vop_bwrite",
1096 0,
1097 vop_bwrite_vp_offsets,
1098 VDESC_NO_OFFSET,
1099 VDESC_NO_OFFSET,
1100 VDESC_NO_OFFSET,
1101 VDESC_NO_OFFSET,
1102 NULL,
1103 };
1104
1105 /* End of special cases. */
1106
1107 struct vnodeop_desc *vfs_op_descs[] = {
1108 &vop_default_desc, /* MUST BE FIRST */
1109 &vop_strategy_desc, /* XXX: SPECIAL CASE */
1110 &vop_bwrite_desc, /* XXX: SPECIAL CASE */
1111
1112 &vop_lookup_desc,
1113 &vop_cachedlookup_desc,
1114 &vop_create_desc,
1115 &vop_whiteout_desc,
1116 &vop_mknod_desc,
1117 &vop_mkcomplex_desc,
1118 &vop_open_desc,
1119 &vop_close_desc,
1120 &vop_access_desc,
1121 &vop_getattr_desc,
1122 &vop_setattr_desc,
1123 &vop_getattrlist_desc,
1124 &vop_setattrlist_desc,
1125 &vop_read_desc,
1126 &vop_write_desc,
1127 &vop_lease_desc,
1128 &vop_ioctl_desc,
1129 &vop_select_desc,
1130 &vop_exchange_desc,
1131 &vop_kqfilt_add_desc,
1132 &vop_kqfilt_remove_desc,
1133 &vop_revoke_desc,
1134 &vop_mmap_desc,
1135 &vop_fsync_desc,
1136 &vop_seek_desc,
1137 &vop_remove_desc,
1138 &vop_link_desc,
1139 &vop_rename_desc,
1140 &vop_mkdir_desc,
1141 &vop_rmdir_desc,
1142 &vop_symlink_desc,
1143 &vop_readdir_desc,
1144 &vop_readdirattr_desc,
1145 &vop_readlink_desc,
1146 &vop_abortop_desc,
1147 &vop_inactive_desc,
1148 &vop_reclaim_desc,
1149 &vop_lock_desc,
1150 &vop_unlock_desc,
1151 &vop_bmap_desc,
1152 &vop_print_desc,
1153 &vop_islocked_desc,
1154 &vop_pathconf_desc,
1155 &vop_advlock_desc,
1156 &vop_blkatoff_desc,
1157 &vop_valloc_desc,
1158 &vop_reallocblks_desc,
1159 &vop_vfree_desc,
1160 &vop_truncate_desc,
1161 &vop_allocate_desc,
1162 &vop_update_desc,
1163 &vop_pgrd_desc,
1164 &vop_pgwr_desc,
1165 &vop_pagein_desc,
1166 &vop_pageout_desc,
1167 &vop_devblocksize_desc,
1168 &vop_searchfs_desc,
1169 &vop_copyfile_desc,
1170 &vop_blktooff_desc,
1171 &vop_offtoblk_desc,
1172 &vop_cmap_desc,
1173 NULL
1174 };
1175