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