]> git.saurik.com Git - apple/xnu.git/blame_incremental - bsd/vfs/vnode_if.c
xnu-2782.1.97.tar.gz
[apple/xnu.git] / bsd / vfs / vnode_if.c
... / ...
CommitLineData
1
2/*
3 * Copyright (c) 2000-2014 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
78struct 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
92int vnop_lookup_vp_offsets[] = {
93 VOPARG_OFFSETOF(struct vnop_lookup_args,a_dvp),
94 VDESC_NO_OFFSET
95};
96struct 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
109int vnop_compound_open_vp_offsets[] = {
110 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_dvp),
111 VDESC_NO_OFFSET
112};
113
114struct 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
127int vnop_create_vp_offsets[] = {
128 VOPARG_OFFSETOF(struct vnop_create_args,a_dvp),
129 VDESC_NO_OFFSET
130};
131struct 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
144int vnop_whiteout_vp_offsets[] = {
145 VOPARG_OFFSETOF(struct vnop_whiteout_args,a_dvp),
146 VDESC_NO_OFFSET
147};
148struct 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
161int vnop_mknod_vp_offsets[] = {
162 VOPARG_OFFSETOF(struct vnop_mknod_args,a_dvp),
163 VDESC_NO_OFFSET
164};
165struct 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
178int vnop_open_vp_offsets[] = {
179 VOPARG_OFFSETOF(struct vnop_open_args,a_vp),
180 VDESC_NO_OFFSET
181};
182struct 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
195int vnop_close_vp_offsets[] = {
196 VOPARG_OFFSETOF(struct vnop_close_args,a_vp),
197 VDESC_NO_OFFSET
198};
199struct 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
212int vnop_access_vp_offsets[] = {
213 VOPARG_OFFSETOF(struct vnop_access_args,a_vp),
214 VDESC_NO_OFFSET
215};
216struct 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
229int vnop_getattr_vp_offsets[] = {
230 VOPARG_OFFSETOF(struct vnop_getattr_args,a_vp),
231 VDESC_NO_OFFSET
232};
233struct 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
246int vnop_setattr_vp_offsets[] = {
247 VOPARG_OFFSETOF(struct vnop_setattr_args,a_vp),
248 VDESC_NO_OFFSET
249};
250struct 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
263int vnop_read_vp_offsets[] = {
264 VOPARG_OFFSETOF(struct vnop_read_args,a_vp),
265 VDESC_NO_OFFSET
266};
267struct 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
280int vnop_write_vp_offsets[] = {
281 VOPARG_OFFSETOF(struct vnop_write_args,a_vp),
282 VDESC_NO_OFFSET
283};
284struct 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
297int vnop_ioctl_vp_offsets[] = {
298 VOPARG_OFFSETOF(struct vnop_ioctl_args,a_vp),
299 VDESC_NO_OFFSET
300};
301struct 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
314int vnop_select_vp_offsets[] = {
315 VOPARG_OFFSETOF(struct vnop_select_args,a_vp),
316 VDESC_NO_OFFSET
317};
318struct 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
331int 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};
336struct 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
349int vnop_kqfilt_add_vp_offsets[] = {
350 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args,a_vp),
351 VDESC_NO_OFFSET
352};
353struct 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
366int vnop_kqfilt_remove_vp_offsets[] = {
367 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args,a_vp),
368 VDESC_NO_OFFSET
369};
370struct 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
383int vnop_monitor_vp_offsets[] = {
384 VOPARG_OFFSETOF(struct vnop_monitor_args,a_vp),
385 VDESC_NO_OFFSET
386};
387struct 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
400int vnop_setlabel_vp_offsets[] = {
401 VOPARG_OFFSETOF(struct vnop_setlabel_args,a_vp),
402 VDESC_NO_OFFSET
403};
404struct 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
417int vnop_revoke_vp_offsets[] = {
418 VOPARG_OFFSETOF(struct vnop_revoke_args,a_vp),
419 VDESC_NO_OFFSET
420};
421struct 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
435int vnop_mmap_vp_offsets[] = {
436 VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp),
437 VDESC_NO_OFFSET
438};
439struct 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
453int vnop_mnomap_vp_offsets[] = {
454 VOPARG_OFFSETOF(struct vnop_mnomap_args,a_vp),
455 VDESC_NO_OFFSET
456};
457struct 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
471int vnop_fsync_vp_offsets[] = {
472 VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp),
473 VDESC_NO_OFFSET
474};
475struct 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
488int 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};
493struct 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
506int vnop_remove_extended_vp_offsets[] = {
507 VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp),
508 VDESC_NO_OFFSET
509};
510struct 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
523int 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};
528struct 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
541int 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};
548struct 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
561int vnop_compound_rename_vp_offsets[] = {
562 VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_fdvp),
563 VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_fvpp),
564 VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_tdvp),
565 VOPARG_OFFSETOF(struct vnop_compound_rename_args,a_tvpp),
566 VDESC_NO_OFFSET
567};
568struct vnodeop_desc vnop_compound_rename_desc = {
569 0,
570 "vnop_compound_rename",
571 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
572 vnop_compound_rename_vp_offsets,
573 VDESC_NO_OFFSET,
574 VDESC_NO_OFFSET,
575 VDESC_NO_OFFSET,
576 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fcnp),
577 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_context),
578 NULL
579};
580
581int vnop_mkdir_vp_offsets[] = {
582 VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp),
583 VDESC_NO_OFFSET
584};
585struct vnodeop_desc vnop_mkdir_desc = {
586 0,
587 "vnop_mkdir",
588 0 | VDESC_VP0_WILLRELE,
589 vnop_mkdir_vp_offsets,
590 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
591 VDESC_NO_OFFSET,
592 VDESC_NO_OFFSET,
593 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
594 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
595 NULL
596};
597
598int vnop_compound_mkdir_vp_offsets[] = {
599 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args,a_dvp),
600 VDESC_NO_OFFSET
601};
602struct vnodeop_desc vnop_compound_mkdir_desc = {
603 0,
604 "vnop_compound_mkdir",
605 0 | VDESC_VP0_WILLRELE,
606 vnop_compound_mkdir_vp_offsets,
607 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_vpp),
608 VDESC_NO_OFFSET,
609 VDESC_NO_OFFSET,
610 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_cnp),
611 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_context),
612 NULL
613};
614
615
616int vnop_rmdir_vp_offsets[] = {
617 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp),
618 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp),
619 VDESC_NO_OFFSET
620};
621struct vnodeop_desc vnop_rmdir_desc = {
622 0,
623 "vnop_rmdir",
624 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
625 vnop_rmdir_vp_offsets,
626 VDESC_NO_OFFSET,
627 VDESC_NO_OFFSET,
628 VDESC_NO_OFFSET,
629 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
630 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
631 NULL
632};
633
634int vnop_compound_rmdir_vp_offsets[] = {
635 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args,a_dvp),
636 VDESC_NO_OFFSET
637};
638struct vnodeop_desc vnop_compound_rmdir_desc = {
639 0,
640 "vnop_compound_rmdir",
641 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
642 vnop_rmdir_vp_offsets,
643 VDESC_NO_OFFSET,
644 VDESC_NO_OFFSET,
645 VDESC_NO_OFFSET,
646 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_cnp),
647 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_context),
648 NULL
649};
650
651int vnop_symlink_vp_offsets[] = {
652 VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp),
653 VDESC_NO_OFFSET
654};
655struct vnodeop_desc vnop_symlink_desc = {
656 0,
657 "vnop_symlink",
658 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
659 vnop_symlink_vp_offsets,
660 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
661 VDESC_NO_OFFSET,
662 VDESC_NO_OFFSET,
663 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
664 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
665 NULL
666};
667
668int vnop_readdir_vp_offsets[] = {
669 VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp),
670 VDESC_NO_OFFSET
671};
672struct vnodeop_desc vnop_readdir_desc = {
673 0,
674 "vnop_readdir",
675 0,
676 vnop_readdir_vp_offsets,
677 VDESC_NO_OFFSET,
678 VDESC_NO_OFFSET,
679 VDESC_NO_OFFSET,
680 VDESC_NO_OFFSET,
681 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
682 NULL
683};
684
685int vnop_readdirattr_vp_offsets[] = {
686 VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp),
687 VDESC_NO_OFFSET
688};
689struct vnodeop_desc vnop_readdirattr_desc = {
690 0,
691 "vnop_readdirattr",
692 0,
693 vnop_readdirattr_vp_offsets,
694 VDESC_NO_OFFSET,
695 VDESC_NO_OFFSET,
696 VDESC_NO_OFFSET,
697 VDESC_NO_OFFSET,
698 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context),
699 NULL
700};
701
702int vnop_getattrlistbulk_vp_offsets[] = {
703 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args,a_vp),
704 VDESC_NO_OFFSET
705};
706struct vnodeop_desc vnop_getattrlistbulk_desc = {
707 0,
708 "vnop_getattrlistbulk",
709 0,
710 vnop_getattrlistbulk_vp_offsets,
711 VDESC_NO_OFFSET,
712 VDESC_NO_OFFSET,
713 VDESC_NO_OFFSET,
714 VDESC_NO_OFFSET,
715 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_context),
716 NULL
717};
718
719int vnop_readlink_vp_offsets[] = {
720 VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp),
721 VDESC_NO_OFFSET
722};
723struct vnodeop_desc vnop_readlink_desc = {
724 0,
725 "vnop_readlink",
726 0,
727 vnop_readlink_vp_offsets,
728 VDESC_NO_OFFSET,
729 VDESC_NO_OFFSET,
730 VDESC_NO_OFFSET,
731 VDESC_NO_OFFSET,
732 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context),
733 NULL
734};
735
736int vnop_inactive_vp_offsets[] = {
737 VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp),
738 VDESC_NO_OFFSET
739};
740struct vnodeop_desc vnop_inactive_desc = {
741 0,
742 "vnop_inactive",
743 0,
744 vnop_inactive_vp_offsets,
745 VDESC_NO_OFFSET,
746 VDESC_NO_OFFSET,
747 VDESC_NO_OFFSET,
748 VDESC_NO_OFFSET,
749 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context),
750 NULL
751};
752
753int vnop_reclaim_vp_offsets[] = {
754 VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp),
755 VDESC_NO_OFFSET
756};
757struct vnodeop_desc vnop_reclaim_desc = {
758 0,
759 "vnop_reclaim",
760 0,
761 vnop_reclaim_vp_offsets,
762 VDESC_NO_OFFSET,
763 VDESC_NO_OFFSET,
764 VDESC_NO_OFFSET,
765 VDESC_NO_OFFSET,
766 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
767 NULL
768};
769
770int vnop_pathconf_vp_offsets[] = {
771 VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp),
772 VDESC_NO_OFFSET
773};
774struct vnodeop_desc vnop_pathconf_desc = {
775 0,
776 "vnop_pathconf",
777 0,
778 vnop_pathconf_vp_offsets,
779 VDESC_NO_OFFSET,
780 VDESC_NO_OFFSET,
781 VDESC_NO_OFFSET,
782 VDESC_NO_OFFSET,
783 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
784 NULL
785};
786
787int vnop_advlock_vp_offsets[] = {
788 VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp),
789 VDESC_NO_OFFSET
790};
791struct vnodeop_desc vnop_advlock_desc = {
792 0,
793 "vnop_advlock",
794 0,
795 vnop_advlock_vp_offsets,
796 VDESC_NO_OFFSET,
797 VDESC_NO_OFFSET,
798 VDESC_NO_OFFSET,
799 VDESC_NO_OFFSET,
800 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context),
801 NULL
802};
803
804int vnop_allocate_vp_offsets[] = {
805 VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp),
806 VDESC_NO_OFFSET
807};
808struct vnodeop_desc vnop_allocate_desc = {
809 0,
810 "vnop_allocate",
811 0,
812 vnop_allocate_vp_offsets,
813 VDESC_NO_OFFSET,
814 VDESC_NO_OFFSET,
815 VDESC_NO_OFFSET,
816 VDESC_NO_OFFSET,
817 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
818 NULL
819};
820
821int vnop_pagein_vp_offsets[] = {
822 VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp),
823 VDESC_NO_OFFSET
824};
825struct vnodeop_desc vnop_pagein_desc = {
826 0,
827 "vnop_pagein",
828 0,
829 vnop_pagein_vp_offsets,
830 VDESC_NO_OFFSET,
831 VDESC_NO_OFFSET,
832 VDESC_NO_OFFSET,
833 VDESC_NO_OFFSET,
834 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
835 NULL
836};
837
838int vnop_pageout_vp_offsets[] = {
839 VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp),
840 VDESC_NO_OFFSET
841};
842struct vnodeop_desc vnop_pageout_desc = {
843 0,
844 "vnop_pageout",
845 0,
846 vnop_pageout_vp_offsets,
847 VDESC_NO_OFFSET,
848 VDESC_NO_OFFSET,
849 VDESC_NO_OFFSET,
850 VDESC_NO_OFFSET,
851 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
852 NULL
853};
854
855int vnop_searchfs_vp_offsets[] = {
856 VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp),
857 VDESC_NO_OFFSET
858};
859struct vnodeop_desc vnop_searchfs_desc = {
860 0,
861 "vnop_searchfs",
862 0,
863 vnop_searchfs_vp_offsets,
864 VDESC_NO_OFFSET,
865 VDESC_NO_OFFSET,
866 VDESC_NO_OFFSET,
867 VDESC_NO_OFFSET,
868 VDESC_NO_OFFSET,
869 NULL
870};
871
872int vnop_copyfile_vp_offsets[] = {
873 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp),
874 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp),
875 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp),
876 VDESC_NO_OFFSET
877};
878struct vnodeop_desc vnop_copyfile_desc = {
879 0,
880 "vnop_copyfile",
881 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
882 vnop_copyfile_vp_offsets,
883 VDESC_NO_OFFSET,
884 VDESC_NO_OFFSET,
885 VDESC_NO_OFFSET,
886 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
887 VDESC_NO_OFFSET,
888 NULL
889};
890
891int vop_getxattr_vp_offsets[] = {
892 VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp),
893 VDESC_NO_OFFSET
894};
895struct vnodeop_desc vnop_getxattr_desc = {
896 0,
897 "vnop_getxattr",
898 0,
899 vop_getxattr_vp_offsets,
900 VDESC_NO_OFFSET,
901 VDESC_NO_OFFSET,
902 VDESC_NO_OFFSET,
903 VDESC_NO_OFFSET,
904 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
905 NULL
906};
907
908int vop_setxattr_vp_offsets[] = {
909 VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp),
910 VDESC_NO_OFFSET
911};
912struct vnodeop_desc vnop_setxattr_desc = {
913 0,
914 "vnop_setxattr",
915 0,
916 vop_setxattr_vp_offsets,
917 VDESC_NO_OFFSET,
918 VDESC_NO_OFFSET,
919 VDESC_NO_OFFSET,
920 VDESC_NO_OFFSET,
921 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context),
922 NULL
923};
924
925int vop_removexattr_vp_offsets[] = {
926 VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp),
927 VDESC_NO_OFFSET
928};
929struct vnodeop_desc vnop_removexattr_desc = {
930 0,
931 "vnop_removexattr",
932 0,
933 vop_removexattr_vp_offsets,
934 VDESC_NO_OFFSET,
935 VDESC_NO_OFFSET,
936 VDESC_NO_OFFSET,
937 VDESC_NO_OFFSET,
938 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
939 NULL
940};
941
942int vop_listxattr_vp_offsets[] = {
943 VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp),
944 VDESC_NO_OFFSET
945};
946struct vnodeop_desc vnop_listxattr_desc = {
947 0,
948 "vnop_listxattr",
949 0,
950 vop_listxattr_vp_offsets,
951 VDESC_NO_OFFSET,
952 VDESC_NO_OFFSET,
953 VDESC_NO_OFFSET,
954 VDESC_NO_OFFSET,
955 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
956 NULL
957};
958
959int vnop_blktooff_vp_offsets[] = {
960 VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp),
961 VDESC_NO_OFFSET
962};
963struct vnodeop_desc vnop_blktooff_desc = {
964 0,
965 "vnop_blktooff",
966 0,
967 vnop_blktooff_vp_offsets,
968 VDESC_NO_OFFSET,
969 VDESC_NO_OFFSET,
970 VDESC_NO_OFFSET,
971 VDESC_NO_OFFSET,
972 VDESC_NO_OFFSET,
973 NULL
974};
975
976int vnop_offtoblk_vp_offsets[] = {
977 VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp),
978 VDESC_NO_OFFSET
979};
980struct vnodeop_desc vnop_offtoblk_desc = {
981 0,
982 "vnop_offtoblk",
983 0,
984 vnop_offtoblk_vp_offsets,
985 VDESC_NO_OFFSET,
986 VDESC_NO_OFFSET,
987 VDESC_NO_OFFSET,
988 VDESC_NO_OFFSET,
989 VDESC_NO_OFFSET,
990 NULL
991};
992
993int vnop_blockmap_vp_offsets[] = {
994 VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp),
995 VDESC_NO_OFFSET
996};
997struct vnodeop_desc vnop_blockmap_desc = {
998 0,
999 "vnop_blockmap",
1000 0,
1001 vnop_blockmap_vp_offsets,
1002 VDESC_NO_OFFSET,
1003 VDESC_NO_OFFSET,
1004 VDESC_NO_OFFSET,
1005 VDESC_NO_OFFSET,
1006 VDESC_NO_OFFSET,
1007 NULL
1008};
1009
1010#if NAMEDSTREAMS
1011int vnop_getnamedstream_vp_offsets[] = {
1012 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp),
1013 VDESC_NO_OFFSET
1014};
1015struct vnodeop_desc vnop_getnamedstream_desc = {
1016 0,
1017 "vnop_getnamedstream",
1018 0,
1019 vnop_getnamedstream_vp_offsets,
1020 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp),
1021 VDESC_NO_OFFSET,
1022 VDESC_NO_OFFSET,
1023 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name),
1024 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context),
1025 NULL
1026};
1027
1028int vnop_makenamedstream_vp_offsets[] = {
1029 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp),
1030 VDESC_NO_OFFSET
1031};
1032struct vnodeop_desc vnop_makenamedstream_desc = {
1033 0,
1034 "vnop_makenamedstream",
1035 0, /* flags */
1036 vnop_makenamedstream_vp_offsets,
1037 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp),
1038 VDESC_NO_OFFSET,
1039 VDESC_NO_OFFSET,
1040 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name),
1041 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context),
1042 NULL
1043};
1044
1045int vnop_removenamedstream_vp_offsets[] = {
1046 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp),
1047 VDESC_NO_OFFSET
1048};
1049struct vnodeop_desc vnop_removenamedstream_desc = {
1050 0,
1051 "vnop_removenamedstream",
1052 0,
1053 vnop_removenamedstream_vp_offsets,
1054 VDESC_NO_OFFSET,
1055 VDESC_NO_OFFSET,
1056 VDESC_NO_OFFSET,
1057 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name),
1058 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context),
1059 NULL
1060};
1061#else
1062/* These symbols are in the exports list so they need to always be defined. */
1063int vnop_getnamedstream_desc;
1064int vnop_makenamedstream_desc;
1065int vnop_removenamedstream_desc;
1066#endif
1067
1068/* Special cases: */
1069
1070int vnop_strategy_vp_offsets[] = {
1071 VDESC_NO_OFFSET
1072};
1073struct vnodeop_desc vnop_strategy_desc = {
1074 0,
1075 "vnop_strategy",
1076 0,
1077 vnop_strategy_vp_offsets,
1078 VDESC_NO_OFFSET,
1079 VDESC_NO_OFFSET,
1080 VDESC_NO_OFFSET,
1081 VDESC_NO_OFFSET,
1082 VDESC_NO_OFFSET,
1083 NULL
1084};
1085
1086int vnop_bwrite_vp_offsets[] = {
1087 VDESC_NO_OFFSET
1088};
1089struct vnodeop_desc vnop_bwrite_desc = {
1090 0,
1091 "vnop_bwrite",
1092 0,
1093 vnop_bwrite_vp_offsets,
1094 VDESC_NO_OFFSET,
1095 VDESC_NO_OFFSET,
1096 VDESC_NO_OFFSET,
1097 VDESC_NO_OFFSET,
1098 VDESC_NO_OFFSET,
1099 NULL
1100};
1101
1102/* End of special cases. */
1103
1104struct vnodeop_desc *vfs_op_descs[] = {
1105 &vnop_default_desc, /* MUST BE FIRST */
1106 &vnop_strategy_desc, /* XXX: SPECIAL CASE */
1107 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
1108
1109 &vnop_lookup_desc,
1110 &vnop_create_desc,
1111 &vnop_mknod_desc,
1112 &vnop_whiteout_desc,
1113 &vnop_open_desc,
1114 &vnop_compound_open_desc,
1115 &vnop_close_desc,
1116 &vnop_access_desc,
1117 &vnop_getattr_desc,
1118 &vnop_setattr_desc,
1119 &vnop_read_desc,
1120 &vnop_write_desc,
1121 &vnop_ioctl_desc,
1122 &vnop_select_desc,
1123 &vnop_exchange_desc,
1124 &vnop_kqfilt_add_desc,
1125 &vnop_kqfilt_remove_desc,
1126 &vnop_setlabel_desc,
1127 &vnop_revoke_desc,
1128 &vnop_mmap_desc,
1129 &vnop_mnomap_desc,
1130 &vnop_fsync_desc,
1131 &vnop_remove_desc,
1132 &vnop_compound_remove_desc,
1133 &vnop_link_desc,
1134 &vnop_rename_desc,
1135 &vnop_compound_rename_desc,
1136 &vnop_mkdir_desc,
1137 &vnop_compound_mkdir_desc,
1138 &vnop_rmdir_desc,
1139 &vnop_compound_rmdir_desc,
1140 &vnop_symlink_desc,
1141 &vnop_readdir_desc,
1142 &vnop_readdirattr_desc,
1143 &vnop_getattrlistbulk_desc,
1144 &vnop_readlink_desc,
1145 &vnop_inactive_desc,
1146 &vnop_reclaim_desc,
1147 &vnop_pathconf_desc,
1148 &vnop_advlock_desc,
1149 &vnop_allocate_desc,
1150 &vnop_pagein_desc,
1151 &vnop_pageout_desc,
1152 &vnop_searchfs_desc,
1153 &vnop_copyfile_desc,
1154 &vnop_getxattr_desc,
1155 &vnop_setxattr_desc,
1156 &vnop_removexattr_desc,
1157 &vnop_listxattr_desc,
1158 &vnop_blktooff_desc,
1159 &vnop_offtoblk_desc,
1160 &vnop_blockmap_desc,
1161 &vnop_monitor_desc,
1162#if NAMEDSTREAMS
1163 &vnop_getnamedstream_desc,
1164 &vnop_makenamedstream_desc,
1165 &vnop_removenamedstream_desc,
1166#endif
1167 NULL
1168};
1169