]> git.saurik.com Git - apple/xnu.git/blame_incremental - bsd/vfs/vnode_if.c
xnu-792.18.15.tar.gz
[apple/xnu.git] / bsd / vfs / vnode_if.c
... / ...
CommitLineData
1
2/*
3 * Copyright (c) 2000-2002 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 NULL,
88};
89
90
91int vnop_lookup_vp_offsets[] = {
92 VOPARG_OFFSETOF(struct vnop_lookup_args,a_dvp),
93 VDESC_NO_OFFSET
94};
95struct 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
108int vnop_create_vp_offsets[] = {
109 VOPARG_OFFSETOF(struct vnop_create_args,a_dvp),
110 VDESC_NO_OFFSET
111};
112struct vnodeop_desc vnop_create_desc = {
113 0,
114 "vnop_create",
115 0 | VDESC_VP0_WILLRELE,
116 vnop_create_vp_offsets,
117 VOPARG_OFFSETOF(struct vnop_create_args, a_vpp),
118 VDESC_NO_OFFSET,
119 VDESC_NO_OFFSET,
120 VOPARG_OFFSETOF(struct vnop_create_args, a_cnp),
121 VOPARG_OFFSETOF(struct vnop_create_args, a_context),
122 NULL,
123};
124
125int vnop_whiteout_vp_offsets[] = {
126 VOPARG_OFFSETOF(struct vnop_whiteout_args,a_dvp),
127 VDESC_NO_OFFSET
128};
129struct vnodeop_desc vnop_whiteout_desc = {
130 0,
131 "vnop_whiteout",
132 0 | VDESC_VP0_WILLRELE,
133 vnop_whiteout_vp_offsets,
134 VDESC_NO_OFFSET,
135 VDESC_NO_OFFSET,
136 VDESC_NO_OFFSET,
137 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp),
138 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context),
139 NULL,
140};
141
142int vnop_mknod_vp_offsets[] = {
143 VOPARG_OFFSETOF(struct vnop_mknod_args,a_dvp),
144 VDESC_NO_OFFSET
145};
146struct vnodeop_desc vnop_mknod_desc = {
147 0,
148 "vnop_mknod",
149 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
150 vnop_mknod_vp_offsets,
151 VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp),
152 VDESC_NO_OFFSET,
153 VDESC_NO_OFFSET,
154 VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp),
155 VOPARG_OFFSETOF(struct vnop_mknod_args, a_context),
156 NULL,
157};
158
159int vnop_open_vp_offsets[] = {
160 VOPARG_OFFSETOF(struct vnop_open_args,a_vp),
161 VDESC_NO_OFFSET
162};
163struct vnodeop_desc vnop_open_desc = {
164 0,
165 "vnop_open",
166 0,
167 vnop_open_vp_offsets,
168 VDESC_NO_OFFSET,
169 VDESC_NO_OFFSET,
170 VDESC_NO_OFFSET,
171 VDESC_NO_OFFSET,
172 VOPARG_OFFSETOF(struct vnop_open_args, a_context),
173 NULL,
174};
175
176int vnop_close_vp_offsets[] = {
177 VOPARG_OFFSETOF(struct vnop_close_args,a_vp),
178 VDESC_NO_OFFSET
179};
180struct vnodeop_desc vnop_close_desc = {
181 0,
182 "vnop_close",
183 0,
184 vnop_close_vp_offsets,
185 VDESC_NO_OFFSET,
186 VDESC_NO_OFFSET,
187 VDESC_NO_OFFSET,
188 VDESC_NO_OFFSET,
189 VOPARG_OFFSETOF(struct vnop_close_args, a_context),
190 NULL,
191};
192
193int vnop_access_vp_offsets[] = {
194 VOPARG_OFFSETOF(struct vnop_access_args,a_vp),
195 VDESC_NO_OFFSET
196};
197struct vnodeop_desc vnop_access_desc = {
198 0,
199 "vnop_access",
200 0,
201 vnop_access_vp_offsets,
202 VDESC_NO_OFFSET,
203 VDESC_NO_OFFSET,
204 VDESC_NO_OFFSET,
205 VDESC_NO_OFFSET,
206 VOPARG_OFFSETOF(struct vnop_close_args, a_context),
207 NULL,
208};
209
210int vnop_getattr_vp_offsets[] = {
211 VOPARG_OFFSETOF(struct vnop_getattr_args,a_vp),
212 VDESC_NO_OFFSET
213};
214struct vnodeop_desc vnop_getattr_desc = {
215 0,
216 "vnop_getattr",
217 0,
218 vnop_getattr_vp_offsets,
219 VDESC_NO_OFFSET,
220 VDESC_NO_OFFSET,
221 VDESC_NO_OFFSET,
222 VDESC_NO_OFFSET,
223 VOPARG_OFFSETOF(struct vnop_getattr_args, a_context),
224 NULL,
225};
226
227int vnop_setattr_vp_offsets[] = {
228 VOPARG_OFFSETOF(struct vnop_setattr_args,a_vp),
229 VDESC_NO_OFFSET
230};
231struct vnodeop_desc vnop_setattr_desc = {
232 0,
233 "vnop_setattr",
234 0,
235 vnop_setattr_vp_offsets,
236 VDESC_NO_OFFSET,
237 VDESC_NO_OFFSET,
238 VDESC_NO_OFFSET,
239 VDESC_NO_OFFSET,
240 VOPARG_OFFSETOF(struct vnop_setattr_args, a_context),
241 NULL,
242};
243
244int vnop_getattrlist_vp_offsets[] = {
245 VOPARG_OFFSETOF(struct vnop_getattrlist_args,a_vp),
246 VDESC_NO_OFFSET
247};
248struct vnodeop_desc vnop_getattrlist_desc = {
249 0,
250 "vnop_getattrlist",
251 0,
252 vnop_getattrlist_vp_offsets,
253 VDESC_NO_OFFSET,
254 VDESC_NO_OFFSET,
255 VDESC_NO_OFFSET,
256 VDESC_NO_OFFSET,
257 VOPARG_OFFSETOF(struct vnop_getattrlist_args, a_context),
258 NULL,
259};
260
261int vnop_setattrlist_vp_offsets[] = {
262 VOPARG_OFFSETOF(struct vnop_setattrlist_args,a_vp),
263 VDESC_NO_OFFSET
264};
265struct vnodeop_desc vnop_setattrlist_desc = {
266 0,
267 "vnop_setattrlist",
268 0,
269 vnop_setattrlist_vp_offsets,
270 VDESC_NO_OFFSET,
271 VDESC_NO_OFFSET,
272 VDESC_NO_OFFSET,
273 VDESC_NO_OFFSET,
274 VOPARG_OFFSETOF(struct vnop_setattrlist_args, a_context),
275 NULL,
276};
277
278int vnop_read_vp_offsets[] = {
279 VOPARG_OFFSETOF(struct vnop_read_args,a_vp),
280 VDESC_NO_OFFSET
281};
282struct vnodeop_desc vnop_read_desc = {
283 0,
284 "vnop_read",
285 0,
286 vnop_read_vp_offsets,
287 VDESC_NO_OFFSET,
288 VDESC_NO_OFFSET,
289 VDESC_NO_OFFSET,
290 VDESC_NO_OFFSET,
291 VOPARG_OFFSETOF(struct vnop_read_args, a_context),
292 NULL,
293};
294
295int vnop_write_vp_offsets[] = {
296 VOPARG_OFFSETOF(struct vnop_write_args,a_vp),
297 VDESC_NO_OFFSET
298};
299struct vnodeop_desc vnop_write_desc = {
300 0,
301 "vnop_write",
302 0,
303 vnop_write_vp_offsets,
304 VDESC_NO_OFFSET,
305 VDESC_NO_OFFSET,
306 VDESC_NO_OFFSET,
307 VDESC_NO_OFFSET,
308 VOPARG_OFFSETOF(struct vnop_write_args, a_context),
309 NULL,
310};
311
312int vnop_ioctl_vp_offsets[] = {
313 VOPARG_OFFSETOF(struct vnop_ioctl_args,a_vp),
314 VDESC_NO_OFFSET
315};
316struct vnodeop_desc vnop_ioctl_desc = {
317 0,
318 "vnop_ioctl",
319 0,
320 vnop_ioctl_vp_offsets,
321 VDESC_NO_OFFSET,
322 VDESC_NO_OFFSET,
323 VDESC_NO_OFFSET,
324 VDESC_NO_OFFSET,
325 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context),
326 NULL,
327};
328
329int vnop_select_vp_offsets[] = {
330 VOPARG_OFFSETOF(struct vnop_select_args,a_vp),
331 VDESC_NO_OFFSET
332};
333struct vnodeop_desc vnop_select_desc = {
334 0,
335 "vnop_select",
336 0,
337 vnop_select_vp_offsets,
338 VDESC_NO_OFFSET,
339 VDESC_NO_OFFSET,
340 VDESC_NO_OFFSET,
341 VDESC_NO_OFFSET,
342 VOPARG_OFFSETOF(struct vnop_select_args, a_context),
343 VDESC_NO_OFFSET,
344 NULL,
345};
346
347int vnop_exchange_vp_offsets[] = {
348 VOPARG_OFFSETOF(struct vnop_exchange_args,a_fvp),
349 VOPARG_OFFSETOF(struct vnop_exchange_args,a_tvp),
350 VDESC_NO_OFFSET
351};
352struct vnodeop_desc vnop_exchange_desc = {
353 0,
354 "vnop_exchange",
355 0,
356 vnop_exchange_vp_offsets,
357 VDESC_NO_OFFSET,
358 VDESC_NO_OFFSET,
359 VDESC_NO_OFFSET,
360 VDESC_NO_OFFSET,
361 VOPARG_OFFSETOF(struct vnop_exchange_args, a_context),
362 NULL,
363};
364
365int vnop_kqfilt_add_vp_offsets[] = {
366 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args,a_vp),
367 VDESC_NO_OFFSET
368};
369struct vnodeop_desc vnop_kqfilt_add_desc = {
370 0,
371 "vnop_kqfilt_add",
372 0,
373 vnop_kqfilt_add_vp_offsets,
374 VDESC_NO_OFFSET,
375 VDESC_NO_OFFSET,
376 VDESC_NO_OFFSET,
377 VDESC_NO_OFFSET,
378 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context),
379 NULL,
380};
381
382int vnop_kqfilt_remove_vp_offsets[] = {
383 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args,a_vp),
384 VDESC_NO_OFFSET
385};
386struct vnodeop_desc vnop_kqfilt_remove_desc = {
387 0,
388 "vnop_kqfilt_remove",
389 0,
390 vnop_kqfilt_remove_vp_offsets,
391 VDESC_NO_OFFSET,
392 VDESC_NO_OFFSET,
393 VDESC_NO_OFFSET,
394 VDESC_NO_OFFSET,
395 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context),
396 NULL,
397};
398
399int vnop_revoke_vp_offsets[] = {
400 VOPARG_OFFSETOF(struct vnop_revoke_args,a_vp),
401 VDESC_NO_OFFSET
402};
403struct vnodeop_desc vnop_revoke_desc = {
404 0,
405 "vnop_revoke",
406 0,
407 vnop_revoke_vp_offsets,
408 VDESC_NO_OFFSET,
409 VDESC_NO_OFFSET,
410 VDESC_NO_OFFSET,
411 VDESC_NO_OFFSET,
412 NULL,
413};
414
415
416int vnop_mmap_vp_offsets[] = {
417 VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp),
418 VDESC_NO_OFFSET
419};
420struct vnodeop_desc vnop_mmap_desc = {
421 0,
422 "vnop_mmap",
423 0,
424 vnop_mmap_vp_offsets,
425 VDESC_NO_OFFSET,
426 VDESC_NO_OFFSET,
427 VDESC_NO_OFFSET,
428 VDESC_NO_OFFSET,
429 NULL,
430};
431
432
433int vnop_mnomap_vp_offsets[] = {
434 VOPARG_OFFSETOF(struct vnop_mnomap_args,a_vp),
435 VDESC_NO_OFFSET
436};
437struct vnodeop_desc vnop_mnomap_desc = {
438 0,
439 "vnop_mnomap",
440 0,
441 vnop_mnomap_vp_offsets,
442 VDESC_NO_OFFSET,
443 VDESC_NO_OFFSET,
444 VDESC_NO_OFFSET,
445 VDESC_NO_OFFSET,
446 NULL,
447};
448
449
450int vnop_fsync_vp_offsets[] = {
451 VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp),
452 VDESC_NO_OFFSET
453};
454struct vnodeop_desc vnop_fsync_desc = {
455 0,
456 "vnop_fsync",
457 0,
458 vnop_fsync_vp_offsets,
459 VDESC_NO_OFFSET,
460 VDESC_NO_OFFSET,
461 VDESC_NO_OFFSET,
462 VDESC_NO_OFFSET,
463 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context),
464 NULL,
465};
466
467int vnop_remove_vp_offsets[] = {
468 VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp),
469 VOPARG_OFFSETOF(struct vnop_remove_args,a_vp),
470 VDESC_NO_OFFSET
471};
472struct vnodeop_desc vnop_remove_desc = {
473 0,
474 "vnop_remove",
475 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
476 vnop_remove_vp_offsets,
477 VDESC_NO_OFFSET,
478 VDESC_NO_OFFSET,
479 VDESC_NO_OFFSET,
480 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
481 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
482 NULL,
483};
484
485int vnop_link_vp_offsets[] = {
486 VOPARG_OFFSETOF(struct vnop_link_args,a_vp),
487 VOPARG_OFFSETOF(struct vnop_link_args,a_tdvp),
488 VDESC_NO_OFFSET
489};
490struct vnodeop_desc vnop_link_desc = {
491 0,
492 "vnop_link",
493 0 | VDESC_VP1_WILLRELE,
494 vnop_link_vp_offsets,
495 VDESC_NO_OFFSET,
496 VDESC_NO_OFFSET,
497 VDESC_NO_OFFSET,
498 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp),
499 VOPARG_OFFSETOF(struct vnop_link_args, a_context),
500 NULL,
501};
502
503int vnop_rename_vp_offsets[] = {
504 VOPARG_OFFSETOF(struct vnop_rename_args,a_fdvp),
505 VOPARG_OFFSETOF(struct vnop_rename_args,a_fvp),
506 VOPARG_OFFSETOF(struct vnop_rename_args,a_tdvp),
507 VOPARG_OFFSETOF(struct vnop_rename_args,a_tvp),
508 VDESC_NO_OFFSET
509};
510struct vnodeop_desc vnop_rename_desc = {
511 0,
512 "vnop_rename",
513 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
514 vnop_rename_vp_offsets,
515 VDESC_NO_OFFSET,
516 VDESC_NO_OFFSET,
517 VDESC_NO_OFFSET,
518 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp),
519 VOPARG_OFFSETOF(struct vnop_rename_args, a_context),
520 NULL,
521};
522
523int vnop_mkdir_vp_offsets[] = {
524 VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp),
525 VDESC_NO_OFFSET
526};
527struct vnodeop_desc vnop_mkdir_desc = {
528 0,
529 "vnop_mkdir",
530 0 | VDESC_VP0_WILLRELE,
531 vnop_mkdir_vp_offsets,
532 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
533 VDESC_NO_OFFSET,
534 VDESC_NO_OFFSET,
535 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
536 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
537 NULL,
538};
539
540int vnop_rmdir_vp_offsets[] = {
541 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp),
542 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp),
543 VDESC_NO_OFFSET
544};
545struct vnodeop_desc vnop_rmdir_desc = {
546 0,
547 "vnop_rmdir",
548 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
549 vnop_rmdir_vp_offsets,
550 VDESC_NO_OFFSET,
551 VDESC_NO_OFFSET,
552 VDESC_NO_OFFSET,
553 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
554 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
555 NULL,
556};
557
558int vnop_symlink_vp_offsets[] = {
559 VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp),
560 VDESC_NO_OFFSET
561};
562struct vnodeop_desc vnop_symlink_desc = {
563 0,
564 "vnop_symlink",
565 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
566 vnop_symlink_vp_offsets,
567 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
568 VDESC_NO_OFFSET,
569 VDESC_NO_OFFSET,
570 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
571 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
572 NULL,
573};
574
575int vnop_readdir_vp_offsets[] = {
576 VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp),
577 VDESC_NO_OFFSET
578};
579struct vnodeop_desc vnop_readdir_desc = {
580 0,
581 "vnop_readdir",
582 0,
583 vnop_readdir_vp_offsets,
584 VDESC_NO_OFFSET,
585 VDESC_NO_OFFSET,
586 VDESC_NO_OFFSET,
587 VDESC_NO_OFFSET,
588 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
589 NULL,
590};
591
592int vnop_readdirattr_vp_offsets[] = {
593 VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp),
594 VDESC_NO_OFFSET
595};
596struct vnodeop_desc vnop_readdirattr_desc = {
597 0,
598 "vnop_readdirattr",
599 0,
600 vnop_readdirattr_vp_offsets,
601 VDESC_NO_OFFSET,
602 VDESC_NO_OFFSET,
603 VDESC_NO_OFFSET,
604 VDESC_NO_OFFSET,
605 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context),
606 NULL,
607};
608
609int vnop_readlink_vp_offsets[] = {
610 VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp),
611 VDESC_NO_OFFSET
612};
613struct vnodeop_desc vnop_readlink_desc = {
614 0,
615 "vnop_readlink",
616 0,
617 vnop_readlink_vp_offsets,
618 VDESC_NO_OFFSET,
619 VDESC_NO_OFFSET,
620 VDESC_NO_OFFSET,
621 VDESC_NO_OFFSET,
622 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context),
623 NULL,
624};
625
626int vnop_inactive_vp_offsets[] = {
627 VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp),
628 VDESC_NO_OFFSET
629};
630struct vnodeop_desc vnop_inactive_desc = {
631 0,
632 "vnop_inactive",
633 0,
634 vnop_inactive_vp_offsets,
635 VDESC_NO_OFFSET,
636 VDESC_NO_OFFSET,
637 VDESC_NO_OFFSET,
638 VDESC_NO_OFFSET,
639 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context),
640 NULL,
641};
642
643int vnop_reclaim_vp_offsets[] = {
644 VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp),
645 VDESC_NO_OFFSET
646};
647struct vnodeop_desc vnop_reclaim_desc = {
648 0,
649 "vnop_reclaim",
650 0,
651 vnop_reclaim_vp_offsets,
652 VDESC_NO_OFFSET,
653 VDESC_NO_OFFSET,
654 VDESC_NO_OFFSET,
655 VDESC_NO_OFFSET,
656 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
657 NULL,
658};
659
660int vnop_pathconf_vp_offsets[] = {
661 VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp),
662 VDESC_NO_OFFSET
663};
664struct vnodeop_desc vnop_pathconf_desc = {
665 0,
666 "vnop_pathconf",
667 0,
668 vnop_pathconf_vp_offsets,
669 VDESC_NO_OFFSET,
670 VDESC_NO_OFFSET,
671 VDESC_NO_OFFSET,
672 VDESC_NO_OFFSET,
673 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
674 NULL,
675};
676
677int vnop_advlock_vp_offsets[] = {
678 VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp),
679 VDESC_NO_OFFSET
680};
681struct vnodeop_desc vnop_advlock_desc = {
682 0,
683 "vnop_advlock",
684 0,
685 vnop_advlock_vp_offsets,
686 VDESC_NO_OFFSET,
687 VDESC_NO_OFFSET,
688 VDESC_NO_OFFSET,
689 VDESC_NO_OFFSET,
690 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context),
691 NULL,
692};
693
694int vnop_allocate_vp_offsets[] = {
695 VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp),
696 VDESC_NO_OFFSET
697};
698struct vnodeop_desc vnop_allocate_desc = {
699 0,
700 "vnop_allocate",
701 0,
702 vnop_allocate_vp_offsets,
703 VDESC_NO_OFFSET,
704 VDESC_NO_OFFSET,
705 VDESC_NO_OFFSET,
706 VDESC_NO_OFFSET,
707 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
708 NULL,
709};
710
711int vnop_pagein_vp_offsets[] = {
712 VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp),
713 VDESC_NO_OFFSET
714};
715struct vnodeop_desc vnop_pagein_desc = {
716 0,
717 "vnop_pagein",
718 0,
719 vnop_pagein_vp_offsets,
720 VDESC_NO_OFFSET,
721 VDESC_NO_OFFSET,
722 VDESC_NO_OFFSET,
723 VDESC_NO_OFFSET,
724 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
725 NULL,
726};
727
728int vnop_pageout_vp_offsets[] = {
729 VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp),
730 VDESC_NO_OFFSET
731};
732struct vnodeop_desc vnop_pageout_desc = {
733 0,
734 "vnop_pageout",
735 0,
736 vnop_pageout_vp_offsets,
737 VDESC_NO_OFFSET,
738 VDESC_NO_OFFSET,
739 VDESC_NO_OFFSET,
740 VDESC_NO_OFFSET,
741 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
742 NULL,
743};
744
745int vnop_searchfs_vp_offsets[] = {
746 VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp),
747 VDESC_NO_OFFSET
748};
749struct vnodeop_desc vnop_searchfs_desc = {
750 0,
751 "vnop_searchfs",
752 0,
753 vnop_searchfs_vp_offsets,
754 VDESC_NO_OFFSET,
755 VDESC_NO_OFFSET,
756 VDESC_NO_OFFSET,
757 VDESC_NO_OFFSET,
758 NULL,
759};
760
761int vnop_copyfile_vp_offsets[] = {
762 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp),
763 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp),
764 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp),
765 VDESC_NO_OFFSET
766};
767struct vnodeop_desc vnop_copyfile_desc = {
768 0,
769 "vnop_copyfile",
770 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
771 vnop_copyfile_vp_offsets,
772 VDESC_NO_OFFSET,
773 VDESC_NO_OFFSET,
774 VDESC_NO_OFFSET,
775 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
776 NULL,
777};
778
779int vop_getxattr_vp_offsets[] = {
780 VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp),
781 VDESC_NO_OFFSET
782};
783struct vnodeop_desc vnop_getxattr_desc = {
784 0,
785 "vnop_getxattr",
786 0,
787 vop_getxattr_vp_offsets,
788 VDESC_NO_OFFSET,
789 VDESC_NO_OFFSET,
790 VDESC_NO_OFFSET,
791 VDESC_NO_OFFSET,
792 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
793 NULL,
794};
795
796int vop_setxattr_vp_offsets[] = {
797 VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp),
798 VDESC_NO_OFFSET
799};
800struct vnodeop_desc vnop_setxattr_desc = {
801 0,
802 "vnop_setxattr",
803 0,
804 vop_setxattr_vp_offsets,
805 VDESC_NO_OFFSET,
806 VDESC_NO_OFFSET,
807 VDESC_NO_OFFSET,
808 VDESC_NO_OFFSET,
809 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context),
810 NULL,
811};
812
813int vop_removexattr_vp_offsets[] = {
814 VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp),
815 VDESC_NO_OFFSET
816};
817struct vnodeop_desc vnop_removexattr_desc = {
818 0,
819 "vnop_removexattr",
820 0,
821 vop_removexattr_vp_offsets,
822 VDESC_NO_OFFSET,
823 VDESC_NO_OFFSET,
824 VDESC_NO_OFFSET,
825 VDESC_NO_OFFSET,
826 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
827 NULL,
828};
829
830int vop_listxattr_vp_offsets[] = {
831 VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp),
832 VDESC_NO_OFFSET
833};
834struct vnodeop_desc vnop_listxattr_desc = {
835 0,
836 "vnop_listxattr",
837 0,
838 vop_listxattr_vp_offsets,
839 VDESC_NO_OFFSET,
840 VDESC_NO_OFFSET,
841 VDESC_NO_OFFSET,
842 VDESC_NO_OFFSET,
843 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
844 NULL,
845};
846
847int vnop_blktooff_vp_offsets[] = {
848 VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp),
849 VDESC_NO_OFFSET
850};
851struct vnodeop_desc vnop_blktooff_desc = {
852 0,
853 "vnop_blktooff",
854 0,
855 vnop_blktooff_vp_offsets,
856 VDESC_NO_OFFSET,
857 VDESC_NO_OFFSET,
858 VDESC_NO_OFFSET,
859 VDESC_NO_OFFSET,
860 NULL,
861};
862
863int vnop_offtoblk_vp_offsets[] = {
864 VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp),
865 VDESC_NO_OFFSET
866};
867struct vnodeop_desc vnop_offtoblk_desc = {
868 0,
869 "vnop_offtoblk",
870 0,
871 vnop_offtoblk_vp_offsets,
872 VDESC_NO_OFFSET,
873 VDESC_NO_OFFSET,
874 VDESC_NO_OFFSET,
875 VDESC_NO_OFFSET,
876 NULL,
877};
878
879int vnop_blockmap_vp_offsets[] = {
880 VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp),
881 VDESC_NO_OFFSET
882};
883struct vnodeop_desc vnop_blockmap_desc = {
884 0,
885 "vnop_blockmap",
886 0,
887 vnop_blockmap_vp_offsets,
888 VDESC_NO_OFFSET,
889 VDESC_NO_OFFSET,
890 VDESC_NO_OFFSET,
891 VDESC_NO_OFFSET,
892 NULL,
893};
894
895/* Special cases: */
896
897int vnop_strategy_vp_offsets[] = {
898 VDESC_NO_OFFSET
899};
900struct vnodeop_desc vnop_strategy_desc = {
901 0,
902 "vnop_strategy",
903 0,
904 vnop_strategy_vp_offsets,
905 VDESC_NO_OFFSET,
906 VDESC_NO_OFFSET,
907 VDESC_NO_OFFSET,
908 VDESC_NO_OFFSET,
909 NULL,
910};
911
912int vnop_bwrite_vp_offsets[] = {
913 VDESC_NO_OFFSET
914};
915struct vnodeop_desc vnop_bwrite_desc = {
916 0,
917 "vnop_bwrite",
918 0,
919 vnop_bwrite_vp_offsets,
920 VDESC_NO_OFFSET,
921 VDESC_NO_OFFSET,
922 VDESC_NO_OFFSET,
923 VDESC_NO_OFFSET,
924 NULL,
925};
926
927/* End of special cases. */
928
929struct vnodeop_desc *vfs_op_descs[] = {
930 &vnop_default_desc, /* MUST BE FIRST */
931 &vnop_strategy_desc, /* XXX: SPECIAL CASE */
932 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
933
934 &vnop_lookup_desc,
935 &vnop_create_desc,
936 &vnop_mknod_desc,
937 &vnop_whiteout_desc,
938 &vnop_open_desc,
939 &vnop_close_desc,
940 &vnop_access_desc,
941 &vnop_getattr_desc,
942 &vnop_setattr_desc,
943 &vnop_getattrlist_desc,
944 &vnop_setattrlist_desc,
945 &vnop_read_desc,
946 &vnop_write_desc,
947 &vnop_ioctl_desc,
948 &vnop_select_desc,
949 &vnop_exchange_desc,
950 &vnop_kqfilt_add_desc,
951 &vnop_kqfilt_remove_desc,
952 &vnop_revoke_desc,
953 &vnop_mmap_desc,
954 &vnop_mnomap_desc,
955 &vnop_fsync_desc,
956 &vnop_remove_desc,
957 &vnop_link_desc,
958 &vnop_rename_desc,
959 &vnop_mkdir_desc,
960 &vnop_rmdir_desc,
961 &vnop_symlink_desc,
962 &vnop_readdir_desc,
963 &vnop_readdirattr_desc,
964 &vnop_readlink_desc,
965 &vnop_inactive_desc,
966 &vnop_reclaim_desc,
967 &vnop_pathconf_desc,
968 &vnop_advlock_desc,
969 &vnop_allocate_desc,
970 &vnop_pagein_desc,
971 &vnop_pageout_desc,
972 &vnop_searchfs_desc,
973 &vnop_copyfile_desc,
974 &vnop_getxattr_desc,
975 &vnop_setxattr_desc,
976 &vnop_removexattr_desc,
977 &vnop_listxattr_desc,
978 &vnop_blktooff_desc,
979 &vnop_offtoblk_desc,
980 &vnop_blockmap_desc,
981 NULL
982};
983