]> git.saurik.com Git - apple/xnu.git/blob - bsd/vfs/vnode_if.c
xnu-792.6.61.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 * The contents of this file constitute Original Code as defined in and
8 * are subject to the Apple Public Source License Version 1.1 (the
9 * "License"). You may not use this file except in compliance with the
10 * License. Please obtain a copy of the License at
11 * http://www.apple.com/publicsource and read it before using this file.
12 *
13 * This Original Code and all software distributed under the License are
14 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
18 * License for the specific language governing rights and limitations
19 * under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23 /*
24 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
25 * Copyright (c) 1992, 1993, 1994, 1995
26 * The Regents of the University of California. All rights reserved.
27 *
28 * Redistribution and use in source and binary forms, with or without
29 * modification, are permitted provided that the following conditions
30 * are met:
31 * 1. Redistributions of source code must retain the above copyright
32 * notice, this list of conditions and the following disclaimer.
33 * 2. Redistributions in binary form must reproduce the above copyright
34 * notice, this list of conditions and the following disclaimer in the
35 * documentation and/or other materials provided with the distribution.
36 * 3. All advertising materials mentioning features or use of this software
37 * must display the following acknowledgement:
38 * This product includes software developed by the University of
39 * California, Berkeley and its contributors.
40 * 4. Neither the name of the University nor the names of its contributors
41 * may be used to endorse or promote products derived from this software
42 * without specific prior written permission.
43 *
44 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND
45 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
46 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
47 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
48 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
49 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
50 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
51 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
52 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
53 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
54 * SUCH DAMAGE.
55 */
56
57
58 /*
59 * Warning: This file is generated automatically.
60 * (Modifications made here may easily be lost!)
61 *
62 * Created by the script:
63 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
64 */
65
66
67 #include <sys/param.h>
68 #include <sys/mount_internal.h>
69 #include <sys/vm.h>
70 #include <sys/vnode_internal.h>
71
72 struct vnodeop_desc vnop_default_desc = {
73 0,
74 "default",
75 0,
76 NULL,
77 VDESC_NO_OFFSET,
78 VDESC_NO_OFFSET,
79 VDESC_NO_OFFSET,
80 VDESC_NO_OFFSET,
81 NULL,
82 };
83
84
85 int vnop_lookup_vp_offsets[] = {
86 VOPARG_OFFSETOF(struct vnop_lookup_args,a_dvp),
87 VDESC_NO_OFFSET
88 };
89 struct vnodeop_desc vnop_lookup_desc = {
90 0,
91 "vnop_lookup",
92 0,
93 vnop_lookup_vp_offsets,
94 VOPARG_OFFSETOF(struct vnop_lookup_args, a_vpp),
95 VDESC_NO_OFFSET,
96 VDESC_NO_OFFSET,
97 VOPARG_OFFSETOF(struct vnop_lookup_args, a_cnp),
98 VOPARG_OFFSETOF(struct vnop_lookup_args, a_context),
99 NULL,
100 };
101
102 int vnop_create_vp_offsets[] = {
103 VOPARG_OFFSETOF(struct vnop_create_args,a_dvp),
104 VDESC_NO_OFFSET
105 };
106 struct vnodeop_desc vnop_create_desc = {
107 0,
108 "vnop_create",
109 0 | VDESC_VP0_WILLRELE,
110 vnop_create_vp_offsets,
111 VOPARG_OFFSETOF(struct vnop_create_args, a_vpp),
112 VDESC_NO_OFFSET,
113 VDESC_NO_OFFSET,
114 VOPARG_OFFSETOF(struct vnop_create_args, a_cnp),
115 VOPARG_OFFSETOF(struct vnop_create_args, a_context),
116 NULL,
117 };
118
119 int vnop_whiteout_vp_offsets[] = {
120 VOPARG_OFFSETOF(struct vnop_whiteout_args,a_dvp),
121 VDESC_NO_OFFSET
122 };
123 struct vnodeop_desc vnop_whiteout_desc = {
124 0,
125 "vnop_whiteout",
126 0 | VDESC_VP0_WILLRELE,
127 vnop_whiteout_vp_offsets,
128 VDESC_NO_OFFSET,
129 VDESC_NO_OFFSET,
130 VDESC_NO_OFFSET,
131 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp),
132 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context),
133 NULL,
134 };
135
136 int vnop_mknod_vp_offsets[] = {
137 VOPARG_OFFSETOF(struct vnop_mknod_args,a_dvp),
138 VDESC_NO_OFFSET
139 };
140 struct vnodeop_desc vnop_mknod_desc = {
141 0,
142 "vnop_mknod",
143 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
144 vnop_mknod_vp_offsets,
145 VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp),
146 VDESC_NO_OFFSET,
147 VDESC_NO_OFFSET,
148 VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp),
149 VOPARG_OFFSETOF(struct vnop_mknod_args, a_context),
150 NULL,
151 };
152
153 int vnop_open_vp_offsets[] = {
154 VOPARG_OFFSETOF(struct vnop_open_args,a_vp),
155 VDESC_NO_OFFSET
156 };
157 struct vnodeop_desc vnop_open_desc = {
158 0,
159 "vnop_open",
160 0,
161 vnop_open_vp_offsets,
162 VDESC_NO_OFFSET,
163 VDESC_NO_OFFSET,
164 VDESC_NO_OFFSET,
165 VDESC_NO_OFFSET,
166 VOPARG_OFFSETOF(struct vnop_open_args, a_context),
167 NULL,
168 };
169
170 int vnop_close_vp_offsets[] = {
171 VOPARG_OFFSETOF(struct vnop_close_args,a_vp),
172 VDESC_NO_OFFSET
173 };
174 struct vnodeop_desc vnop_close_desc = {
175 0,
176 "vnop_close",
177 0,
178 vnop_close_vp_offsets,
179 VDESC_NO_OFFSET,
180 VDESC_NO_OFFSET,
181 VDESC_NO_OFFSET,
182 VDESC_NO_OFFSET,
183 VOPARG_OFFSETOF(struct vnop_close_args, a_context),
184 NULL,
185 };
186
187 int vnop_access_vp_offsets[] = {
188 VOPARG_OFFSETOF(struct vnop_access_args,a_vp),
189 VDESC_NO_OFFSET
190 };
191 struct vnodeop_desc vnop_access_desc = {
192 0,
193 "vnop_access",
194 0,
195 vnop_access_vp_offsets,
196 VDESC_NO_OFFSET,
197 VDESC_NO_OFFSET,
198 VDESC_NO_OFFSET,
199 VDESC_NO_OFFSET,
200 VOPARG_OFFSETOF(struct vnop_close_args, a_context),
201 NULL,
202 };
203
204 int vnop_getattr_vp_offsets[] = {
205 VOPARG_OFFSETOF(struct vnop_getattr_args,a_vp),
206 VDESC_NO_OFFSET
207 };
208 struct vnodeop_desc vnop_getattr_desc = {
209 0,
210 "vnop_getattr",
211 0,
212 vnop_getattr_vp_offsets,
213 VDESC_NO_OFFSET,
214 VDESC_NO_OFFSET,
215 VDESC_NO_OFFSET,
216 VDESC_NO_OFFSET,
217 VOPARG_OFFSETOF(struct vnop_getattr_args, a_context),
218 NULL,
219 };
220
221 int vnop_setattr_vp_offsets[] = {
222 VOPARG_OFFSETOF(struct vnop_setattr_args,a_vp),
223 VDESC_NO_OFFSET
224 };
225 struct vnodeop_desc vnop_setattr_desc = {
226 0,
227 "vnop_setattr",
228 0,
229 vnop_setattr_vp_offsets,
230 VDESC_NO_OFFSET,
231 VDESC_NO_OFFSET,
232 VDESC_NO_OFFSET,
233 VDESC_NO_OFFSET,
234 VOPARG_OFFSETOF(struct vnop_setattr_args, a_context),
235 NULL,
236 };
237
238 int vnop_getattrlist_vp_offsets[] = {
239 VOPARG_OFFSETOF(struct vnop_getattrlist_args,a_vp),
240 VDESC_NO_OFFSET
241 };
242 struct vnodeop_desc vnop_getattrlist_desc = {
243 0,
244 "vnop_getattrlist",
245 0,
246 vnop_getattrlist_vp_offsets,
247 VDESC_NO_OFFSET,
248 VDESC_NO_OFFSET,
249 VDESC_NO_OFFSET,
250 VDESC_NO_OFFSET,
251 VOPARG_OFFSETOF(struct vnop_getattrlist_args, a_context),
252 NULL,
253 };
254
255 int vnop_setattrlist_vp_offsets[] = {
256 VOPARG_OFFSETOF(struct vnop_setattrlist_args,a_vp),
257 VDESC_NO_OFFSET
258 };
259 struct vnodeop_desc vnop_setattrlist_desc = {
260 0,
261 "vnop_setattrlist",
262 0,
263 vnop_setattrlist_vp_offsets,
264 VDESC_NO_OFFSET,
265 VDESC_NO_OFFSET,
266 VDESC_NO_OFFSET,
267 VDESC_NO_OFFSET,
268 VOPARG_OFFSETOF(struct vnop_setattrlist_args, a_context),
269 NULL,
270 };
271
272 int vnop_read_vp_offsets[] = {
273 VOPARG_OFFSETOF(struct vnop_read_args,a_vp),
274 VDESC_NO_OFFSET
275 };
276 struct vnodeop_desc vnop_read_desc = {
277 0,
278 "vnop_read",
279 0,
280 vnop_read_vp_offsets,
281 VDESC_NO_OFFSET,
282 VDESC_NO_OFFSET,
283 VDESC_NO_OFFSET,
284 VDESC_NO_OFFSET,
285 VOPARG_OFFSETOF(struct vnop_read_args, a_context),
286 NULL,
287 };
288
289 int vnop_write_vp_offsets[] = {
290 VOPARG_OFFSETOF(struct vnop_write_args,a_vp),
291 VDESC_NO_OFFSET
292 };
293 struct vnodeop_desc vnop_write_desc = {
294 0,
295 "vnop_write",
296 0,
297 vnop_write_vp_offsets,
298 VDESC_NO_OFFSET,
299 VDESC_NO_OFFSET,
300 VDESC_NO_OFFSET,
301 VDESC_NO_OFFSET,
302 VOPARG_OFFSETOF(struct vnop_write_args, a_context),
303 NULL,
304 };
305
306 int vnop_ioctl_vp_offsets[] = {
307 VOPARG_OFFSETOF(struct vnop_ioctl_args,a_vp),
308 VDESC_NO_OFFSET
309 };
310 struct vnodeop_desc vnop_ioctl_desc = {
311 0,
312 "vnop_ioctl",
313 0,
314 vnop_ioctl_vp_offsets,
315 VDESC_NO_OFFSET,
316 VDESC_NO_OFFSET,
317 VDESC_NO_OFFSET,
318 VDESC_NO_OFFSET,
319 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context),
320 NULL,
321 };
322
323 int vnop_select_vp_offsets[] = {
324 VOPARG_OFFSETOF(struct vnop_select_args,a_vp),
325 VDESC_NO_OFFSET
326 };
327 struct vnodeop_desc vnop_select_desc = {
328 0,
329 "vnop_select",
330 0,
331 vnop_select_vp_offsets,
332 VDESC_NO_OFFSET,
333 VDESC_NO_OFFSET,
334 VDESC_NO_OFFSET,
335 VDESC_NO_OFFSET,
336 VOPARG_OFFSETOF(struct vnop_select_args, a_context),
337 VDESC_NO_OFFSET,
338 NULL,
339 };
340
341 int vnop_exchange_vp_offsets[] = {
342 VOPARG_OFFSETOF(struct vnop_exchange_args,a_fvp),
343 VOPARG_OFFSETOF(struct vnop_exchange_args,a_tvp),
344 VDESC_NO_OFFSET
345 };
346 struct vnodeop_desc vnop_exchange_desc = {
347 0,
348 "vnop_exchange",
349 0,
350 vnop_exchange_vp_offsets,
351 VDESC_NO_OFFSET,
352 VDESC_NO_OFFSET,
353 VDESC_NO_OFFSET,
354 VDESC_NO_OFFSET,
355 VOPARG_OFFSETOF(struct vnop_exchange_args, a_context),
356 NULL,
357 };
358
359 int vnop_kqfilt_add_vp_offsets[] = {
360 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args,a_vp),
361 VDESC_NO_OFFSET
362 };
363 struct vnodeop_desc vnop_kqfilt_add_desc = {
364 0,
365 "vnop_kqfilt_add",
366 0,
367 vnop_kqfilt_add_vp_offsets,
368 VDESC_NO_OFFSET,
369 VDESC_NO_OFFSET,
370 VDESC_NO_OFFSET,
371 VDESC_NO_OFFSET,
372 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context),
373 NULL,
374 };
375
376 int vnop_kqfilt_remove_vp_offsets[] = {
377 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args,a_vp),
378 VDESC_NO_OFFSET
379 };
380 struct vnodeop_desc vnop_kqfilt_remove_desc = {
381 0,
382 "vnop_kqfilt_remove",
383 0,
384 vnop_kqfilt_remove_vp_offsets,
385 VDESC_NO_OFFSET,
386 VDESC_NO_OFFSET,
387 VDESC_NO_OFFSET,
388 VDESC_NO_OFFSET,
389 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context),
390 NULL,
391 };
392
393 int vnop_revoke_vp_offsets[] = {
394 VOPARG_OFFSETOF(struct vnop_revoke_args,a_vp),
395 VDESC_NO_OFFSET
396 };
397 struct vnodeop_desc vnop_revoke_desc = {
398 0,
399 "vnop_revoke",
400 0,
401 vnop_revoke_vp_offsets,
402 VDESC_NO_OFFSET,
403 VDESC_NO_OFFSET,
404 VDESC_NO_OFFSET,
405 VDESC_NO_OFFSET,
406 NULL,
407 };
408
409
410 int vnop_mmap_vp_offsets[] = {
411 VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp),
412 VDESC_NO_OFFSET
413 };
414 struct vnodeop_desc vnop_mmap_desc = {
415 0,
416 "vnop_mmap",
417 0,
418 vnop_mmap_vp_offsets,
419 VDESC_NO_OFFSET,
420 VDESC_NO_OFFSET,
421 VDESC_NO_OFFSET,
422 VDESC_NO_OFFSET,
423 NULL,
424 };
425
426
427 int vnop_mnomap_vp_offsets[] = {
428 VOPARG_OFFSETOF(struct vnop_mnomap_args,a_vp),
429 VDESC_NO_OFFSET
430 };
431 struct vnodeop_desc vnop_mnomap_desc = {
432 0,
433 "vnop_mnomap",
434 0,
435 vnop_mnomap_vp_offsets,
436 VDESC_NO_OFFSET,
437 VDESC_NO_OFFSET,
438 VDESC_NO_OFFSET,
439 VDESC_NO_OFFSET,
440 NULL,
441 };
442
443
444 int vnop_fsync_vp_offsets[] = {
445 VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp),
446 VDESC_NO_OFFSET
447 };
448 struct vnodeop_desc vnop_fsync_desc = {
449 0,
450 "vnop_fsync",
451 0,
452 vnop_fsync_vp_offsets,
453 VDESC_NO_OFFSET,
454 VDESC_NO_OFFSET,
455 VDESC_NO_OFFSET,
456 VDESC_NO_OFFSET,
457 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context),
458 NULL,
459 };
460
461 int vnop_remove_vp_offsets[] = {
462 VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp),
463 VOPARG_OFFSETOF(struct vnop_remove_args,a_vp),
464 VDESC_NO_OFFSET
465 };
466 struct vnodeop_desc vnop_remove_desc = {
467 0,
468 "vnop_remove",
469 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
470 vnop_remove_vp_offsets,
471 VDESC_NO_OFFSET,
472 VDESC_NO_OFFSET,
473 VDESC_NO_OFFSET,
474 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
475 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
476 NULL,
477 };
478
479 int vnop_link_vp_offsets[] = {
480 VOPARG_OFFSETOF(struct vnop_link_args,a_vp),
481 VOPARG_OFFSETOF(struct vnop_link_args,a_tdvp),
482 VDESC_NO_OFFSET
483 };
484 struct vnodeop_desc vnop_link_desc = {
485 0,
486 "vnop_link",
487 0 | VDESC_VP1_WILLRELE,
488 vnop_link_vp_offsets,
489 VDESC_NO_OFFSET,
490 VDESC_NO_OFFSET,
491 VDESC_NO_OFFSET,
492 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp),
493 VOPARG_OFFSETOF(struct vnop_link_args, a_context),
494 NULL,
495 };
496
497 int vnop_rename_vp_offsets[] = {
498 VOPARG_OFFSETOF(struct vnop_rename_args,a_fdvp),
499 VOPARG_OFFSETOF(struct vnop_rename_args,a_fvp),
500 VOPARG_OFFSETOF(struct vnop_rename_args,a_tdvp),
501 VOPARG_OFFSETOF(struct vnop_rename_args,a_tvp),
502 VDESC_NO_OFFSET
503 };
504 struct vnodeop_desc vnop_rename_desc = {
505 0,
506 "vnop_rename",
507 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
508 vnop_rename_vp_offsets,
509 VDESC_NO_OFFSET,
510 VDESC_NO_OFFSET,
511 VDESC_NO_OFFSET,
512 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp),
513 VOPARG_OFFSETOF(struct vnop_rename_args, a_context),
514 NULL,
515 };
516
517 int vnop_mkdir_vp_offsets[] = {
518 VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp),
519 VDESC_NO_OFFSET
520 };
521 struct vnodeop_desc vnop_mkdir_desc = {
522 0,
523 "vnop_mkdir",
524 0 | VDESC_VP0_WILLRELE,
525 vnop_mkdir_vp_offsets,
526 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
527 VDESC_NO_OFFSET,
528 VDESC_NO_OFFSET,
529 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
530 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
531 NULL,
532 };
533
534 int vnop_rmdir_vp_offsets[] = {
535 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp),
536 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp),
537 VDESC_NO_OFFSET
538 };
539 struct vnodeop_desc vnop_rmdir_desc = {
540 0,
541 "vnop_rmdir",
542 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
543 vnop_rmdir_vp_offsets,
544 VDESC_NO_OFFSET,
545 VDESC_NO_OFFSET,
546 VDESC_NO_OFFSET,
547 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
548 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
549 NULL,
550 };
551
552 int vnop_symlink_vp_offsets[] = {
553 VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp),
554 VDESC_NO_OFFSET
555 };
556 struct vnodeop_desc vnop_symlink_desc = {
557 0,
558 "vnop_symlink",
559 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
560 vnop_symlink_vp_offsets,
561 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
562 VDESC_NO_OFFSET,
563 VDESC_NO_OFFSET,
564 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
565 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
566 NULL,
567 };
568
569 int vnop_readdir_vp_offsets[] = {
570 VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp),
571 VDESC_NO_OFFSET
572 };
573 struct vnodeop_desc vnop_readdir_desc = {
574 0,
575 "vnop_readdir",
576 0,
577 vnop_readdir_vp_offsets,
578 VDESC_NO_OFFSET,
579 VDESC_NO_OFFSET,
580 VDESC_NO_OFFSET,
581 VDESC_NO_OFFSET,
582 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
583 NULL,
584 };
585
586 int vnop_readdirattr_vp_offsets[] = {
587 VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp),
588 VDESC_NO_OFFSET
589 };
590 struct vnodeop_desc vnop_readdirattr_desc = {
591 0,
592 "vnop_readdirattr",
593 0,
594 vnop_readdirattr_vp_offsets,
595 VDESC_NO_OFFSET,
596 VDESC_NO_OFFSET,
597 VDESC_NO_OFFSET,
598 VDESC_NO_OFFSET,
599 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context),
600 NULL,
601 };
602
603 int vnop_readlink_vp_offsets[] = {
604 VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp),
605 VDESC_NO_OFFSET
606 };
607 struct vnodeop_desc vnop_readlink_desc = {
608 0,
609 "vnop_readlink",
610 0,
611 vnop_readlink_vp_offsets,
612 VDESC_NO_OFFSET,
613 VDESC_NO_OFFSET,
614 VDESC_NO_OFFSET,
615 VDESC_NO_OFFSET,
616 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context),
617 NULL,
618 };
619
620 int vnop_inactive_vp_offsets[] = {
621 VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp),
622 VDESC_NO_OFFSET
623 };
624 struct vnodeop_desc vnop_inactive_desc = {
625 0,
626 "vnop_inactive",
627 0,
628 vnop_inactive_vp_offsets,
629 VDESC_NO_OFFSET,
630 VDESC_NO_OFFSET,
631 VDESC_NO_OFFSET,
632 VDESC_NO_OFFSET,
633 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context),
634 NULL,
635 };
636
637 int vnop_reclaim_vp_offsets[] = {
638 VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp),
639 VDESC_NO_OFFSET
640 };
641 struct vnodeop_desc vnop_reclaim_desc = {
642 0,
643 "vnop_reclaim",
644 0,
645 vnop_reclaim_vp_offsets,
646 VDESC_NO_OFFSET,
647 VDESC_NO_OFFSET,
648 VDESC_NO_OFFSET,
649 VDESC_NO_OFFSET,
650 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
651 NULL,
652 };
653
654 int vnop_pathconf_vp_offsets[] = {
655 VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp),
656 VDESC_NO_OFFSET
657 };
658 struct vnodeop_desc vnop_pathconf_desc = {
659 0,
660 "vnop_pathconf",
661 0,
662 vnop_pathconf_vp_offsets,
663 VDESC_NO_OFFSET,
664 VDESC_NO_OFFSET,
665 VDESC_NO_OFFSET,
666 VDESC_NO_OFFSET,
667 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
668 NULL,
669 };
670
671 int vnop_advlock_vp_offsets[] = {
672 VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp),
673 VDESC_NO_OFFSET
674 };
675 struct vnodeop_desc vnop_advlock_desc = {
676 0,
677 "vnop_advlock",
678 0,
679 vnop_advlock_vp_offsets,
680 VDESC_NO_OFFSET,
681 VDESC_NO_OFFSET,
682 VDESC_NO_OFFSET,
683 VDESC_NO_OFFSET,
684 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context),
685 NULL,
686 };
687
688 int vnop_allocate_vp_offsets[] = {
689 VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp),
690 VDESC_NO_OFFSET
691 };
692 struct vnodeop_desc vnop_allocate_desc = {
693 0,
694 "vnop_allocate",
695 0,
696 vnop_allocate_vp_offsets,
697 VDESC_NO_OFFSET,
698 VDESC_NO_OFFSET,
699 VDESC_NO_OFFSET,
700 VDESC_NO_OFFSET,
701 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
702 NULL,
703 };
704
705 int vnop_pagein_vp_offsets[] = {
706 VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp),
707 VDESC_NO_OFFSET
708 };
709 struct vnodeop_desc vnop_pagein_desc = {
710 0,
711 "vnop_pagein",
712 0,
713 vnop_pagein_vp_offsets,
714 VDESC_NO_OFFSET,
715 VDESC_NO_OFFSET,
716 VDESC_NO_OFFSET,
717 VDESC_NO_OFFSET,
718 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
719 NULL,
720 };
721
722 int vnop_pageout_vp_offsets[] = {
723 VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp),
724 VDESC_NO_OFFSET
725 };
726 struct vnodeop_desc vnop_pageout_desc = {
727 0,
728 "vnop_pageout",
729 0,
730 vnop_pageout_vp_offsets,
731 VDESC_NO_OFFSET,
732 VDESC_NO_OFFSET,
733 VDESC_NO_OFFSET,
734 VDESC_NO_OFFSET,
735 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
736 NULL,
737 };
738
739 int vnop_devblocksize_vp_offsets[] = {
740 VOPARG_OFFSETOF(struct vnop_devblocksize_args,a_vp),
741 VDESC_NO_OFFSET
742 };
743 struct vnodeop_desc vnop_devblocksize_desc = {
744 0,
745 "vnop_devblocksize",
746 0,
747 vnop_devblocksize_vp_offsets,
748 VDESC_NO_OFFSET,
749 VDESC_NO_OFFSET,
750 VDESC_NO_OFFSET,
751 VDESC_NO_OFFSET,
752 NULL,
753 };
754
755 int vnop_searchfs_vp_offsets[] = {
756 VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp),
757 VDESC_NO_OFFSET
758 };
759 struct vnodeop_desc vnop_searchfs_desc = {
760 0,
761 "vnop_searchfs",
762 0,
763 vnop_searchfs_vp_offsets,
764 VDESC_NO_OFFSET,
765 VDESC_NO_OFFSET,
766 VDESC_NO_OFFSET,
767 VDESC_NO_OFFSET,
768 NULL,
769 };
770
771 int vnop_copyfile_vp_offsets[] = {
772 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp),
773 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp),
774 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp),
775 VDESC_NO_OFFSET
776 };
777 struct vnodeop_desc vnop_copyfile_desc = {
778 0,
779 "vnop_copyfile",
780 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
781 vnop_copyfile_vp_offsets,
782 VDESC_NO_OFFSET,
783 VDESC_NO_OFFSET,
784 VDESC_NO_OFFSET,
785 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
786 NULL,
787 };
788
789 int vop_getxattr_vp_offsets[] = {
790 VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp),
791 VDESC_NO_OFFSET
792 };
793 struct vnodeop_desc vnop_getxattr_desc = {
794 0,
795 "vnop_getxattr",
796 0,
797 vop_getxattr_vp_offsets,
798 VDESC_NO_OFFSET,
799 VDESC_NO_OFFSET,
800 VDESC_NO_OFFSET,
801 VDESC_NO_OFFSET,
802 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
803 NULL,
804 };
805
806 int vop_setxattr_vp_offsets[] = {
807 VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp),
808 VDESC_NO_OFFSET
809 };
810 struct vnodeop_desc vnop_setxattr_desc = {
811 0,
812 "vnop_setxattr",
813 0,
814 vop_setxattr_vp_offsets,
815 VDESC_NO_OFFSET,
816 VDESC_NO_OFFSET,
817 VDESC_NO_OFFSET,
818 VDESC_NO_OFFSET,
819 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context),
820 NULL,
821 };
822
823 int vop_removexattr_vp_offsets[] = {
824 VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp),
825 VDESC_NO_OFFSET
826 };
827 struct vnodeop_desc vnop_removexattr_desc = {
828 0,
829 "vnop_removexattr",
830 0,
831 vop_removexattr_vp_offsets,
832 VDESC_NO_OFFSET,
833 VDESC_NO_OFFSET,
834 VDESC_NO_OFFSET,
835 VDESC_NO_OFFSET,
836 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
837 NULL,
838 };
839
840 int vop_listxattr_vp_offsets[] = {
841 VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp),
842 VDESC_NO_OFFSET
843 };
844 struct vnodeop_desc vnop_listxattr_desc = {
845 0,
846 "vnop_listxattr",
847 0,
848 vop_listxattr_vp_offsets,
849 VDESC_NO_OFFSET,
850 VDESC_NO_OFFSET,
851 VDESC_NO_OFFSET,
852 VDESC_NO_OFFSET,
853 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
854 NULL,
855 };
856
857 int vnop_blktooff_vp_offsets[] = {
858 VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp),
859 VDESC_NO_OFFSET
860 };
861 struct vnodeop_desc vnop_blktooff_desc = {
862 0,
863 "vnop_blktooff",
864 0,
865 vnop_blktooff_vp_offsets,
866 VDESC_NO_OFFSET,
867 VDESC_NO_OFFSET,
868 VDESC_NO_OFFSET,
869 VDESC_NO_OFFSET,
870 NULL,
871 };
872
873 int vnop_offtoblk_vp_offsets[] = {
874 VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp),
875 VDESC_NO_OFFSET
876 };
877 struct vnodeop_desc vnop_offtoblk_desc = {
878 0,
879 "vnop_offtoblk",
880 0,
881 vnop_offtoblk_vp_offsets,
882 VDESC_NO_OFFSET,
883 VDESC_NO_OFFSET,
884 VDESC_NO_OFFSET,
885 VDESC_NO_OFFSET,
886 NULL,
887 };
888
889 int vnop_blockmap_vp_offsets[] = {
890 VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp),
891 VDESC_NO_OFFSET
892 };
893 struct vnodeop_desc vnop_blockmap_desc = {
894 0,
895 "vnop_blockmap",
896 0,
897 vnop_blockmap_vp_offsets,
898 VDESC_NO_OFFSET,
899 VDESC_NO_OFFSET,
900 VDESC_NO_OFFSET,
901 VDESC_NO_OFFSET,
902 NULL,
903 };
904
905 /* Special cases: */
906
907 int vnop_strategy_vp_offsets[] = {
908 VDESC_NO_OFFSET
909 };
910 struct vnodeop_desc vnop_strategy_desc = {
911 0,
912 "vnop_strategy",
913 0,
914 vnop_strategy_vp_offsets,
915 VDESC_NO_OFFSET,
916 VDESC_NO_OFFSET,
917 VDESC_NO_OFFSET,
918 VDESC_NO_OFFSET,
919 NULL,
920 };
921
922 int vnop_bwrite_vp_offsets[] = {
923 VDESC_NO_OFFSET
924 };
925 struct vnodeop_desc vnop_bwrite_desc = {
926 0,
927 "vnop_bwrite",
928 0,
929 vnop_bwrite_vp_offsets,
930 VDESC_NO_OFFSET,
931 VDESC_NO_OFFSET,
932 VDESC_NO_OFFSET,
933 VDESC_NO_OFFSET,
934 NULL,
935 };
936
937 /* End of special cases. */
938
939 struct vnodeop_desc *vfs_op_descs[] = {
940 &vnop_default_desc, /* MUST BE FIRST */
941 &vnop_strategy_desc, /* XXX: SPECIAL CASE */
942 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
943
944 &vnop_lookup_desc,
945 &vnop_create_desc,
946 &vnop_mknod_desc,
947 &vnop_whiteout_desc,
948 &vnop_open_desc,
949 &vnop_close_desc,
950 &vnop_access_desc,
951 &vnop_getattr_desc,
952 &vnop_setattr_desc,
953 &vnop_getattrlist_desc,
954 &vnop_setattrlist_desc,
955 &vnop_read_desc,
956 &vnop_write_desc,
957 &vnop_ioctl_desc,
958 &vnop_select_desc,
959 &vnop_exchange_desc,
960 &vnop_kqfilt_add_desc,
961 &vnop_kqfilt_remove_desc,
962 &vnop_revoke_desc,
963 &vnop_mmap_desc,
964 &vnop_mnomap_desc,
965 &vnop_fsync_desc,
966 &vnop_remove_desc,
967 &vnop_link_desc,
968 &vnop_rename_desc,
969 &vnop_mkdir_desc,
970 &vnop_rmdir_desc,
971 &vnop_symlink_desc,
972 &vnop_readdir_desc,
973 &vnop_readdirattr_desc,
974 &vnop_readlink_desc,
975 &vnop_inactive_desc,
976 &vnop_reclaim_desc,
977 &vnop_pathconf_desc,
978 &vnop_advlock_desc,
979 &vnop_allocate_desc,
980 &vnop_pagein_desc,
981 &vnop_pageout_desc,
982 &vnop_devblocksize_desc,
983 &vnop_searchfs_desc,
984 &vnop_copyfile_desc,
985 &vnop_getxattr_desc,
986 &vnop_setxattr_desc,
987 &vnop_removexattr_desc,
988 &vnop_listxattr_desc,
989 &vnop_blktooff_desc,
990 &vnop_offtoblk_desc,
991 &vnop_blockmap_desc,
992 NULL
993 };
994