]> git.saurik.com Git - apple/xnu.git/blob - bsd/vfs/vnode_if.c
xnu-6153.141.1.tar.gz
[apple/xnu.git] / bsd / vfs / vnode_if.c
1 /*
2 * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28 /*
29 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
30 * Copyright (c) 1992, 1993, 1994, 1995
31 * The Regents of the University of California. All rights reserved.
32 *
33 * Redistribution and use in source and binary forms, with or without
34 * modification, are permitted provided that the following conditions
35 * are met:
36 * 1. Redistributions of source code must retain the above copyright
37 * notice, this list of conditions and the following disclaimer.
38 * 2. Redistributions in binary form must reproduce the above copyright
39 * notice, this list of conditions and the following disclaimer in the
40 * documentation and/or other materials provided with the distribution.
41 * 3. All advertising materials mentioning features or use of this software
42 * must display the following acknowledgement:
43 * This product includes software developed by the University of
44 * California, Berkeley and its contributors.
45 * 4. Neither the name of the University nor the names of its contributors
46 * may be used to endorse or promote products derived from this software
47 * without specific prior written permission.
48 *
49 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND
50 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
51 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
52 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
53 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
54 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
55 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
56 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
57 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
58 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
59 * SUCH DAMAGE.
60 */
61
62
63 /*
64 * Warning: This file is generated automatically.
65 * (Modifications made here may easily be lost!)
66 *
67 * Created by the script:
68 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
69 */
70
71
72 #include <sys/param.h>
73 #include <sys/mount_internal.h>
74 #include <sys/vm.h>
75 #include <sys/vnode_internal.h>
76
77 struct vnodeop_desc vnop_default_desc = {
78 0,
79 "default",
80 0,
81 NULL,
82 VDESC_NO_OFFSET,
83 VDESC_NO_OFFSET,
84 VDESC_NO_OFFSET,
85 VDESC_NO_OFFSET,
86 VDESC_NO_OFFSET,
87 NULL
88 };
89
90
91 int vnop_lookup_vp_offsets[] = {
92 VOPARG_OFFSETOF(struct vnop_lookup_args, a_dvp),
93 VDESC_NO_OFFSET
94 };
95 struct vnodeop_desc vnop_lookup_desc = {
96 0,
97 "vnop_lookup",
98 0,
99 vnop_lookup_vp_offsets,
100 VOPARG_OFFSETOF(struct vnop_lookup_args, a_vpp),
101 VDESC_NO_OFFSET,
102 VDESC_NO_OFFSET,
103 VOPARG_OFFSETOF(struct vnop_lookup_args, a_cnp),
104 VOPARG_OFFSETOF(struct vnop_lookup_args, a_context),
105 NULL
106 };
107
108 int vnop_compound_open_vp_offsets[] = {
109 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_dvp),
110 VDESC_NO_OFFSET
111 };
112
113 struct vnodeop_desc vnop_compound_open_desc = {
114 0,
115 "vnop_compound_open",
116 0 | VDESC_VP0_WILLRELE,
117 vnop_compound_open_vp_offsets,
118 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_vpp),
119 VDESC_NO_OFFSET,
120 VDESC_NO_OFFSET,
121 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_cnp),
122 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_context),
123 NULL
124 };
125
126 int vnop_create_vp_offsets[] = {
127 VOPARG_OFFSETOF(struct vnop_create_args, a_dvp),
128 VDESC_NO_OFFSET
129 };
130 struct vnodeop_desc vnop_create_desc = {
131 0,
132 "vnop_create",
133 0 | VDESC_VP0_WILLRELE,
134 vnop_create_vp_offsets,
135 VOPARG_OFFSETOF(struct vnop_create_args, a_vpp),
136 VDESC_NO_OFFSET,
137 VDESC_NO_OFFSET,
138 VOPARG_OFFSETOF(struct vnop_create_args, a_cnp),
139 VOPARG_OFFSETOF(struct vnop_create_args, a_context),
140 NULL
141 };
142
143 int vnop_whiteout_vp_offsets[] = {
144 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_dvp),
145 VDESC_NO_OFFSET
146 };
147 struct vnodeop_desc vnop_whiteout_desc = {
148 0,
149 "vnop_whiteout",
150 0 | VDESC_VP0_WILLRELE,
151 vnop_whiteout_vp_offsets,
152 VDESC_NO_OFFSET,
153 VDESC_NO_OFFSET,
154 VDESC_NO_OFFSET,
155 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp),
156 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context),
157 NULL
158 };
159
160 int vnop_mknod_vp_offsets[] = {
161 VOPARG_OFFSETOF(struct vnop_mknod_args, a_dvp),
162 VDESC_NO_OFFSET
163 };
164 struct vnodeop_desc vnop_mknod_desc = {
165 0,
166 "vnop_mknod",
167 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
168 vnop_mknod_vp_offsets,
169 VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp),
170 VDESC_NO_OFFSET,
171 VDESC_NO_OFFSET,
172 VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp),
173 VOPARG_OFFSETOF(struct vnop_mknod_args, a_context),
174 NULL
175 };
176
177 int vnop_open_vp_offsets[] = {
178 VOPARG_OFFSETOF(struct vnop_open_args, a_vp),
179 VDESC_NO_OFFSET
180 };
181 struct vnodeop_desc vnop_open_desc = {
182 0,
183 "vnop_open",
184 0,
185 vnop_open_vp_offsets,
186 VDESC_NO_OFFSET,
187 VDESC_NO_OFFSET,
188 VDESC_NO_OFFSET,
189 VDESC_NO_OFFSET,
190 VOPARG_OFFSETOF(struct vnop_open_args, a_context),
191 NULL
192 };
193
194 int vnop_close_vp_offsets[] = {
195 VOPARG_OFFSETOF(struct vnop_close_args, a_vp),
196 VDESC_NO_OFFSET
197 };
198 struct vnodeop_desc vnop_close_desc = {
199 0,
200 "vnop_close",
201 0,
202 vnop_close_vp_offsets,
203 VDESC_NO_OFFSET,
204 VDESC_NO_OFFSET,
205 VDESC_NO_OFFSET,
206 VDESC_NO_OFFSET,
207 VOPARG_OFFSETOF(struct vnop_close_args, a_context),
208 NULL
209 };
210
211 int vnop_access_vp_offsets[] = {
212 VOPARG_OFFSETOF(struct vnop_access_args, a_vp),
213 VDESC_NO_OFFSET
214 };
215 struct vnodeop_desc vnop_access_desc = {
216 0,
217 "vnop_access",
218 0,
219 vnop_access_vp_offsets,
220 VDESC_NO_OFFSET,
221 VDESC_NO_OFFSET,
222 VDESC_NO_OFFSET,
223 VDESC_NO_OFFSET,
224 VOPARG_OFFSETOF(struct vnop_close_args, a_context),
225 NULL
226 };
227
228 int vnop_getattr_vp_offsets[] = {
229 VOPARG_OFFSETOF(struct vnop_getattr_args, a_vp),
230 VDESC_NO_OFFSET
231 };
232 struct vnodeop_desc vnop_getattr_desc = {
233 0,
234 "vnop_getattr",
235 0,
236 vnop_getattr_vp_offsets,
237 VDESC_NO_OFFSET,
238 VDESC_NO_OFFSET,
239 VDESC_NO_OFFSET,
240 VDESC_NO_OFFSET,
241 VOPARG_OFFSETOF(struct vnop_getattr_args, a_context),
242 NULL
243 };
244
245 int vnop_setattr_vp_offsets[] = {
246 VOPARG_OFFSETOF(struct vnop_setattr_args, a_vp),
247 VDESC_NO_OFFSET
248 };
249 struct vnodeop_desc vnop_setattr_desc = {
250 0,
251 "vnop_setattr",
252 0,
253 vnop_setattr_vp_offsets,
254 VDESC_NO_OFFSET,
255 VDESC_NO_OFFSET,
256 VDESC_NO_OFFSET,
257 VDESC_NO_OFFSET,
258 VOPARG_OFFSETOF(struct vnop_setattr_args, a_context),
259 NULL
260 };
261
262 int vnop_read_vp_offsets[] = {
263 VOPARG_OFFSETOF(struct vnop_read_args, a_vp),
264 VDESC_NO_OFFSET
265 };
266 struct vnodeop_desc vnop_read_desc = {
267 0,
268 "vnop_read",
269 0,
270 vnop_read_vp_offsets,
271 VDESC_NO_OFFSET,
272 VDESC_NO_OFFSET,
273 VDESC_NO_OFFSET,
274 VDESC_NO_OFFSET,
275 VOPARG_OFFSETOF(struct vnop_read_args, a_context),
276 NULL
277 };
278
279 int vnop_write_vp_offsets[] = {
280 VOPARG_OFFSETOF(struct vnop_write_args, a_vp),
281 VDESC_NO_OFFSET
282 };
283 struct vnodeop_desc vnop_write_desc = {
284 0,
285 "vnop_write",
286 0,
287 vnop_write_vp_offsets,
288 VDESC_NO_OFFSET,
289 VDESC_NO_OFFSET,
290 VDESC_NO_OFFSET,
291 VDESC_NO_OFFSET,
292 VOPARG_OFFSETOF(struct vnop_write_args, a_context),
293 NULL
294 };
295
296 int vnop_ioctl_vp_offsets[] = {
297 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_vp),
298 VDESC_NO_OFFSET
299 };
300 struct vnodeop_desc vnop_ioctl_desc = {
301 0,
302 "vnop_ioctl",
303 0,
304 vnop_ioctl_vp_offsets,
305 VDESC_NO_OFFSET,
306 VDESC_NO_OFFSET,
307 VDESC_NO_OFFSET,
308 VDESC_NO_OFFSET,
309 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context),
310 NULL
311 };
312
313 int vnop_select_vp_offsets[] = {
314 VOPARG_OFFSETOF(struct vnop_select_args, a_vp),
315 VDESC_NO_OFFSET
316 };
317 struct vnodeop_desc vnop_select_desc = {
318 0,
319 "vnop_select",
320 0,
321 vnop_select_vp_offsets,
322 VDESC_NO_OFFSET,
323 VDESC_NO_OFFSET,
324 VDESC_NO_OFFSET,
325 VDESC_NO_OFFSET,
326 VOPARG_OFFSETOF(struct vnop_select_args, a_context),
327 NULL
328 };
329
330 int vnop_exchange_vp_offsets[] = {
331 VOPARG_OFFSETOF(struct vnop_exchange_args, a_fvp),
332 VOPARG_OFFSETOF(struct vnop_exchange_args, a_tvp),
333 VDESC_NO_OFFSET
334 };
335 struct vnodeop_desc vnop_exchange_desc = {
336 0,
337 "vnop_exchange",
338 0,
339 vnop_exchange_vp_offsets,
340 VDESC_NO_OFFSET,
341 VDESC_NO_OFFSET,
342 VDESC_NO_OFFSET,
343 VDESC_NO_OFFSET,
344 VOPARG_OFFSETOF(struct vnop_exchange_args, a_context),
345 NULL
346 };
347
348 int vnop_kqfilt_add_vp_offsets[] = {
349 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_vp),
350 VDESC_NO_OFFSET
351 };
352 struct vnodeop_desc vnop_kqfilt_add_desc = {
353 0,
354 "vnop_kqfilt_add",
355 0,
356 vnop_kqfilt_add_vp_offsets,
357 VDESC_NO_OFFSET,
358 VDESC_NO_OFFSET,
359 VDESC_NO_OFFSET,
360 VDESC_NO_OFFSET,
361 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context),
362 NULL
363 };
364
365 int vnop_kqfilt_remove_vp_offsets[] = {
366 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_vp),
367 VDESC_NO_OFFSET
368 };
369 struct vnodeop_desc vnop_kqfilt_remove_desc = {
370 0,
371 "vnop_kqfilt_remove",
372 0,
373 vnop_kqfilt_remove_vp_offsets,
374 VDESC_NO_OFFSET,
375 VDESC_NO_OFFSET,
376 VDESC_NO_OFFSET,
377 VDESC_NO_OFFSET,
378 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context),
379 NULL
380 };
381
382 int vnop_monitor_vp_offsets[] = {
383 VOPARG_OFFSETOF(struct vnop_monitor_args, a_vp),
384 VDESC_NO_OFFSET
385 };
386 struct vnodeop_desc vnop_monitor_desc = {
387 0,
388 "vnop_monitor",
389 0,
390 vnop_monitor_vp_offsets,
391 VDESC_NO_OFFSET,
392 VDESC_NO_OFFSET,
393 VDESC_NO_OFFSET,
394 VDESC_NO_OFFSET,
395 VOPARG_OFFSETOF(struct vnop_monitor_args, a_context),
396 NULL
397 };
398
399 int vnop_setlabel_vp_offsets[] = {
400 VOPARG_OFFSETOF(struct vnop_setlabel_args, a_vp),
401 VDESC_NO_OFFSET
402 };
403 struct vnodeop_desc vnop_setlabel_desc = {
404 0,
405 "vnop_setlabel",
406 0,
407 vnop_setlabel_vp_offsets,
408 VDESC_NO_OFFSET,
409 VDESC_NO_OFFSET,
410 VDESC_NO_OFFSET,
411 VDESC_NO_OFFSET,
412 VOPARG_OFFSETOF(struct vnop_setlabel_args, a_context),
413 NULL,
414 };
415
416 int vnop_revoke_vp_offsets[] = {
417 VOPARG_OFFSETOF(struct vnop_revoke_args, a_vp),
418 VDESC_NO_OFFSET
419 };
420 struct vnodeop_desc vnop_revoke_desc = {
421 0,
422 "vnop_revoke",
423 0,
424 vnop_revoke_vp_offsets,
425 VDESC_NO_OFFSET,
426 VDESC_NO_OFFSET,
427 VDESC_NO_OFFSET,
428 VDESC_NO_OFFSET,
429 VDESC_NO_OFFSET,
430 NULL
431 };
432
433 int vnop_mmap_check_vp_offsets[] = {
434 VOPARG_OFFSETOF(struct vnop_mmap_check_args, a_vp),
435 VDESC_NO_OFFSET
436 };
437 struct vnodeop_desc vnop_mmap_check_desc = {
438 0,
439 "vnop_mmap_check",
440 0,
441 vnop_mmap_check_vp_offsets,
442 VDESC_NO_OFFSET,
443 VDESC_NO_OFFSET,
444 VDESC_NO_OFFSET,
445 VDESC_NO_OFFSET,
446 VDESC_NO_OFFSET,
447 NULL
448 };
449
450 int vnop_mmap_vp_offsets[] = {
451 VOPARG_OFFSETOF(struct vnop_mmap_args, a_vp),
452 VDESC_NO_OFFSET
453 };
454 struct vnodeop_desc vnop_mmap_desc = {
455 0,
456 "vnop_mmap",
457 0,
458 vnop_mmap_vp_offsets,
459 VDESC_NO_OFFSET,
460 VDESC_NO_OFFSET,
461 VDESC_NO_OFFSET,
462 VDESC_NO_OFFSET,
463 VDESC_NO_OFFSET,
464 NULL
465 };
466
467 int vnop_mnomap_vp_offsets[] = {
468 VOPARG_OFFSETOF(struct vnop_mnomap_args, a_vp),
469 VDESC_NO_OFFSET
470 };
471 struct vnodeop_desc vnop_mnomap_desc = {
472 0,
473 "vnop_mnomap",
474 0,
475 vnop_mnomap_vp_offsets,
476 VDESC_NO_OFFSET,
477 VDESC_NO_OFFSET,
478 VDESC_NO_OFFSET,
479 VDESC_NO_OFFSET,
480 VDESC_NO_OFFSET,
481 NULL
482 };
483
484 int vnop_fsync_vp_offsets[] = {
485 VOPARG_OFFSETOF(struct vnop_fsync_args, a_vp),
486 VDESC_NO_OFFSET
487 };
488 struct vnodeop_desc vnop_fsync_desc = {
489 0,
490 "vnop_fsync",
491 0,
492 vnop_fsync_vp_offsets,
493 VDESC_NO_OFFSET,
494 VDESC_NO_OFFSET,
495 VDESC_NO_OFFSET,
496 VDESC_NO_OFFSET,
497 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context),
498 NULL
499 };
500
501 int vnop_remove_vp_offsets[] = {
502 VOPARG_OFFSETOF(struct vnop_remove_args, a_dvp),
503 VOPARG_OFFSETOF(struct vnop_remove_args, a_vp),
504 VDESC_NO_OFFSET
505 };
506 struct vnodeop_desc vnop_remove_desc = {
507 0,
508 "vnop_remove",
509 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
510 vnop_remove_vp_offsets,
511 VDESC_NO_OFFSET,
512 VDESC_NO_OFFSET,
513 VDESC_NO_OFFSET,
514 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
515 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
516 NULL
517 };
518
519 int vnop_remove_extended_vp_offsets[] = {
520 VOPARG_OFFSETOF(struct vnop_remove_args, a_dvp),
521 VDESC_NO_OFFSET
522 };
523 struct vnodeop_desc vnop_compound_remove_desc = {
524 0,
525 "vnop_compound_remove",
526 0,
527 vnop_remove_vp_offsets,
528 VOPARG_OFFSETOF(struct vnop_compound_remove_args, a_vpp),
529 VDESC_NO_OFFSET,
530 VDESC_NO_OFFSET,
531 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
532 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
533 NULL
534 };
535
536 int vnop_link_vp_offsets[] = {
537 VOPARG_OFFSETOF(struct vnop_link_args, a_vp),
538 VOPARG_OFFSETOF(struct vnop_link_args, a_tdvp),
539 VDESC_NO_OFFSET
540 };
541 struct vnodeop_desc vnop_link_desc = {
542 0,
543 "vnop_link",
544 0 | VDESC_VP1_WILLRELE,
545 vnop_link_vp_offsets,
546 VDESC_NO_OFFSET,
547 VDESC_NO_OFFSET,
548 VDESC_NO_OFFSET,
549 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp),
550 VOPARG_OFFSETOF(struct vnop_link_args, a_context),
551 NULL
552 };
553
554 int vnop_rename_vp_offsets[] = {
555 VOPARG_OFFSETOF(struct vnop_rename_args, a_fdvp),
556 VOPARG_OFFSETOF(struct vnop_rename_args, a_fvp),
557 VOPARG_OFFSETOF(struct vnop_rename_args, a_tdvp),
558 VOPARG_OFFSETOF(struct vnop_rename_args, a_tvp),
559 VDESC_NO_OFFSET
560 };
561 struct vnodeop_desc vnop_rename_desc = {
562 0,
563 "vnop_rename",
564 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
565 vnop_rename_vp_offsets,
566 VDESC_NO_OFFSET,
567 VDESC_NO_OFFSET,
568 VDESC_NO_OFFSET,
569 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp),
570 VOPARG_OFFSETOF(struct vnop_rename_args, a_context),
571 NULL
572 };
573
574 int vnop_renamex_vp_offsets[] = {
575 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fdvp),
576 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fvp),
577 VOPARG_OFFSETOF(struct vnop_renamex_args, a_tdvp),
578 VOPARG_OFFSETOF(struct vnop_renamex_args, a_tvp),
579 VDESC_NO_OFFSET
580 };
581 struct vnodeop_desc vnop_renamex_desc = {
582 0,
583 "vnop_renamex",
584 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
585 vnop_renamex_vp_offsets,
586 VDESC_NO_OFFSET,
587 VDESC_NO_OFFSET,
588 VDESC_NO_OFFSET,
589 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fcnp),
590 VOPARG_OFFSETOF(struct vnop_renamex_args, a_context),
591 NULL
592 };
593
594 int vnop_compound_rename_vp_offsets[] = {
595 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fdvp),
596 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fvpp),
597 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_tdvp),
598 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_tvpp),
599 VDESC_NO_OFFSET
600 };
601 struct vnodeop_desc vnop_compound_rename_desc = {
602 0,
603 "vnop_compound_rename",
604 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
605 vnop_compound_rename_vp_offsets,
606 VDESC_NO_OFFSET,
607 VDESC_NO_OFFSET,
608 VDESC_NO_OFFSET,
609 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fcnp),
610 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_context),
611 NULL
612 };
613
614 int vnop_mkdir_vp_offsets[] = {
615 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_dvp),
616 VDESC_NO_OFFSET
617 };
618 struct vnodeop_desc vnop_mkdir_desc = {
619 0,
620 "vnop_mkdir",
621 0 | VDESC_VP0_WILLRELE,
622 vnop_mkdir_vp_offsets,
623 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
624 VDESC_NO_OFFSET,
625 VDESC_NO_OFFSET,
626 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
627 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
628 NULL
629 };
630
631 int vnop_compound_mkdir_vp_offsets[] = {
632 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_dvp),
633 VDESC_NO_OFFSET
634 };
635 struct vnodeop_desc vnop_compound_mkdir_desc = {
636 0,
637 "vnop_compound_mkdir",
638 0 | VDESC_VP0_WILLRELE,
639 vnop_compound_mkdir_vp_offsets,
640 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_vpp),
641 VDESC_NO_OFFSET,
642 VDESC_NO_OFFSET,
643 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_cnp),
644 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_context),
645 NULL
646 };
647
648
649 int vnop_rmdir_vp_offsets[] = {
650 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_dvp),
651 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_vp),
652 VDESC_NO_OFFSET
653 };
654 struct vnodeop_desc vnop_rmdir_desc = {
655 0,
656 "vnop_rmdir",
657 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
658 vnop_rmdir_vp_offsets,
659 VDESC_NO_OFFSET,
660 VDESC_NO_OFFSET,
661 VDESC_NO_OFFSET,
662 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
663 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
664 NULL
665 };
666
667 int vnop_compound_rmdir_vp_offsets[] = {
668 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_dvp),
669 VDESC_NO_OFFSET
670 };
671 struct vnodeop_desc vnop_compound_rmdir_desc = {
672 0,
673 "vnop_compound_rmdir",
674 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
675 vnop_rmdir_vp_offsets,
676 VDESC_NO_OFFSET,
677 VDESC_NO_OFFSET,
678 VDESC_NO_OFFSET,
679 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_cnp),
680 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_context),
681 NULL
682 };
683
684 int vnop_symlink_vp_offsets[] = {
685 VOPARG_OFFSETOF(struct vnop_symlink_args, a_dvp),
686 VDESC_NO_OFFSET
687 };
688 struct vnodeop_desc vnop_symlink_desc = {
689 0,
690 "vnop_symlink",
691 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
692 vnop_symlink_vp_offsets,
693 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
694 VDESC_NO_OFFSET,
695 VDESC_NO_OFFSET,
696 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
697 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
698 NULL
699 };
700
701 int vnop_readdir_vp_offsets[] = {
702 VOPARG_OFFSETOF(struct vnop_readdir_args, a_vp),
703 VDESC_NO_OFFSET
704 };
705 struct vnodeop_desc vnop_readdir_desc = {
706 0,
707 "vnop_readdir",
708 0,
709 vnop_readdir_vp_offsets,
710 VDESC_NO_OFFSET,
711 VDESC_NO_OFFSET,
712 VDESC_NO_OFFSET,
713 VDESC_NO_OFFSET,
714 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
715 NULL
716 };
717
718 int vnop_readdirattr_vp_offsets[] = {
719 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_vp),
720 VDESC_NO_OFFSET
721 };
722 struct vnodeop_desc vnop_readdirattr_desc = {
723 0,
724 "vnop_readdirattr",
725 0,
726 vnop_readdirattr_vp_offsets,
727 VDESC_NO_OFFSET,
728 VDESC_NO_OFFSET,
729 VDESC_NO_OFFSET,
730 VDESC_NO_OFFSET,
731 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context),
732 NULL
733 };
734
735 int vnop_getattrlistbulk_vp_offsets[] = {
736 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_vp),
737 VDESC_NO_OFFSET
738 };
739 struct vnodeop_desc vnop_getattrlistbulk_desc = {
740 0,
741 "vnop_getattrlistbulk",
742 0,
743 vnop_getattrlistbulk_vp_offsets,
744 VDESC_NO_OFFSET,
745 VDESC_NO_OFFSET,
746 VDESC_NO_OFFSET,
747 VDESC_NO_OFFSET,
748 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_context),
749 NULL
750 };
751
752 int vnop_readlink_vp_offsets[] = {
753 VOPARG_OFFSETOF(struct vnop_readlink_args, a_vp),
754 VDESC_NO_OFFSET
755 };
756 struct vnodeop_desc vnop_readlink_desc = {
757 0,
758 "vnop_readlink",
759 0,
760 vnop_readlink_vp_offsets,
761 VDESC_NO_OFFSET,
762 VDESC_NO_OFFSET,
763 VDESC_NO_OFFSET,
764 VDESC_NO_OFFSET,
765 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context),
766 NULL
767 };
768
769 int vnop_inactive_vp_offsets[] = {
770 VOPARG_OFFSETOF(struct vnop_inactive_args, a_vp),
771 VDESC_NO_OFFSET
772 };
773 struct vnodeop_desc vnop_inactive_desc = {
774 0,
775 "vnop_inactive",
776 0,
777 vnop_inactive_vp_offsets,
778 VDESC_NO_OFFSET,
779 VDESC_NO_OFFSET,
780 VDESC_NO_OFFSET,
781 VDESC_NO_OFFSET,
782 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context),
783 NULL
784 };
785
786 int vnop_reclaim_vp_offsets[] = {
787 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_vp),
788 VDESC_NO_OFFSET
789 };
790 struct vnodeop_desc vnop_reclaim_desc = {
791 0,
792 "vnop_reclaim",
793 0,
794 vnop_reclaim_vp_offsets,
795 VDESC_NO_OFFSET,
796 VDESC_NO_OFFSET,
797 VDESC_NO_OFFSET,
798 VDESC_NO_OFFSET,
799 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
800 NULL
801 };
802
803 int vnop_pathconf_vp_offsets[] = {
804 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_vp),
805 VDESC_NO_OFFSET
806 };
807 struct vnodeop_desc vnop_pathconf_desc = {
808 0,
809 "vnop_pathconf",
810 0,
811 vnop_pathconf_vp_offsets,
812 VDESC_NO_OFFSET,
813 VDESC_NO_OFFSET,
814 VDESC_NO_OFFSET,
815 VDESC_NO_OFFSET,
816 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
817 NULL
818 };
819
820 int vnop_advlock_vp_offsets[] = {
821 VOPARG_OFFSETOF(struct vnop_advlock_args, a_vp),
822 VDESC_NO_OFFSET
823 };
824 struct vnodeop_desc vnop_advlock_desc = {
825 0,
826 "vnop_advlock",
827 0,
828 vnop_advlock_vp_offsets,
829 VDESC_NO_OFFSET,
830 VDESC_NO_OFFSET,
831 VDESC_NO_OFFSET,
832 VDESC_NO_OFFSET,
833 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context),
834 NULL
835 };
836
837 int vnop_allocate_vp_offsets[] = {
838 VOPARG_OFFSETOF(struct vnop_allocate_args, a_vp),
839 VDESC_NO_OFFSET
840 };
841 struct vnodeop_desc vnop_allocate_desc = {
842 0,
843 "vnop_allocate",
844 0,
845 vnop_allocate_vp_offsets,
846 VDESC_NO_OFFSET,
847 VDESC_NO_OFFSET,
848 VDESC_NO_OFFSET,
849 VDESC_NO_OFFSET,
850 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
851 NULL
852 };
853
854 int vnop_pagein_vp_offsets[] = {
855 VOPARG_OFFSETOF(struct vnop_pagein_args, a_vp),
856 VDESC_NO_OFFSET
857 };
858 struct vnodeop_desc vnop_pagein_desc = {
859 0,
860 "vnop_pagein",
861 0,
862 vnop_pagein_vp_offsets,
863 VDESC_NO_OFFSET,
864 VDESC_NO_OFFSET,
865 VDESC_NO_OFFSET,
866 VDESC_NO_OFFSET,
867 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
868 NULL
869 };
870
871 int vnop_pageout_vp_offsets[] = {
872 VOPARG_OFFSETOF(struct vnop_pageout_args, a_vp),
873 VDESC_NO_OFFSET
874 };
875 struct vnodeop_desc vnop_pageout_desc = {
876 0,
877 "vnop_pageout",
878 0,
879 vnop_pageout_vp_offsets,
880 VDESC_NO_OFFSET,
881 VDESC_NO_OFFSET,
882 VDESC_NO_OFFSET,
883 VDESC_NO_OFFSET,
884 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
885 NULL
886 };
887
888 int vnop_searchfs_vp_offsets[] = {
889 VOPARG_OFFSETOF(struct vnop_searchfs_args, a_vp),
890 VDESC_NO_OFFSET
891 };
892 struct vnodeop_desc vnop_searchfs_desc = {
893 0,
894 "vnop_searchfs",
895 0,
896 vnop_searchfs_vp_offsets,
897 VDESC_NO_OFFSET,
898 VDESC_NO_OFFSET,
899 VDESC_NO_OFFSET,
900 VDESC_NO_OFFSET,
901 VDESC_NO_OFFSET,
902 NULL
903 };
904
905 int vnop_copyfile_vp_offsets[] = {
906 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_fvp),
907 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tdvp),
908 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tvp),
909 VDESC_NO_OFFSET
910 };
911 struct vnodeop_desc vnop_copyfile_desc = {
912 .vdesc_offset = 0,
913 .vdesc_name = "vnop_copyfile",
914 .vdesc_flags = 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
915 .vdesc_vp_offsets = vnop_copyfile_vp_offsets,
916 .vdesc_vpp_offset = VDESC_NO_OFFSET,
917 .vdesc_cred_offset = VDESC_NO_OFFSET,
918 .vdesc_proc_offset = VDESC_NO_OFFSET,
919 .vdesc_componentname_offset = VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
920 .vdesc_context_offset = VDESC_NO_OFFSET,
921 .vdesc_transports = NULL
922 };
923
924 int vnop_clonefile_vp_offsets[] = {
925 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_fvp),
926 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_dvp),
927 VDESC_NO_OFFSET
928 };
929 struct vnodeop_desc vnop_clonefile_desc = {
930 .vdesc_offset = 0,
931 .vdesc_name = "vnop_clonefile",
932 .vdesc_flags = 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VPP_WILLRELE,
933 .vdesc_vp_offsets = vnop_clonefile_vp_offsets,
934 .vdesc_vpp_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_vpp),
935 .vdesc_cred_offset = VDESC_NO_OFFSET,
936 .vdesc_proc_offset = VDESC_NO_OFFSET,
937 .vdesc_componentname_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_cnp),
938 .vdesc_context_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_context),
939 .vdesc_transports = NULL
940 };
941
942 int vop_getxattr_vp_offsets[] = {
943 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_vp),
944 VDESC_NO_OFFSET
945 };
946 struct vnodeop_desc vnop_getxattr_desc = {
947 0,
948 "vnop_getxattr",
949 0,
950 vop_getxattr_vp_offsets,
951 VDESC_NO_OFFSET,
952 VDESC_NO_OFFSET,
953 VDESC_NO_OFFSET,
954 VDESC_NO_OFFSET,
955 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
956 NULL
957 };
958
959 int vop_setxattr_vp_offsets[] = {
960 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_vp),
961 VDESC_NO_OFFSET
962 };
963 struct vnodeop_desc vnop_setxattr_desc = {
964 0,
965 "vnop_setxattr",
966 0,
967 vop_setxattr_vp_offsets,
968 VDESC_NO_OFFSET,
969 VDESC_NO_OFFSET,
970 VDESC_NO_OFFSET,
971 VDESC_NO_OFFSET,
972 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context),
973 NULL
974 };
975
976 int vop_removexattr_vp_offsets[] = {
977 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_vp),
978 VDESC_NO_OFFSET
979 };
980 struct vnodeop_desc vnop_removexattr_desc = {
981 0,
982 "vnop_removexattr",
983 0,
984 vop_removexattr_vp_offsets,
985 VDESC_NO_OFFSET,
986 VDESC_NO_OFFSET,
987 VDESC_NO_OFFSET,
988 VDESC_NO_OFFSET,
989 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
990 NULL
991 };
992
993 int vop_listxattr_vp_offsets[] = {
994 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_vp),
995 VDESC_NO_OFFSET
996 };
997 struct vnodeop_desc vnop_listxattr_desc = {
998 0,
999 "vnop_listxattr",
1000 0,
1001 vop_listxattr_vp_offsets,
1002 VDESC_NO_OFFSET,
1003 VDESC_NO_OFFSET,
1004 VDESC_NO_OFFSET,
1005 VDESC_NO_OFFSET,
1006 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
1007 NULL
1008 };
1009
1010 int vnop_blktooff_vp_offsets[] = {
1011 VOPARG_OFFSETOF(struct vnop_blktooff_args, a_vp),
1012 VDESC_NO_OFFSET
1013 };
1014 struct vnodeop_desc vnop_blktooff_desc = {
1015 0,
1016 "vnop_blktooff",
1017 0,
1018 vnop_blktooff_vp_offsets,
1019 VDESC_NO_OFFSET,
1020 VDESC_NO_OFFSET,
1021 VDESC_NO_OFFSET,
1022 VDESC_NO_OFFSET,
1023 VDESC_NO_OFFSET,
1024 NULL
1025 };
1026
1027 int vnop_offtoblk_vp_offsets[] = {
1028 VOPARG_OFFSETOF(struct vnop_offtoblk_args, a_vp),
1029 VDESC_NO_OFFSET
1030 };
1031 struct vnodeop_desc vnop_offtoblk_desc = {
1032 0,
1033 "vnop_offtoblk",
1034 0,
1035 vnop_offtoblk_vp_offsets,
1036 VDESC_NO_OFFSET,
1037 VDESC_NO_OFFSET,
1038 VDESC_NO_OFFSET,
1039 VDESC_NO_OFFSET,
1040 VDESC_NO_OFFSET,
1041 NULL
1042 };
1043
1044 int vnop_blockmap_vp_offsets[] = {
1045 VOPARG_OFFSETOF(struct vnop_blockmap_args, a_vp),
1046 VDESC_NO_OFFSET
1047 };
1048 struct vnodeop_desc vnop_blockmap_desc = {
1049 0,
1050 "vnop_blockmap",
1051 0,
1052 vnop_blockmap_vp_offsets,
1053 VDESC_NO_OFFSET,
1054 VDESC_NO_OFFSET,
1055 VDESC_NO_OFFSET,
1056 VDESC_NO_OFFSET,
1057 VDESC_NO_OFFSET,
1058 NULL
1059 };
1060
1061 #if NAMEDSTREAMS
1062 int vnop_getnamedstream_vp_offsets[] = {
1063 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp),
1064 VDESC_NO_OFFSET
1065 };
1066 struct vnodeop_desc vnop_getnamedstream_desc = {
1067 0,
1068 "vnop_getnamedstream",
1069 0,
1070 vnop_getnamedstream_vp_offsets,
1071 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp),
1072 VDESC_NO_OFFSET,
1073 VDESC_NO_OFFSET,
1074 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name),
1075 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context),
1076 NULL
1077 };
1078
1079 int vnop_makenamedstream_vp_offsets[] = {
1080 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp),
1081 VDESC_NO_OFFSET
1082 };
1083 struct vnodeop_desc vnop_makenamedstream_desc = {
1084 0,
1085 "vnop_makenamedstream",
1086 0, /* flags */
1087 vnop_makenamedstream_vp_offsets,
1088 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp),
1089 VDESC_NO_OFFSET,
1090 VDESC_NO_OFFSET,
1091 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name),
1092 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context),
1093 NULL
1094 };
1095
1096 int vnop_removenamedstream_vp_offsets[] = {
1097 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp),
1098 VDESC_NO_OFFSET
1099 };
1100 struct vnodeop_desc vnop_removenamedstream_desc = {
1101 0,
1102 "vnop_removenamedstream",
1103 0,
1104 vnop_removenamedstream_vp_offsets,
1105 VDESC_NO_OFFSET,
1106 VDESC_NO_OFFSET,
1107 VDESC_NO_OFFSET,
1108 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name),
1109 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context),
1110 NULL
1111 };
1112 #else
1113 int vnop_getnamedstream_vp_offsets[] = {
1114 VDESC_NO_OFFSET
1115 };
1116 struct vnodeop_desc vnop_getnamedstream_desc = {
1117 0,
1118 "vnop_getnamedstream",
1119 VDESC_DISABLED, /* flags */
1120 vnop_getnamedstream_vp_offsets,
1121 VDESC_NO_OFFSET,
1122 VDESC_NO_OFFSET,
1123 VDESC_NO_OFFSET,
1124 VDESC_NO_OFFSET,
1125 VDESC_NO_OFFSET,
1126 NULL
1127 };
1128
1129 int vnop_makenamedstream_vp_offsets[] = {
1130 VDESC_NO_OFFSET
1131 };
1132 struct vnodeop_desc vnop_makenamedstream_desc = {
1133 0,
1134 "vnop_makenamedstream",
1135 VDESC_DISABLED, /* flags */
1136 vnop_makenamedstream_vp_offsets,
1137 VDESC_NO_OFFSET,
1138 VDESC_NO_OFFSET,
1139 VDESC_NO_OFFSET,
1140 VDESC_NO_OFFSET,
1141 VDESC_NO_OFFSET,
1142 NULL
1143 };
1144
1145 int vnop_removenamedstream_vp_offsets[] = {
1146 VDESC_NO_OFFSET
1147 };
1148 struct vnodeop_desc vnop_removenamedstream_desc = {
1149 0,
1150 "vnop_removenamedstream",
1151 VDESC_DISABLED, /* flags */
1152 vnop_removenamedstream_vp_offsets,
1153 VDESC_NO_OFFSET,
1154 VDESC_NO_OFFSET,
1155 VDESC_NO_OFFSET,
1156 VDESC_NO_OFFSET,
1157 VDESC_NO_OFFSET,
1158 NULL
1159 };
1160 #endif
1161
1162 /* Special cases: */
1163
1164 int vnop_strategy_vp_offsets[] = {
1165 VDESC_NO_OFFSET
1166 };
1167 struct vnodeop_desc vnop_strategy_desc = {
1168 0,
1169 "vnop_strategy",
1170 0,
1171 vnop_strategy_vp_offsets,
1172 VDESC_NO_OFFSET,
1173 VDESC_NO_OFFSET,
1174 VDESC_NO_OFFSET,
1175 VDESC_NO_OFFSET,
1176 VDESC_NO_OFFSET,
1177 NULL
1178 };
1179
1180 int vnop_bwrite_vp_offsets[] = {
1181 VDESC_NO_OFFSET
1182 };
1183 struct vnodeop_desc vnop_bwrite_desc = {
1184 0,
1185 "vnop_bwrite",
1186 0,
1187 vnop_bwrite_vp_offsets,
1188 VDESC_NO_OFFSET,
1189 VDESC_NO_OFFSET,
1190 VDESC_NO_OFFSET,
1191 VDESC_NO_OFFSET,
1192 VDESC_NO_OFFSET,
1193 NULL
1194 };
1195
1196 /* End of special cases. */
1197
1198 struct vnodeop_desc *vfs_op_descs[] = {
1199 &vnop_default_desc, /* MUST BE FIRST */
1200 &vnop_strategy_desc, /* XXX: SPECIAL CASE */
1201 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
1202
1203 &vnop_lookup_desc,
1204 &vnop_create_desc,
1205 &vnop_mknod_desc,
1206 &vnop_whiteout_desc,
1207 &vnop_open_desc,
1208 &vnop_compound_open_desc,
1209 &vnop_close_desc,
1210 &vnop_access_desc,
1211 &vnop_getattr_desc,
1212 &vnop_setattr_desc,
1213 &vnop_read_desc,
1214 &vnop_write_desc,
1215 &vnop_ioctl_desc,
1216 &vnop_select_desc,
1217 &vnop_exchange_desc,
1218 &vnop_kqfilt_add_desc,
1219 &vnop_kqfilt_remove_desc,
1220 &vnop_setlabel_desc,
1221 &vnop_revoke_desc,
1222 &vnop_mmap_check_desc,
1223 &vnop_mmap_desc,
1224 &vnop_mnomap_desc,
1225 &vnop_fsync_desc,
1226 &vnop_remove_desc,
1227 &vnop_compound_remove_desc,
1228 &vnop_link_desc,
1229 &vnop_rename_desc,
1230 &vnop_renamex_desc,
1231 &vnop_compound_rename_desc,
1232 &vnop_mkdir_desc,
1233 &vnop_compound_mkdir_desc,
1234 &vnop_rmdir_desc,
1235 &vnop_compound_rmdir_desc,
1236 &vnop_symlink_desc,
1237 &vnop_readdir_desc,
1238 &vnop_readdirattr_desc,
1239 &vnop_getattrlistbulk_desc,
1240 &vnop_readlink_desc,
1241 &vnop_inactive_desc,
1242 &vnop_reclaim_desc,
1243 &vnop_pathconf_desc,
1244 &vnop_advlock_desc,
1245 &vnop_allocate_desc,
1246 &vnop_pagein_desc,
1247 &vnop_pageout_desc,
1248 &vnop_searchfs_desc,
1249 &vnop_copyfile_desc,
1250 &vnop_clonefile_desc,
1251 &vnop_getxattr_desc,
1252 &vnop_setxattr_desc,
1253 &vnop_removexattr_desc,
1254 &vnop_listxattr_desc,
1255 &vnop_blktooff_desc,
1256 &vnop_offtoblk_desc,
1257 &vnop_blockmap_desc,
1258 &vnop_monitor_desc,
1259 #if !defined(NAMEDSTREAMS)
1260 /*
1261 * We define the named streams ops descriptors as we _always_ have to
1262 * have symbols with their names, and as such we really really need
1263 * those symbols to be valid operations descriptors. However if
1264 * named streams support is not enabled, we flag these descriptors
1265 * as ignored.
1266 */
1267 #endif
1268 &vnop_getnamedstream_desc,
1269 &vnop_makenamedstream_desc,
1270 &vnop_removenamedstream_desc,
1271 NULL
1272 };