]> git.saurik.com Git - apple/xnu.git/blame - bsd/vfs/vnode_if.c
xnu-344.21.73.tar.gz
[apple/xnu.git] / bsd / vfs / vnode_if.c
CommitLineData
1c79356b
A
1
2/*
9bccf70c 3 * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
1c79356b
A
4 *
5 * @APPLE_LICENSE_HEADER_START@
6 *
d7e50217 7 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
1c79356b 8 *
d7e50217
A
9 * This file contains Original Code and/or Modifications of Original Code
10 * as defined in and that are subject to the Apple Public Source License
11 * Version 2.0 (the 'License'). You may not use this file except in
12 * compliance with the License. Please obtain a copy of the License at
13 * http://www.opensource.apple.com/apsl/ and read it before using this
14 * file.
15 *
16 * The Original Code and all software distributed under the License are
17 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
1c79356b
A
18 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
19 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
d7e50217
A
20 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
21 * Please see the License for the specific language governing rights and
22 * limitations under the License.
1c79356b
A
23 *
24 * @APPLE_LICENSE_HEADER_END@
25 */
26/*
27 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
28 * Copyright (c) 1992, 1993, 1994, 1995
29 * The Regents of the University of California. All rights reserved.
30 *
31 * Redistribution and use in source and binary forms, with or without
32 * modification, are permitted provided that the following conditions
33 * are met:
34 * 1. Redistributions of source code must retain the above copyright
35 * notice, this list of conditions and the following disclaimer.
36 * 2. Redistributions in binary form must reproduce the above copyright
37 * notice, this list of conditions and the following disclaimer in the
38 * documentation and/or other materials provided with the distribution.
39 * 3. All advertising materials mentioning features or use of this software
40 * must display the following acknowledgement:
41 * This product includes software developed by the University of
42 * California, Berkeley and its contributors.
43 * 4. Neither the name of the University nor the names of its contributors
44 * may be used to endorse or promote products derived from this software
45 * without specific prior written permission.
46 *
47 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND
48 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
49 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
50 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
51 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
52 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
53 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
54 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
55 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
56 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
57 * SUCH DAMAGE.
58 */
59
60
61/*
62 * Warning: This file is generated automatically.
63 * (Modifications made here may easily be lost!)
64 *
65 * Created by the script:
66 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
67 */
68
69
70#include <sys/param.h>
71#include <sys/mount.h>
72#include <sys/vm.h>
73#include <sys/vnode.h>
74
75struct vnodeop_desc vop_default_desc = {
76 0,
77 "default",
78 0,
79 NULL,
80 VDESC_NO_OFFSET,
81 VDESC_NO_OFFSET,
82 VDESC_NO_OFFSET,
83 VDESC_NO_OFFSET,
84 NULL,
85};
86
87
88int vop_lookup_vp_offsets[] = {
89 VOPARG_OFFSETOF(struct vop_lookup_args,a_dvp),
90 VDESC_NO_OFFSET
91};
92struct vnodeop_desc vop_lookup_desc = {
93 0,
94 "vop_lookup",
95 0,
96 vop_lookup_vp_offsets,
97 VOPARG_OFFSETOF(struct vop_lookup_args, a_vpp),
98 VDESC_NO_OFFSET,
99 VDESC_NO_OFFSET,
100 VOPARG_OFFSETOF(struct vop_lookup_args, a_cnp),
101 NULL,
102};
103
104int vop_cachedlookup_vp_offsets[] = {
105 VOPARG_OFFSETOF(struct vop_cachedlookup_args,a_dvp),
106 VDESC_NO_OFFSET
107};
108struct vnodeop_desc vop_cachedlookup_desc = {
109 0,
110 "vop_cachedlookup",
111 0,
112 vop_cachedlookup_vp_offsets,
113 VOPARG_OFFSETOF(struct vop_cachedlookup_args, a_vpp),
114 VDESC_NO_OFFSET,
115 VDESC_NO_OFFSET,
116 VOPARG_OFFSETOF(struct vop_cachedlookup_args, a_cnp),
117 NULL,
118};
119
120int vop_create_vp_offsets[] = {
121 VOPARG_OFFSETOF(struct vop_create_args,a_dvp),
122 VDESC_NO_OFFSET
123};
124struct vnodeop_desc vop_create_desc = {
125 0,
126 "vop_create",
127 0 | VDESC_VP0_WILLRELE,
128 vop_create_vp_offsets,
129 VOPARG_OFFSETOF(struct vop_create_args, a_vpp),
130 VDESC_NO_OFFSET,
131 VDESC_NO_OFFSET,
132 VOPARG_OFFSETOF(struct vop_create_args, a_cnp),
133 NULL,
134};
135
136int vop_whiteout_vp_offsets[] = {
137 VOPARG_OFFSETOF(struct vop_whiteout_args,a_dvp),
138 VDESC_NO_OFFSET
139};
140struct vnodeop_desc vop_whiteout_desc = {
141 0,
142 "vop_whiteout",
143 0 | VDESC_VP0_WILLRELE,
144 vop_whiteout_vp_offsets,
145 VDESC_NO_OFFSET,
146 VDESC_NO_OFFSET,
147 VDESC_NO_OFFSET,
148 VOPARG_OFFSETOF(struct vop_whiteout_args, a_cnp),
149 NULL,
150};
151
152int vop_mknod_vp_offsets[] = {
153 VOPARG_OFFSETOF(struct vop_mknod_args,a_dvp),
154 VDESC_NO_OFFSET
155};
156struct vnodeop_desc vop_mknod_desc = {
157 0,
158 "vop_mknod",
159 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
160 vop_mknod_vp_offsets,
161 VOPARG_OFFSETOF(struct vop_mknod_args, a_vpp),
162 VDESC_NO_OFFSET,
163 VDESC_NO_OFFSET,
164 VOPARG_OFFSETOF(struct vop_mknod_args, a_cnp),
165 NULL,
166};
167
168int vop_mkcomplex_vp_offsets[] = {
169 VOPARG_OFFSETOF(struct vop_mkcomplex_args,a_dvp),
170 VDESC_NO_OFFSET
171};
172struct vnodeop_desc vop_mkcomplex_desc = {
173 0,
174 "vop_mkcomplex",
175 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
176 vop_mkcomplex_vp_offsets,
177 VOPARG_OFFSETOF(struct vop_mkcomplex_args, a_vpp),
178 VDESC_NO_OFFSET,
179 VDESC_NO_OFFSET,
180 VOPARG_OFFSETOF(struct vop_mkcomplex_args, a_cnp),
181 NULL,
182};
183
184int vop_open_vp_offsets[] = {
185 VOPARG_OFFSETOF(struct vop_open_args,a_vp),
186 VDESC_NO_OFFSET
187};
188struct vnodeop_desc vop_open_desc = {
189 0,
190 "vop_open",
191 0,
192 vop_open_vp_offsets,
193 VDESC_NO_OFFSET,
194 VOPARG_OFFSETOF(struct vop_open_args, a_cred),
195 VOPARG_OFFSETOF(struct vop_open_args, a_p),
196 VDESC_NO_OFFSET,
197 NULL,
198};
199
200int vop_close_vp_offsets[] = {
201 VOPARG_OFFSETOF(struct vop_close_args,a_vp),
202 VDESC_NO_OFFSET
203};
204struct vnodeop_desc vop_close_desc = {
205 0,
206 "vop_close",
207 0,
208 vop_close_vp_offsets,
209 VDESC_NO_OFFSET,
210 VOPARG_OFFSETOF(struct vop_close_args, a_cred),
211 VOPARG_OFFSETOF(struct vop_close_args, a_p),
212 VDESC_NO_OFFSET,
213 NULL,
214};
215
216int vop_access_vp_offsets[] = {
217 VOPARG_OFFSETOF(struct vop_access_args,a_vp),
218 VDESC_NO_OFFSET
219};
220struct vnodeop_desc vop_access_desc = {
221 0,
222 "vop_access",
223 0,
224 vop_access_vp_offsets,
225 VDESC_NO_OFFSET,
226 VOPARG_OFFSETOF(struct vop_access_args, a_cred),
227 VOPARG_OFFSETOF(struct vop_access_args, a_p),
228 VDESC_NO_OFFSET,
229 NULL,
230};
231
232int vop_getattr_vp_offsets[] = {
233 VOPARG_OFFSETOF(struct vop_getattr_args,a_vp),
234 VDESC_NO_OFFSET
235};
236struct vnodeop_desc vop_getattr_desc = {
237 0,
238 "vop_getattr",
239 0,
240 vop_getattr_vp_offsets,
241 VDESC_NO_OFFSET,
242 VOPARG_OFFSETOF(struct vop_getattr_args, a_cred),
243 VOPARG_OFFSETOF(struct vop_getattr_args, a_p),
244 VDESC_NO_OFFSET,
245 NULL,
246};
247
248int vop_setattr_vp_offsets[] = {
249 VOPARG_OFFSETOF(struct vop_setattr_args,a_vp),
250 VDESC_NO_OFFSET
251};
252struct vnodeop_desc vop_setattr_desc = {
253 0,
254 "vop_setattr",
255 0,
256 vop_setattr_vp_offsets,
257 VDESC_NO_OFFSET,
258 VOPARG_OFFSETOF(struct vop_setattr_args, a_cred),
259 VOPARG_OFFSETOF(struct vop_setattr_args, a_p),
260 VDESC_NO_OFFSET,
261 NULL,
262};
263
264int vop_getattrlist_vp_offsets[] = {
265 VOPARG_OFFSETOF(struct vop_getattrlist_args,a_vp),
266 VDESC_NO_OFFSET
267};
268struct vnodeop_desc vop_getattrlist_desc = {
269 0,
270 "vop_getattrlist",
271 0,
272 vop_getattrlist_vp_offsets,
273 VDESC_NO_OFFSET,
274 VOPARG_OFFSETOF(struct vop_getattrlist_args, a_cred),
275 VOPARG_OFFSETOF(struct vop_getattrlist_args, a_p),
276 VDESC_NO_OFFSET,
277 NULL,
278};
279
280int vop_setattrlist_vp_offsets[] = {
281 VOPARG_OFFSETOF(struct vop_setattrlist_args,a_vp),
282 VDESC_NO_OFFSET
283};
284struct vnodeop_desc vop_setattrlist_desc = {
285 0,
286 "vop_setattrlist",
287 0,
288 vop_setattrlist_vp_offsets,
289 VDESC_NO_OFFSET,
290 VOPARG_OFFSETOF(struct vop_setattrlist_args, a_cred),
291 VOPARG_OFFSETOF(struct vop_setattrlist_args, a_p),
292 VDESC_NO_OFFSET,
293 NULL,
294};
295
296int vop_read_vp_offsets[] = {
297 VOPARG_OFFSETOF(struct vop_read_args,a_vp),
298 VDESC_NO_OFFSET
299};
300struct vnodeop_desc vop_read_desc = {
301 0,
302 "vop_read",
303 0,
304 vop_read_vp_offsets,
305 VDESC_NO_OFFSET,
306 VOPARG_OFFSETOF(struct vop_read_args, a_cred),
307 VDESC_NO_OFFSET,
308 VDESC_NO_OFFSET,
309 NULL,
310};
311
312int vop_write_vp_offsets[] = {
313 VOPARG_OFFSETOF(struct vop_write_args,a_vp),
314 VDESC_NO_OFFSET
315};
316struct vnodeop_desc vop_write_desc = {
317 0,
318 "vop_write",
319 0,
320 vop_write_vp_offsets,
321 VDESC_NO_OFFSET,
322 VOPARG_OFFSETOF(struct vop_write_args, a_cred),
323 VDESC_NO_OFFSET,
324 VDESC_NO_OFFSET,
325 NULL,
326};
327
328int vop_lease_vp_offsets[] = {
329 VOPARG_OFFSETOF(struct vop_lease_args,a_vp),
330 VDESC_NO_OFFSET
331};
332struct vnodeop_desc vop_lease_desc = {
333 0,
334 "vop_lease",
335 0,
336 vop_lease_vp_offsets,
337 VDESC_NO_OFFSET,
338 VOPARG_OFFSETOF(struct vop_lease_args, a_cred),
339 VOPARG_OFFSETOF(struct vop_lease_args, a_p),
340 VDESC_NO_OFFSET,
341 NULL,
342};
343
344int vop_ioctl_vp_offsets[] = {
345 VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp),
346 VDESC_NO_OFFSET
347};
348struct vnodeop_desc vop_ioctl_desc = {
349 0,
350 "vop_ioctl",
351 0,
352 vop_ioctl_vp_offsets,
353 VDESC_NO_OFFSET,
354 VOPARG_OFFSETOF(struct vop_ioctl_args, a_cred),
355 VOPARG_OFFSETOF(struct vop_ioctl_args, a_p),
356 VDESC_NO_OFFSET,
357 NULL,
358};
359
360int vop_select_vp_offsets[] = {
361 VOPARG_OFFSETOF(struct vop_select_args,a_vp),
362 VDESC_NO_OFFSET
363};
364struct vnodeop_desc vop_select_desc = {
365 0,
366 "vop_select",
367 0,
368 vop_select_vp_offsets,
369 VDESC_NO_OFFSET,
370 VOPARG_OFFSETOF(struct vop_select_args, a_cred),
371 VOPARG_OFFSETOF(struct vop_select_args, a_p),
372 VDESC_NO_OFFSET,
373 NULL,
374};
375
376int vop_exchange_vp_offsets[] = {
377 VOPARG_OFFSETOF(struct vop_exchange_args,a_fvp),
378 VOPARG_OFFSETOF(struct vop_exchange_args,a_tvp),
379 VDESC_NO_OFFSET
380};
381struct vnodeop_desc vop_exchange_desc = {
382 0,
383 "vop_exchange",
384 0,
385 vop_exchange_vp_offsets,
386 VDESC_NO_OFFSET,
387 VOPARG_OFFSETOF(struct vop_exchange_args, a_cred),
388 VOPARG_OFFSETOF(struct vop_exchange_args, a_p),
389 VDESC_NO_OFFSET,
390 NULL,
391};
392
393int vop_revoke_vp_offsets[] = {
394 VOPARG_OFFSETOF(struct vop_revoke_args,a_vp),
395 VDESC_NO_OFFSET
396};
397struct vnodeop_desc vop_revoke_desc = {
398 0,
399 "vop_revoke",
400 0,
401 vop_revoke_vp_offsets,
402 VDESC_NO_OFFSET,
403 VDESC_NO_OFFSET,
404 VDESC_NO_OFFSET,
405 VDESC_NO_OFFSET,
406 NULL,
407};
408
409int vop_mmap_vp_offsets[] = {
410 VOPARG_OFFSETOF(struct vop_mmap_args,a_vp),
411 VDESC_NO_OFFSET
412};
413struct vnodeop_desc vop_mmap_desc = {
414 0,
415 "vop_mmap",
416 0,
417 vop_mmap_vp_offsets,
418 VDESC_NO_OFFSET,
419 VOPARG_OFFSETOF(struct vop_mmap_args, a_cred),
420 VOPARG_OFFSETOF(struct vop_mmap_args, a_p),
421 VDESC_NO_OFFSET,
422 NULL,
423};
424
425int vop_fsync_vp_offsets[] = {
426 VOPARG_OFFSETOF(struct vop_fsync_args,a_vp),
427 VDESC_NO_OFFSET
428};
429struct vnodeop_desc vop_fsync_desc = {
430 0,
431 "vop_fsync",
432 0,
433 vop_fsync_vp_offsets,
434 VDESC_NO_OFFSET,
435 VOPARG_OFFSETOF(struct vop_fsync_args, a_cred),
436 VOPARG_OFFSETOF(struct vop_fsync_args, a_p),
437 VDESC_NO_OFFSET,
438 NULL,
439};
440
441int vop_seek_vp_offsets[] = {
442 VOPARG_OFFSETOF(struct vop_seek_args,a_vp),
443 VDESC_NO_OFFSET
444};
445struct vnodeop_desc vop_seek_desc = {
446 0,
447 "vop_seek",
448 0,
449 vop_seek_vp_offsets,
450 VDESC_NO_OFFSET,
451 VOPARG_OFFSETOF(struct vop_seek_args, a_cred),
452 VDESC_NO_OFFSET,
453 VDESC_NO_OFFSET,
454 NULL,
455};
456
457int vop_remove_vp_offsets[] = {
458 VOPARG_OFFSETOF(struct vop_remove_args,a_dvp),
459 VOPARG_OFFSETOF(struct vop_remove_args,a_vp),
460 VDESC_NO_OFFSET
461};
462struct vnodeop_desc vop_remove_desc = {
463 0,
464 "vop_remove",
465 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
466 vop_remove_vp_offsets,
467 VDESC_NO_OFFSET,
468 VDESC_NO_OFFSET,
469 VDESC_NO_OFFSET,
470 VOPARG_OFFSETOF(struct vop_remove_args, a_cnp),
471 NULL,
472};
473
474int vop_link_vp_offsets[] = {
475 VOPARG_OFFSETOF(struct vop_link_args,a_vp),
476 VOPARG_OFFSETOF(struct vop_link_args,a_tdvp),
477 VDESC_NO_OFFSET
478};
479struct vnodeop_desc vop_link_desc = {
480 0,
481 "vop_link",
482 0 | VDESC_VP0_WILLRELE,
483 vop_link_vp_offsets,
484 VDESC_NO_OFFSET,
485 VDESC_NO_OFFSET,
486 VDESC_NO_OFFSET,
487 VOPARG_OFFSETOF(struct vop_link_args, a_cnp),
488 NULL,
489};
490
491int vop_rename_vp_offsets[] = {
492 VOPARG_OFFSETOF(struct vop_rename_args,a_fdvp),
493 VOPARG_OFFSETOF(struct vop_rename_args,a_fvp),
494 VOPARG_OFFSETOF(struct vop_rename_args,a_tdvp),
495 VOPARG_OFFSETOF(struct vop_rename_args,a_tvp),
496 VDESC_NO_OFFSET
497};
498struct vnodeop_desc vop_rename_desc = {
499 0,
500 "vop_rename",
501 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
502 vop_rename_vp_offsets,
503 VDESC_NO_OFFSET,
504 VDESC_NO_OFFSET,
505 VDESC_NO_OFFSET,
506 VOPARG_OFFSETOF(struct vop_rename_args, a_fcnp),
507 NULL,
508};
509
510int vop_mkdir_vp_offsets[] = {
511 VOPARG_OFFSETOF(struct vop_mkdir_args,a_dvp),
512 VDESC_NO_OFFSET
513};
514struct vnodeop_desc vop_mkdir_desc = {
515 0,
516 "vop_mkdir",
517 0 | VDESC_VP0_WILLRELE,
518 vop_mkdir_vp_offsets,
519 VOPARG_OFFSETOF(struct vop_mkdir_args, a_vpp),
520 VDESC_NO_OFFSET,
521 VDESC_NO_OFFSET,
522 VOPARG_OFFSETOF(struct vop_mkdir_args, a_cnp),
523 NULL,
524};
525
526int vop_rmdir_vp_offsets[] = {
527 VOPARG_OFFSETOF(struct vop_rmdir_args,a_dvp),
528 VOPARG_OFFSETOF(struct vop_rmdir_args,a_vp),
529 VDESC_NO_OFFSET
530};
531struct vnodeop_desc vop_rmdir_desc = {
532 0,
533 "vop_rmdir",
534 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
535 vop_rmdir_vp_offsets,
536 VDESC_NO_OFFSET,
537 VDESC_NO_OFFSET,
538 VDESC_NO_OFFSET,
539 VOPARG_OFFSETOF(struct vop_rmdir_args, a_cnp),
540 NULL,
541};
542
543int vop_symlink_vp_offsets[] = {
544 VOPARG_OFFSETOF(struct vop_symlink_args,a_dvp),
545 VDESC_NO_OFFSET
546};
547struct vnodeop_desc vop_symlink_desc = {
548 0,
549 "vop_symlink",
550 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
551 vop_symlink_vp_offsets,
552 VOPARG_OFFSETOF(struct vop_symlink_args, a_vpp),
553 VDESC_NO_OFFSET,
554 VDESC_NO_OFFSET,
555 VOPARG_OFFSETOF(struct vop_symlink_args, a_cnp),
556 NULL,
557};
558
559int vop_readdir_vp_offsets[] = {
560 VOPARG_OFFSETOF(struct vop_readdir_args,a_vp),
561 VDESC_NO_OFFSET
562};
563struct vnodeop_desc vop_readdir_desc = {
564 0,
565 "vop_readdir",
566 0,
567 vop_readdir_vp_offsets,
568 VDESC_NO_OFFSET,
569 VOPARG_OFFSETOF(struct vop_readdir_args, a_cred),
570 VDESC_NO_OFFSET,
571 VDESC_NO_OFFSET,
572 NULL,
573};
574
575int vop_readdirattr_vp_offsets[] = {
576 VOPARG_OFFSETOF(struct vop_readdirattr_args,a_vp),
577 VDESC_NO_OFFSET
578};
579struct vnodeop_desc vop_readdirattr_desc = {
580 0,
581 "vop_readdirattr",
582 0,
583 vop_readdirattr_vp_offsets,
584 VDESC_NO_OFFSET,
585 VOPARG_OFFSETOF(struct vop_readdirattr_args, a_cred),
586 VDESC_NO_OFFSET,
587 VDESC_NO_OFFSET,
588 NULL,
589};
590
591int vop_readlink_vp_offsets[] = {
592 VOPARG_OFFSETOF(struct vop_readlink_args,a_vp),
593 VDESC_NO_OFFSET
594};
595struct vnodeop_desc vop_readlink_desc = {
596 0,
597 "vop_readlink",
598 0,
599 vop_readlink_vp_offsets,
600 VDESC_NO_OFFSET,
601 VOPARG_OFFSETOF(struct vop_readlink_args, a_cred),
602 VDESC_NO_OFFSET,
603 VDESC_NO_OFFSET,
604 NULL,
605};
606
607int vop_abortop_vp_offsets[] = {
608 VOPARG_OFFSETOF(struct vop_abortop_args,a_dvp),
609 VDESC_NO_OFFSET
610};
611struct vnodeop_desc vop_abortop_desc = {
612 0,
613 "vop_abortop",
614 0,
615 vop_abortop_vp_offsets,
616 VDESC_NO_OFFSET,
617 VDESC_NO_OFFSET,
618 VDESC_NO_OFFSET,
619 VOPARG_OFFSETOF(struct vop_abortop_args, a_cnp),
620 NULL,
621};
622
623int vop_inactive_vp_offsets[] = {
624 VOPARG_OFFSETOF(struct vop_inactive_args,a_vp),
625 VDESC_NO_OFFSET
626};
627struct vnodeop_desc vop_inactive_desc = {
628 0,
629 "vop_inactive",
630 0,
631 vop_inactive_vp_offsets,
632 VDESC_NO_OFFSET,
633 VDESC_NO_OFFSET,
634 VOPARG_OFFSETOF(struct vop_inactive_args, a_p),
635 VDESC_NO_OFFSET,
636 NULL,
637};
638
639int vop_reclaim_vp_offsets[] = {
640 VOPARG_OFFSETOF(struct vop_reclaim_args,a_vp),
641 VDESC_NO_OFFSET
642};
643struct vnodeop_desc vop_reclaim_desc = {
644 0,
645 "vop_reclaim",
646 0,
647 vop_reclaim_vp_offsets,
648 VDESC_NO_OFFSET,
649 VDESC_NO_OFFSET,
650 VOPARG_OFFSETOF(struct vop_reclaim_args, a_p),
651 VDESC_NO_OFFSET,
652 NULL,
653};
654
655int vop_lock_vp_offsets[] = {
656 VOPARG_OFFSETOF(struct vop_lock_args,a_vp),
657 VDESC_NO_OFFSET
658};
659struct vnodeop_desc vop_lock_desc = {
660 0,
661 "vop_lock",
662 0,
663 vop_lock_vp_offsets,
664 VDESC_NO_OFFSET,
665 VDESC_NO_OFFSET,
666 VOPARG_OFFSETOF(struct vop_lock_args, a_p),
667 VDESC_NO_OFFSET,
668 NULL,
669};
670
671int vop_unlock_vp_offsets[] = {
672 VOPARG_OFFSETOF(struct vop_unlock_args,a_vp),
673 VDESC_NO_OFFSET
674};
675struct vnodeop_desc vop_unlock_desc = {
676 0,
677 "vop_unlock",
678 0,
679 vop_unlock_vp_offsets,
680 VDESC_NO_OFFSET,
681 VDESC_NO_OFFSET,
682 VOPARG_OFFSETOF(struct vop_unlock_args, a_p),
683 VDESC_NO_OFFSET,
684 NULL,
685};
686
687int vop_bmap_vp_offsets[] = {
688 VOPARG_OFFSETOF(struct vop_bmap_args,a_vp),
689 VDESC_NO_OFFSET
690};
691struct vnodeop_desc vop_bmap_desc = {
692 0,
693 "vop_bmap",
694 0,
695 vop_bmap_vp_offsets,
696 VOPARG_OFFSETOF(struct vop_bmap_args, a_vpp),
697 VDESC_NO_OFFSET,
698 VDESC_NO_OFFSET,
699 VDESC_NO_OFFSET,
700 NULL,
701};
702
703int vop_print_vp_offsets[] = {
704 VOPARG_OFFSETOF(struct vop_print_args,a_vp),
705 VDESC_NO_OFFSET
706};
707struct vnodeop_desc vop_print_desc = {
708 0,
709 "vop_print",
710 0,
711 vop_print_vp_offsets,
712 VDESC_NO_OFFSET,
713 VDESC_NO_OFFSET,
714 VDESC_NO_OFFSET,
715 VDESC_NO_OFFSET,
716 NULL,
717};
718
719int vop_islocked_vp_offsets[] = {
720 VOPARG_OFFSETOF(struct vop_islocked_args,a_vp),
721 VDESC_NO_OFFSET
722};
723struct vnodeop_desc vop_islocked_desc = {
724 0,
725 "vop_islocked",
726 0,
727 vop_islocked_vp_offsets,
728 VDESC_NO_OFFSET,
729 VDESC_NO_OFFSET,
730 VDESC_NO_OFFSET,
731 VDESC_NO_OFFSET,
732 NULL,
733};
734
735int vop_pathconf_vp_offsets[] = {
736 VOPARG_OFFSETOF(struct vop_pathconf_args,a_vp),
737 VDESC_NO_OFFSET
738};
739struct vnodeop_desc vop_pathconf_desc = {
740 0,
741 "vop_pathconf",
742 0,
743 vop_pathconf_vp_offsets,
744 VDESC_NO_OFFSET,
745 VDESC_NO_OFFSET,
746 VDESC_NO_OFFSET,
747 VDESC_NO_OFFSET,
748 NULL,
749};
750
751int vop_advlock_vp_offsets[] = {
752 VOPARG_OFFSETOF(struct vop_advlock_args,a_vp),
753 VDESC_NO_OFFSET
754};
755struct vnodeop_desc vop_advlock_desc = {
756 0,
757 "vop_advlock",
758 0,
759 vop_advlock_vp_offsets,
760 VDESC_NO_OFFSET,
761 VDESC_NO_OFFSET,
762 VDESC_NO_OFFSET,
763 VDESC_NO_OFFSET,
764 NULL,
765};
766
767int vop_blkatoff_vp_offsets[] = {
768 VOPARG_OFFSETOF(struct vop_blkatoff_args,a_vp),
769 VDESC_NO_OFFSET
770};
771struct vnodeop_desc vop_blkatoff_desc = {
772 0,
773 "vop_blkatoff",
774 0,
775 vop_blkatoff_vp_offsets,
776 VDESC_NO_OFFSET,
777 VDESC_NO_OFFSET,
778 VDESC_NO_OFFSET,
779 VDESC_NO_OFFSET,
780 NULL,
781};
782
783int vop_valloc_vp_offsets[] = {
784 VOPARG_OFFSETOF(struct vop_valloc_args,a_pvp),
785 VDESC_NO_OFFSET
786};
787struct vnodeop_desc vop_valloc_desc = {
788 0,
789 "vop_valloc",
790 0,
791 vop_valloc_vp_offsets,
792 VOPARG_OFFSETOF(struct vop_valloc_args, a_vpp),
793 VOPARG_OFFSETOF(struct vop_valloc_args, a_cred),
794 VDESC_NO_OFFSET,
795 VDESC_NO_OFFSET,
796 NULL,
797};
798
799int vop_reallocblks_vp_offsets[] = {
800 VOPARG_OFFSETOF(struct vop_reallocblks_args,a_vp),
801 VDESC_NO_OFFSET
802};
803struct vnodeop_desc vop_reallocblks_desc = {
804 0,
805 "vop_reallocblks",
806 0,
807 vop_reallocblks_vp_offsets,
808 VDESC_NO_OFFSET,
809 VDESC_NO_OFFSET,
810 VDESC_NO_OFFSET,
811 VDESC_NO_OFFSET,
812 NULL,
813};
814
815int vop_vfree_vp_offsets[] = {
816 VOPARG_OFFSETOF(struct vop_vfree_args,a_pvp),
817 VDESC_NO_OFFSET
818};
819struct vnodeop_desc vop_vfree_desc = {
820 0,
821 "vop_vfree",
822 0,
823 vop_vfree_vp_offsets,
824 VDESC_NO_OFFSET,
825 VDESC_NO_OFFSET,
826 VDESC_NO_OFFSET,
827 VDESC_NO_OFFSET,
828 NULL,
829};
830
831int vop_truncate_vp_offsets[] = {
832 VOPARG_OFFSETOF(struct vop_truncate_args,a_vp),
833 VDESC_NO_OFFSET
834};
835struct vnodeop_desc vop_truncate_desc = {
836 0,
837 "vop_truncate",
838 0,
839 vop_truncate_vp_offsets,
840 VDESC_NO_OFFSET,
841 VOPARG_OFFSETOF(struct vop_truncate_args, a_cred),
842 VOPARG_OFFSETOF(struct vop_truncate_args, a_p),
843 VDESC_NO_OFFSET,
844 NULL,
845};
846
847int vop_allocate_vp_offsets[] = {
848 VOPARG_OFFSETOF(struct vop_allocate_args,a_vp),
849 VDESC_NO_OFFSET
850};
851struct vnodeop_desc vop_allocate_desc = {
852 0,
853 "vop_allocate",
854 0,
855 vop_allocate_vp_offsets,
856 VDESC_NO_OFFSET,
857 VOPARG_OFFSETOF(struct vop_allocate_args, a_cred),
858 VOPARG_OFFSETOF(struct vop_allocate_args, a_p),
859 VDESC_NO_OFFSET,
860 NULL,
861};
862
863int vop_update_vp_offsets[] = {
864 VOPARG_OFFSETOF(struct vop_update_args,a_vp),
865 VDESC_NO_OFFSET
866};
867struct vnodeop_desc vop_update_desc = {
868 0,
869 "vop_update",
870 0,
871 vop_update_vp_offsets,
872 VDESC_NO_OFFSET,
873 VDESC_NO_OFFSET,
874 VDESC_NO_OFFSET,
875 VDESC_NO_OFFSET,
876 NULL,
877};
878
879int vop_pgrd_vp_offsets[] = {
880 VOPARG_OFFSETOF(struct vop_pgrd_args,a_vp),
881 VDESC_NO_OFFSET
882};
883struct vnodeop_desc vop_pgrd_desc = {
884 0,
885 "vop_pgrd",
886 0,
887 vop_pgrd_vp_offsets,
888 VDESC_NO_OFFSET,
889 VOPARG_OFFSETOF(struct vop_pgrd_args, a_cred),
890 VDESC_NO_OFFSET,
891 VDESC_NO_OFFSET,
892 NULL,
893};
894
895int vop_pgwr_vp_offsets[] = {
896 VOPARG_OFFSETOF(struct vop_pgwr_args,a_vp),
897 VDESC_NO_OFFSET
898};
899struct vnodeop_desc vop_pgwr_desc = {
900 0,
901 "vop_pgwr",
902 0,
903 vop_pgwr_vp_offsets,
904 VDESC_NO_OFFSET,
905 VOPARG_OFFSETOF(struct vop_pgwr_args, a_cred),
906 VDESC_NO_OFFSET,
907 VDESC_NO_OFFSET,
908 NULL,
909};
910
911int vop_pagein_vp_offsets[] = {
912 VOPARG_OFFSETOF(struct vop_pagein_args,a_vp),
913 VDESC_NO_OFFSET
914};
915struct vnodeop_desc vop_pagein_desc = {
916 0,
917 "vop_pagein",
918 0,
919 vop_pagein_vp_offsets,
920 VDESC_NO_OFFSET,
921 VOPARG_OFFSETOF(struct vop_pagein_args, a_cred),
922 VDESC_NO_OFFSET,
923 VDESC_NO_OFFSET,
924 NULL,
925};
926
927int vop_pageout_vp_offsets[] = {
928 VOPARG_OFFSETOF(struct vop_pageout_args,a_vp),
929 VDESC_NO_OFFSET
930};
931struct vnodeop_desc vop_pageout_desc = {
932 0,
933 "vop_pageout",
934 0,
935 vop_pageout_vp_offsets,
936 VDESC_NO_OFFSET,
937 VOPARG_OFFSETOF(struct vop_pageout_args, a_cred),
938 VDESC_NO_OFFSET,
939 VDESC_NO_OFFSET,
940 NULL,
941};
942
943int vop_devblocksize_vp_offsets[] = {
944 VOPARG_OFFSETOF(struct vop_devblocksize_args,a_vp),
945 VDESC_NO_OFFSET
946};
947struct vnodeop_desc vop_devblocksize_desc = {
948 0,
949 "vop_devblocksize",
950 0,
951 vop_devblocksize_vp_offsets,
952 VDESC_NO_OFFSET,
953 VDESC_NO_OFFSET,
954 VDESC_NO_OFFSET,
955 VDESC_NO_OFFSET,
956 NULL,
957};
958
959int vop_searchfs_vp_offsets[] = {
960 VOPARG_OFFSETOF(struct vop_searchfs_args,a_vp),
961 VDESC_NO_OFFSET
962};
963struct vnodeop_desc vop_searchfs_desc = {
964 0,
965 "vop_searchfs",
966 0,
967 vop_searchfs_vp_offsets,
968 VDESC_NO_OFFSET,
969 VDESC_NO_OFFSET,
970 VDESC_NO_OFFSET,
971 VDESC_NO_OFFSET,
972 NULL,
973};
974
975int vop_copyfile_vp_offsets[] = {
976 VOPARG_OFFSETOF(struct vop_copyfile_args,a_fvp),
977 VOPARG_OFFSETOF(struct vop_copyfile_args,a_tdvp),
978 VOPARG_OFFSETOF(struct vop_copyfile_args,a_tvp),
979 VDESC_NO_OFFSET
980};
981struct vnodeop_desc vop_copyfile_desc = {
982 0,
983 "vop_copyfile",
984 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
985 vop_copyfile_vp_offsets,
986 VDESC_NO_OFFSET,
987 VDESC_NO_OFFSET,
988 VDESC_NO_OFFSET,
989 VOPARG_OFFSETOF(struct vop_copyfile_args, a_tcnp),
990 NULL,
991};
992
993int vop_blktooff_vp_offsets[] = {
994 VOPARG_OFFSETOF(struct vop_blktooff_args,a_vp),
995 VDESC_NO_OFFSET
996};
997struct vnodeop_desc vop_blktooff_desc = {
998 0,
999 "vop_blktooff",
1000 0,
1001 vop_blktooff_vp_offsets,
1002 VDESC_NO_OFFSET,
1003 VDESC_NO_OFFSET,
1004 VDESC_NO_OFFSET,
1005 VDESC_NO_OFFSET,
1006 NULL,
1007};
1008
1009int vop_offtoblk_vp_offsets[] = {
1010 VOPARG_OFFSETOF(struct vop_offtoblk_args,a_vp),
1011 VDESC_NO_OFFSET
1012};
1013struct vnodeop_desc vop_offtoblk_desc = {
1014 0,
1015 "vop_offtoblk",
1016 0,
1017 vop_offtoblk_vp_offsets,
1018 VDESC_NO_OFFSET,
1019 VDESC_NO_OFFSET,
1020 VDESC_NO_OFFSET,
1021 VDESC_NO_OFFSET,
1022 NULL,
1023};
1024
1025int vop_cmap_vp_offsets[] = {
1026 VOPARG_OFFSETOF(struct vop_cmap_args,a_vp),
1027 VDESC_NO_OFFSET
1028};
1029struct vnodeop_desc vop_cmap_desc = {
1030 0,
1031 "vop_cmap",
1032 0,
1033 vop_cmap_vp_offsets,
1034 VDESC_NO_OFFSET,
1035 VDESC_NO_OFFSET,
1036 VDESC_NO_OFFSET,
1037 VDESC_NO_OFFSET,
1038 NULL,
1039};
1040
1041/* Special cases: */
1042
1043int vop_strategy_vp_offsets[] = {
1044 VDESC_NO_OFFSET
1045};
1046struct vnodeop_desc vop_strategy_desc = {
1047 0,
1048 "vop_strategy",
1049 0,
1050 vop_strategy_vp_offsets,
1051 VDESC_NO_OFFSET,
1052 VDESC_NO_OFFSET,
1053 VDESC_NO_OFFSET,
1054 VDESC_NO_OFFSET,
1055 NULL,
1056};
1057
1058int vop_bwrite_vp_offsets[] = {
1059 VDESC_NO_OFFSET
1060};
1061struct vnodeop_desc vop_bwrite_desc = {
1062 0,
1063 "vop_bwrite",
1064 0,
1065 vop_bwrite_vp_offsets,
1066 VDESC_NO_OFFSET,
1067 VDESC_NO_OFFSET,
1068 VDESC_NO_OFFSET,
1069 VDESC_NO_OFFSET,
1070 NULL,
1071};
1072
1073/* End of special cases. */
1074
1075struct vnodeop_desc *vfs_op_descs[] = {
1076 &vop_default_desc, /* MUST BE FIRST */
1077 &vop_strategy_desc, /* XXX: SPECIAL CASE */
1078 &vop_bwrite_desc, /* XXX: SPECIAL CASE */
1079
1080 &vop_lookup_desc,
1081 &vop_cachedlookup_desc,
1082 &vop_create_desc,
1083 &vop_whiteout_desc,
1084 &vop_mknod_desc,
1085 &vop_mkcomplex_desc,
1086 &vop_open_desc,
1087 &vop_close_desc,
1088 &vop_access_desc,
1089 &vop_getattr_desc,
1090 &vop_setattr_desc,
1091 &vop_getattrlist_desc,
1092 &vop_setattrlist_desc,
1093 &vop_read_desc,
1094 &vop_write_desc,
1095 &vop_lease_desc,
1096 &vop_ioctl_desc,
1097 &vop_select_desc,
1098 &vop_exchange_desc,
1099 &vop_revoke_desc,
1100 &vop_mmap_desc,
1101 &vop_fsync_desc,
1102 &vop_seek_desc,
1103 &vop_remove_desc,
1104 &vop_link_desc,
1105 &vop_rename_desc,
1106 &vop_mkdir_desc,
1107 &vop_rmdir_desc,
1108 &vop_symlink_desc,
1109 &vop_readdir_desc,
1110 &vop_readdirattr_desc,
1111 &vop_readlink_desc,
1112 &vop_abortop_desc,
1113 &vop_inactive_desc,
1114 &vop_reclaim_desc,
1115 &vop_lock_desc,
1116 &vop_unlock_desc,
1117 &vop_bmap_desc,
1118 &vop_print_desc,
1119 &vop_islocked_desc,
1120 &vop_pathconf_desc,
1121 &vop_advlock_desc,
1122 &vop_blkatoff_desc,
1123 &vop_valloc_desc,
1124 &vop_reallocblks_desc,
1125 &vop_vfree_desc,
1126 &vop_truncate_desc,
1127 &vop_allocate_desc,
1128 &vop_update_desc,
1129 &vop_pgrd_desc,
1130 &vop_pgwr_desc,
1131 &vop_pagein_desc,
1132 &vop_pageout_desc,
1133 &vop_devblocksize_desc,
1134 &vop_searchfs_desc,
1135 &vop_copyfile_desc,
1136 &vop_blktooff_desc,
1137 &vop_offtoblk_desc,
1138 &vop_cmap_desc,
1139 NULL
1140};
1141