]> git.saurik.com Git - apple/xnu.git/blob - bsd/vfs/vnode_if.c
ffd01323c1a6f22315d117a755d884c0bb9bf030
[apple/xnu.git] / bsd / vfs / vnode_if.c
1 /*
2 * Copyright (c) 2000-2016 Apple Computer, 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
434 int vnop_mmap_vp_offsets[] = {
435 VOPARG_OFFSETOF(struct vnop_mmap_args, a_vp),
436 VDESC_NO_OFFSET
437 };
438 struct vnodeop_desc vnop_mmap_desc = {
439 0,
440 "vnop_mmap",
441 0,
442 vnop_mmap_vp_offsets,
443 VDESC_NO_OFFSET,
444 VDESC_NO_OFFSET,
445 VDESC_NO_OFFSET,
446 VDESC_NO_OFFSET,
447 VDESC_NO_OFFSET,
448 NULL
449 };
450
451
452 int vnop_mnomap_vp_offsets[] = {
453 VOPARG_OFFSETOF(struct vnop_mnomap_args, a_vp),
454 VDESC_NO_OFFSET
455 };
456 struct vnodeop_desc vnop_mnomap_desc = {
457 0,
458 "vnop_mnomap",
459 0,
460 vnop_mnomap_vp_offsets,
461 VDESC_NO_OFFSET,
462 VDESC_NO_OFFSET,
463 VDESC_NO_OFFSET,
464 VDESC_NO_OFFSET,
465 VDESC_NO_OFFSET,
466 NULL
467 };
468
469
470 int vnop_fsync_vp_offsets[] = {
471 VOPARG_OFFSETOF(struct vnop_fsync_args, a_vp),
472 VDESC_NO_OFFSET
473 };
474 struct vnodeop_desc vnop_fsync_desc = {
475 0,
476 "vnop_fsync",
477 0,
478 vnop_fsync_vp_offsets,
479 VDESC_NO_OFFSET,
480 VDESC_NO_OFFSET,
481 VDESC_NO_OFFSET,
482 VDESC_NO_OFFSET,
483 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context),
484 NULL
485 };
486
487 int vnop_remove_vp_offsets[] = {
488 VOPARG_OFFSETOF(struct vnop_remove_args, a_dvp),
489 VOPARG_OFFSETOF(struct vnop_remove_args, a_vp),
490 VDESC_NO_OFFSET
491 };
492 struct vnodeop_desc vnop_remove_desc = {
493 0,
494 "vnop_remove",
495 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
496 vnop_remove_vp_offsets,
497 VDESC_NO_OFFSET,
498 VDESC_NO_OFFSET,
499 VDESC_NO_OFFSET,
500 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
501 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
502 NULL
503 };
504
505 int vnop_remove_extended_vp_offsets[] = {
506 VOPARG_OFFSETOF(struct vnop_remove_args, a_dvp),
507 VDESC_NO_OFFSET
508 };
509 struct vnodeop_desc vnop_compound_remove_desc = {
510 0,
511 "vnop_compound_remove",
512 0,
513 vnop_remove_vp_offsets,
514 VOPARG_OFFSETOF(struct vnop_compound_remove_args, a_vpp),
515 VDESC_NO_OFFSET,
516 VDESC_NO_OFFSET,
517 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
518 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
519 NULL
520 };
521
522 int vnop_link_vp_offsets[] = {
523 VOPARG_OFFSETOF(struct vnop_link_args, a_vp),
524 VOPARG_OFFSETOF(struct vnop_link_args, a_tdvp),
525 VDESC_NO_OFFSET
526 };
527 struct vnodeop_desc vnop_link_desc = {
528 0,
529 "vnop_link",
530 0 | VDESC_VP1_WILLRELE,
531 vnop_link_vp_offsets,
532 VDESC_NO_OFFSET,
533 VDESC_NO_OFFSET,
534 VDESC_NO_OFFSET,
535 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp),
536 VOPARG_OFFSETOF(struct vnop_link_args, a_context),
537 NULL
538 };
539
540 int vnop_rename_vp_offsets[] = {
541 VOPARG_OFFSETOF(struct vnop_rename_args, a_fdvp),
542 VOPARG_OFFSETOF(struct vnop_rename_args, a_fvp),
543 VOPARG_OFFSETOF(struct vnop_rename_args, a_tdvp),
544 VOPARG_OFFSETOF(struct vnop_rename_args, a_tvp),
545 VDESC_NO_OFFSET
546 };
547 struct vnodeop_desc vnop_rename_desc = {
548 0,
549 "vnop_rename",
550 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
551 vnop_rename_vp_offsets,
552 VDESC_NO_OFFSET,
553 VDESC_NO_OFFSET,
554 VDESC_NO_OFFSET,
555 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp),
556 VOPARG_OFFSETOF(struct vnop_rename_args, a_context),
557 NULL
558 };
559
560 int vnop_renamex_vp_offsets[] = {
561 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fdvp),
562 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fvp),
563 VOPARG_OFFSETOF(struct vnop_renamex_args, a_tdvp),
564 VOPARG_OFFSETOF(struct vnop_renamex_args, a_tvp),
565 VDESC_NO_OFFSET
566 };
567 struct vnodeop_desc vnop_renamex_desc = {
568 0,
569 "vnop_renamex",
570 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
571 vnop_renamex_vp_offsets,
572 VDESC_NO_OFFSET,
573 VDESC_NO_OFFSET,
574 VDESC_NO_OFFSET,
575 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fcnp),
576 VOPARG_OFFSETOF(struct vnop_renamex_args, a_context),
577 NULL
578 };
579
580 int vnop_compound_rename_vp_offsets[] = {
581 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fdvp),
582 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fvpp),
583 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_tdvp),
584 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_tvpp),
585 VDESC_NO_OFFSET
586 };
587 struct vnodeop_desc vnop_compound_rename_desc = {
588 0,
589 "vnop_compound_rename",
590 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
591 vnop_compound_rename_vp_offsets,
592 VDESC_NO_OFFSET,
593 VDESC_NO_OFFSET,
594 VDESC_NO_OFFSET,
595 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fcnp),
596 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_context),
597 NULL
598 };
599
600 int vnop_mkdir_vp_offsets[] = {
601 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_dvp),
602 VDESC_NO_OFFSET
603 };
604 struct vnodeop_desc vnop_mkdir_desc = {
605 0,
606 "vnop_mkdir",
607 0 | VDESC_VP0_WILLRELE,
608 vnop_mkdir_vp_offsets,
609 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
610 VDESC_NO_OFFSET,
611 VDESC_NO_OFFSET,
612 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
613 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
614 NULL
615 };
616
617 int vnop_compound_mkdir_vp_offsets[] = {
618 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_dvp),
619 VDESC_NO_OFFSET
620 };
621 struct vnodeop_desc vnop_compound_mkdir_desc = {
622 0,
623 "vnop_compound_mkdir",
624 0 | VDESC_VP0_WILLRELE,
625 vnop_compound_mkdir_vp_offsets,
626 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_vpp),
627 VDESC_NO_OFFSET,
628 VDESC_NO_OFFSET,
629 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_cnp),
630 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_context),
631 NULL
632 };
633
634
635 int vnop_rmdir_vp_offsets[] = {
636 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_dvp),
637 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_vp),
638 VDESC_NO_OFFSET
639 };
640 struct vnodeop_desc vnop_rmdir_desc = {
641 0,
642 "vnop_rmdir",
643 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
644 vnop_rmdir_vp_offsets,
645 VDESC_NO_OFFSET,
646 VDESC_NO_OFFSET,
647 VDESC_NO_OFFSET,
648 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
649 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
650 NULL
651 };
652
653 int vnop_compound_rmdir_vp_offsets[] = {
654 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_dvp),
655 VDESC_NO_OFFSET
656 };
657 struct vnodeop_desc vnop_compound_rmdir_desc = {
658 0,
659 "vnop_compound_rmdir",
660 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
661 vnop_rmdir_vp_offsets,
662 VDESC_NO_OFFSET,
663 VDESC_NO_OFFSET,
664 VDESC_NO_OFFSET,
665 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_cnp),
666 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_context),
667 NULL
668 };
669
670 int vnop_symlink_vp_offsets[] = {
671 VOPARG_OFFSETOF(struct vnop_symlink_args, a_dvp),
672 VDESC_NO_OFFSET
673 };
674 struct vnodeop_desc vnop_symlink_desc = {
675 0,
676 "vnop_symlink",
677 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
678 vnop_symlink_vp_offsets,
679 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
680 VDESC_NO_OFFSET,
681 VDESC_NO_OFFSET,
682 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
683 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
684 NULL
685 };
686
687 int vnop_readdir_vp_offsets[] = {
688 VOPARG_OFFSETOF(struct vnop_readdir_args, a_vp),
689 VDESC_NO_OFFSET
690 };
691 struct vnodeop_desc vnop_readdir_desc = {
692 0,
693 "vnop_readdir",
694 0,
695 vnop_readdir_vp_offsets,
696 VDESC_NO_OFFSET,
697 VDESC_NO_OFFSET,
698 VDESC_NO_OFFSET,
699 VDESC_NO_OFFSET,
700 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
701 NULL
702 };
703
704 int vnop_readdirattr_vp_offsets[] = {
705 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_vp),
706 VDESC_NO_OFFSET
707 };
708 struct vnodeop_desc vnop_readdirattr_desc = {
709 0,
710 "vnop_readdirattr",
711 0,
712 vnop_readdirattr_vp_offsets,
713 VDESC_NO_OFFSET,
714 VDESC_NO_OFFSET,
715 VDESC_NO_OFFSET,
716 VDESC_NO_OFFSET,
717 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context),
718 NULL
719 };
720
721 int vnop_getattrlistbulk_vp_offsets[] = {
722 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_vp),
723 VDESC_NO_OFFSET
724 };
725 struct vnodeop_desc vnop_getattrlistbulk_desc = {
726 0,
727 "vnop_getattrlistbulk",
728 0,
729 vnop_getattrlistbulk_vp_offsets,
730 VDESC_NO_OFFSET,
731 VDESC_NO_OFFSET,
732 VDESC_NO_OFFSET,
733 VDESC_NO_OFFSET,
734 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_context),
735 NULL
736 };
737
738 int vnop_readlink_vp_offsets[] = {
739 VOPARG_OFFSETOF(struct vnop_readlink_args, a_vp),
740 VDESC_NO_OFFSET
741 };
742 struct vnodeop_desc vnop_readlink_desc = {
743 0,
744 "vnop_readlink",
745 0,
746 vnop_readlink_vp_offsets,
747 VDESC_NO_OFFSET,
748 VDESC_NO_OFFSET,
749 VDESC_NO_OFFSET,
750 VDESC_NO_OFFSET,
751 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context),
752 NULL
753 };
754
755 int vnop_inactive_vp_offsets[] = {
756 VOPARG_OFFSETOF(struct vnop_inactive_args, a_vp),
757 VDESC_NO_OFFSET
758 };
759 struct vnodeop_desc vnop_inactive_desc = {
760 0,
761 "vnop_inactive",
762 0,
763 vnop_inactive_vp_offsets,
764 VDESC_NO_OFFSET,
765 VDESC_NO_OFFSET,
766 VDESC_NO_OFFSET,
767 VDESC_NO_OFFSET,
768 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context),
769 NULL
770 };
771
772 int vnop_reclaim_vp_offsets[] = {
773 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_vp),
774 VDESC_NO_OFFSET
775 };
776 struct vnodeop_desc vnop_reclaim_desc = {
777 0,
778 "vnop_reclaim",
779 0,
780 vnop_reclaim_vp_offsets,
781 VDESC_NO_OFFSET,
782 VDESC_NO_OFFSET,
783 VDESC_NO_OFFSET,
784 VDESC_NO_OFFSET,
785 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
786 NULL
787 };
788
789 int vnop_pathconf_vp_offsets[] = {
790 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_vp),
791 VDESC_NO_OFFSET
792 };
793 struct vnodeop_desc vnop_pathconf_desc = {
794 0,
795 "vnop_pathconf",
796 0,
797 vnop_pathconf_vp_offsets,
798 VDESC_NO_OFFSET,
799 VDESC_NO_OFFSET,
800 VDESC_NO_OFFSET,
801 VDESC_NO_OFFSET,
802 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
803 NULL
804 };
805
806 int vnop_advlock_vp_offsets[] = {
807 VOPARG_OFFSETOF(struct vnop_advlock_args, a_vp),
808 VDESC_NO_OFFSET
809 };
810 struct vnodeop_desc vnop_advlock_desc = {
811 0,
812 "vnop_advlock",
813 0,
814 vnop_advlock_vp_offsets,
815 VDESC_NO_OFFSET,
816 VDESC_NO_OFFSET,
817 VDESC_NO_OFFSET,
818 VDESC_NO_OFFSET,
819 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context),
820 NULL
821 };
822
823 int vnop_allocate_vp_offsets[] = {
824 VOPARG_OFFSETOF(struct vnop_allocate_args, a_vp),
825 VDESC_NO_OFFSET
826 };
827 struct vnodeop_desc vnop_allocate_desc = {
828 0,
829 "vnop_allocate",
830 0,
831 vnop_allocate_vp_offsets,
832 VDESC_NO_OFFSET,
833 VDESC_NO_OFFSET,
834 VDESC_NO_OFFSET,
835 VDESC_NO_OFFSET,
836 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
837 NULL
838 };
839
840 int vnop_pagein_vp_offsets[] = {
841 VOPARG_OFFSETOF(struct vnop_pagein_args, a_vp),
842 VDESC_NO_OFFSET
843 };
844 struct vnodeop_desc vnop_pagein_desc = {
845 0,
846 "vnop_pagein",
847 0,
848 vnop_pagein_vp_offsets,
849 VDESC_NO_OFFSET,
850 VDESC_NO_OFFSET,
851 VDESC_NO_OFFSET,
852 VDESC_NO_OFFSET,
853 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
854 NULL
855 };
856
857 int vnop_pageout_vp_offsets[] = {
858 VOPARG_OFFSETOF(struct vnop_pageout_args, a_vp),
859 VDESC_NO_OFFSET
860 };
861 struct vnodeop_desc vnop_pageout_desc = {
862 0,
863 "vnop_pageout",
864 0,
865 vnop_pageout_vp_offsets,
866 VDESC_NO_OFFSET,
867 VDESC_NO_OFFSET,
868 VDESC_NO_OFFSET,
869 VDESC_NO_OFFSET,
870 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
871 NULL
872 };
873
874 int vnop_searchfs_vp_offsets[] = {
875 VOPARG_OFFSETOF(struct vnop_searchfs_args, a_vp),
876 VDESC_NO_OFFSET
877 };
878 struct vnodeop_desc vnop_searchfs_desc = {
879 0,
880 "vnop_searchfs",
881 0,
882 vnop_searchfs_vp_offsets,
883 VDESC_NO_OFFSET,
884 VDESC_NO_OFFSET,
885 VDESC_NO_OFFSET,
886 VDESC_NO_OFFSET,
887 VDESC_NO_OFFSET,
888 NULL
889 };
890
891 int vnop_copyfile_vp_offsets[] = {
892 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_fvp),
893 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tdvp),
894 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tvp),
895 VDESC_NO_OFFSET
896 };
897 struct vnodeop_desc vnop_copyfile_desc = {
898 0,
899 "vnop_copyfile",
900 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
901 vnop_copyfile_vp_offsets,
902 VDESC_NO_OFFSET,
903 VDESC_NO_OFFSET,
904 VDESC_NO_OFFSET,
905 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
906 VDESC_NO_OFFSET,
907 NULL
908 };
909
910 int vnop_clonefile_vp_offsets[] = {
911 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_fvp),
912 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_dvp),
913 VDESC_NO_OFFSET
914 };
915 struct vnodeop_desc vnop_clonefile_desc = {
916 0,
917 "vnop_clonefile",
918 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VPP_WILLRELE,
919 vnop_clonefile_vp_offsets,
920 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_vpp),
921 VDESC_NO_OFFSET,
922 VDESC_NO_OFFSET,
923 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_cnp),
924 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_context),
925 NULL
926 };
927
928 int vop_getxattr_vp_offsets[] = {
929 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_vp),
930 VDESC_NO_OFFSET
931 };
932 struct vnodeop_desc vnop_getxattr_desc = {
933 0,
934 "vnop_getxattr",
935 0,
936 vop_getxattr_vp_offsets,
937 VDESC_NO_OFFSET,
938 VDESC_NO_OFFSET,
939 VDESC_NO_OFFSET,
940 VDESC_NO_OFFSET,
941 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
942 NULL
943 };
944
945 int vop_setxattr_vp_offsets[] = {
946 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_vp),
947 VDESC_NO_OFFSET
948 };
949 struct vnodeop_desc vnop_setxattr_desc = {
950 0,
951 "vnop_setxattr",
952 0,
953 vop_setxattr_vp_offsets,
954 VDESC_NO_OFFSET,
955 VDESC_NO_OFFSET,
956 VDESC_NO_OFFSET,
957 VDESC_NO_OFFSET,
958 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context),
959 NULL
960 };
961
962 int vop_removexattr_vp_offsets[] = {
963 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_vp),
964 VDESC_NO_OFFSET
965 };
966 struct vnodeop_desc vnop_removexattr_desc = {
967 0,
968 "vnop_removexattr",
969 0,
970 vop_removexattr_vp_offsets,
971 VDESC_NO_OFFSET,
972 VDESC_NO_OFFSET,
973 VDESC_NO_OFFSET,
974 VDESC_NO_OFFSET,
975 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
976 NULL
977 };
978
979 int vop_listxattr_vp_offsets[] = {
980 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_vp),
981 VDESC_NO_OFFSET
982 };
983 struct vnodeop_desc vnop_listxattr_desc = {
984 0,
985 "vnop_listxattr",
986 0,
987 vop_listxattr_vp_offsets,
988 VDESC_NO_OFFSET,
989 VDESC_NO_OFFSET,
990 VDESC_NO_OFFSET,
991 VDESC_NO_OFFSET,
992 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
993 NULL
994 };
995
996 int vnop_blktooff_vp_offsets[] = {
997 VOPARG_OFFSETOF(struct vnop_blktooff_args, a_vp),
998 VDESC_NO_OFFSET
999 };
1000 struct vnodeop_desc vnop_blktooff_desc = {
1001 0,
1002 "vnop_blktooff",
1003 0,
1004 vnop_blktooff_vp_offsets,
1005 VDESC_NO_OFFSET,
1006 VDESC_NO_OFFSET,
1007 VDESC_NO_OFFSET,
1008 VDESC_NO_OFFSET,
1009 VDESC_NO_OFFSET,
1010 NULL
1011 };
1012
1013 int vnop_offtoblk_vp_offsets[] = {
1014 VOPARG_OFFSETOF(struct vnop_offtoblk_args, a_vp),
1015 VDESC_NO_OFFSET
1016 };
1017 struct vnodeop_desc vnop_offtoblk_desc = {
1018 0,
1019 "vnop_offtoblk",
1020 0,
1021 vnop_offtoblk_vp_offsets,
1022 VDESC_NO_OFFSET,
1023 VDESC_NO_OFFSET,
1024 VDESC_NO_OFFSET,
1025 VDESC_NO_OFFSET,
1026 VDESC_NO_OFFSET,
1027 NULL
1028 };
1029
1030 int vnop_blockmap_vp_offsets[] = {
1031 VOPARG_OFFSETOF(struct vnop_blockmap_args, a_vp),
1032 VDESC_NO_OFFSET
1033 };
1034 struct vnodeop_desc vnop_blockmap_desc = {
1035 0,
1036 "vnop_blockmap",
1037 0,
1038 vnop_blockmap_vp_offsets,
1039 VDESC_NO_OFFSET,
1040 VDESC_NO_OFFSET,
1041 VDESC_NO_OFFSET,
1042 VDESC_NO_OFFSET,
1043 VDESC_NO_OFFSET,
1044 NULL
1045 };
1046
1047 #if NAMEDSTREAMS
1048 int vnop_getnamedstream_vp_offsets[] = {
1049 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp),
1050 VDESC_NO_OFFSET
1051 };
1052 struct vnodeop_desc vnop_getnamedstream_desc = {
1053 0,
1054 "vnop_getnamedstream",
1055 0,
1056 vnop_getnamedstream_vp_offsets,
1057 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp),
1058 VDESC_NO_OFFSET,
1059 VDESC_NO_OFFSET,
1060 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name),
1061 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context),
1062 NULL
1063 };
1064
1065 int vnop_makenamedstream_vp_offsets[] = {
1066 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp),
1067 VDESC_NO_OFFSET
1068 };
1069 struct vnodeop_desc vnop_makenamedstream_desc = {
1070 0,
1071 "vnop_makenamedstream",
1072 0, /* flags */
1073 vnop_makenamedstream_vp_offsets,
1074 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp),
1075 VDESC_NO_OFFSET,
1076 VDESC_NO_OFFSET,
1077 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name),
1078 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context),
1079 NULL
1080 };
1081
1082 int vnop_removenamedstream_vp_offsets[] = {
1083 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp),
1084 VDESC_NO_OFFSET
1085 };
1086 struct vnodeop_desc vnop_removenamedstream_desc = {
1087 0,
1088 "vnop_removenamedstream",
1089 0,
1090 vnop_removenamedstream_vp_offsets,
1091 VDESC_NO_OFFSET,
1092 VDESC_NO_OFFSET,
1093 VDESC_NO_OFFSET,
1094 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name),
1095 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context),
1096 NULL
1097 };
1098 #else
1099 int vnop_getnamedstream_vp_offsets[] = {
1100 VDESC_NO_OFFSET
1101 };
1102 struct vnodeop_desc vnop_getnamedstream_desc = {
1103 0,
1104 "vnop_getnamedstream",
1105 VDESC_DISABLED, /* flags */
1106 vnop_getnamedstream_vp_offsets,
1107 VDESC_NO_OFFSET,
1108 VDESC_NO_OFFSET,
1109 VDESC_NO_OFFSET,
1110 VDESC_NO_OFFSET,
1111 VDESC_NO_OFFSET,
1112 NULL
1113 };
1114
1115 int vnop_makenamedstream_vp_offsets[] = {
1116 VDESC_NO_OFFSET
1117 };
1118 struct vnodeop_desc vnop_makenamedstream_desc = {
1119 0,
1120 "vnop_makenamedstream",
1121 VDESC_DISABLED, /* flags */
1122 vnop_makenamedstream_vp_offsets,
1123 VDESC_NO_OFFSET,
1124 VDESC_NO_OFFSET,
1125 VDESC_NO_OFFSET,
1126 VDESC_NO_OFFSET,
1127 VDESC_NO_OFFSET,
1128 NULL
1129 };
1130
1131 int vnop_removenamedstream_vp_offsets[] = {
1132 VDESC_NO_OFFSET
1133 };
1134 struct vnodeop_desc vnop_removenamedstream_desc = {
1135 0,
1136 "vnop_removenamedstream",
1137 VDESC_DISABLED, /* flags */
1138 vnop_removenamedstream_vp_offsets,
1139 VDESC_NO_OFFSET,
1140 VDESC_NO_OFFSET,
1141 VDESC_NO_OFFSET,
1142 VDESC_NO_OFFSET,
1143 VDESC_NO_OFFSET,
1144 NULL
1145 };
1146 #endif
1147
1148 /* Special cases: */
1149
1150 int vnop_strategy_vp_offsets[] = {
1151 VDESC_NO_OFFSET
1152 };
1153 struct vnodeop_desc vnop_strategy_desc = {
1154 0,
1155 "vnop_strategy",
1156 0,
1157 vnop_strategy_vp_offsets,
1158 VDESC_NO_OFFSET,
1159 VDESC_NO_OFFSET,
1160 VDESC_NO_OFFSET,
1161 VDESC_NO_OFFSET,
1162 VDESC_NO_OFFSET,
1163 NULL
1164 };
1165
1166 int vnop_bwrite_vp_offsets[] = {
1167 VDESC_NO_OFFSET
1168 };
1169 struct vnodeop_desc vnop_bwrite_desc = {
1170 0,
1171 "vnop_bwrite",
1172 0,
1173 vnop_bwrite_vp_offsets,
1174 VDESC_NO_OFFSET,
1175 VDESC_NO_OFFSET,
1176 VDESC_NO_OFFSET,
1177 VDESC_NO_OFFSET,
1178 VDESC_NO_OFFSET,
1179 NULL
1180 };
1181
1182 /* End of special cases. */
1183
1184 struct vnodeop_desc *vfs_op_descs[] = {
1185 &vnop_default_desc, /* MUST BE FIRST */
1186 &vnop_strategy_desc, /* XXX: SPECIAL CASE */
1187 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
1188
1189 &vnop_lookup_desc,
1190 &vnop_create_desc,
1191 &vnop_mknod_desc,
1192 &vnop_whiteout_desc,
1193 &vnop_open_desc,
1194 &vnop_compound_open_desc,
1195 &vnop_close_desc,
1196 &vnop_access_desc,
1197 &vnop_getattr_desc,
1198 &vnop_setattr_desc,
1199 &vnop_read_desc,
1200 &vnop_write_desc,
1201 &vnop_ioctl_desc,
1202 &vnop_select_desc,
1203 &vnop_exchange_desc,
1204 &vnop_kqfilt_add_desc,
1205 &vnop_kqfilt_remove_desc,
1206 &vnop_setlabel_desc,
1207 &vnop_revoke_desc,
1208 &vnop_mmap_desc,
1209 &vnop_mnomap_desc,
1210 &vnop_fsync_desc,
1211 &vnop_remove_desc,
1212 &vnop_compound_remove_desc,
1213 &vnop_link_desc,
1214 &vnop_rename_desc,
1215 &vnop_renamex_desc,
1216 &vnop_compound_rename_desc,
1217 &vnop_mkdir_desc,
1218 &vnop_compound_mkdir_desc,
1219 &vnop_rmdir_desc,
1220 &vnop_compound_rmdir_desc,
1221 &vnop_symlink_desc,
1222 &vnop_readdir_desc,
1223 &vnop_readdirattr_desc,
1224 &vnop_getattrlistbulk_desc,
1225 &vnop_readlink_desc,
1226 &vnop_inactive_desc,
1227 &vnop_reclaim_desc,
1228 &vnop_pathconf_desc,
1229 &vnop_advlock_desc,
1230 &vnop_allocate_desc,
1231 &vnop_pagein_desc,
1232 &vnop_pageout_desc,
1233 &vnop_searchfs_desc,
1234 &vnop_copyfile_desc,
1235 &vnop_clonefile_desc,
1236 &vnop_getxattr_desc,
1237 &vnop_setxattr_desc,
1238 &vnop_removexattr_desc,
1239 &vnop_listxattr_desc,
1240 &vnop_blktooff_desc,
1241 &vnop_offtoblk_desc,
1242 &vnop_blockmap_desc,
1243 &vnop_monitor_desc,
1244 #if !defined(NAMEDSTREAMS)
1245 /*
1246 * We define the named streams ops descriptors as we _always_ have to
1247 * have symbols with their names, and as such we really really need
1248 * those symbols to be valid operations descriptors. However if
1249 * named streams support is not enabled, we flag these descriptors
1250 * as ignored.
1251 */
1252 #endif
1253 &vnop_getnamedstream_desc,
1254 &vnop_makenamedstream_desc,
1255 &vnop_removenamedstream_desc,
1256 NULL
1257 };