]> git.saurik.com Git - apple/xnu.git/blob - bsd/vfs/vnode_if.c
3a5438e57fbdf467fd472723c22235b8b9319800
[apple/xnu.git] / bsd / vfs / vnode_if.c
1
2 /*
3 * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
4 *
5 * @APPLE_LICENSE_HEADER_START@
6 *
7 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
8 *
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
18 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
19 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
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.
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
75 struct 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
88 int vop_lookup_vp_offsets[] = {
89 VOPARG_OFFSETOF(struct vop_lookup_args,a_dvp),
90 VDESC_NO_OFFSET
91 };
92 struct 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
104 int vop_cachedlookup_vp_offsets[] = {
105 VOPARG_OFFSETOF(struct vop_cachedlookup_args,a_dvp),
106 VDESC_NO_OFFSET
107 };
108 struct 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
120 int vop_create_vp_offsets[] = {
121 VOPARG_OFFSETOF(struct vop_create_args,a_dvp),
122 VDESC_NO_OFFSET
123 };
124 struct 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
136 int vop_whiteout_vp_offsets[] = {
137 VOPARG_OFFSETOF(struct vop_whiteout_args,a_dvp),
138 VDESC_NO_OFFSET
139 };
140 struct 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
152 int vop_mknod_vp_offsets[] = {
153 VOPARG_OFFSETOF(struct vop_mknod_args,a_dvp),
154 VDESC_NO_OFFSET
155 };
156 struct 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
168 int vop_mkcomplex_vp_offsets[] = {
169 VOPARG_OFFSETOF(struct vop_mkcomplex_args,a_dvp),
170 VDESC_NO_OFFSET
171 };
172 struct 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
184 int vop_open_vp_offsets[] = {
185 VOPARG_OFFSETOF(struct vop_open_args,a_vp),
186 VDESC_NO_OFFSET
187 };
188 struct 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
200 int vop_close_vp_offsets[] = {
201 VOPARG_OFFSETOF(struct vop_close_args,a_vp),
202 VDESC_NO_OFFSET
203 };
204 struct 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
216 int vop_access_vp_offsets[] = {
217 VOPARG_OFFSETOF(struct vop_access_args,a_vp),
218 VDESC_NO_OFFSET
219 };
220 struct 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
232 int vop_getattr_vp_offsets[] = {
233 VOPARG_OFFSETOF(struct vop_getattr_args,a_vp),
234 VDESC_NO_OFFSET
235 };
236 struct 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
248 int vop_setattr_vp_offsets[] = {
249 VOPARG_OFFSETOF(struct vop_setattr_args,a_vp),
250 VDESC_NO_OFFSET
251 };
252 struct 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
264 int vop_getattrlist_vp_offsets[] = {
265 VOPARG_OFFSETOF(struct vop_getattrlist_args,a_vp),
266 VDESC_NO_OFFSET
267 };
268 struct 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
280 int vop_setattrlist_vp_offsets[] = {
281 VOPARG_OFFSETOF(struct vop_setattrlist_args,a_vp),
282 VDESC_NO_OFFSET
283 };
284 struct 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
296 int vop_read_vp_offsets[] = {
297 VOPARG_OFFSETOF(struct vop_read_args,a_vp),
298 VDESC_NO_OFFSET
299 };
300 struct 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
312 int vop_write_vp_offsets[] = {
313 VOPARG_OFFSETOF(struct vop_write_args,a_vp),
314 VDESC_NO_OFFSET
315 };
316 struct 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
328 int vop_lease_vp_offsets[] = {
329 VOPARG_OFFSETOF(struct vop_lease_args,a_vp),
330 VDESC_NO_OFFSET
331 };
332 struct 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
344 int vop_ioctl_vp_offsets[] = {
345 VOPARG_OFFSETOF(struct vop_ioctl_args,a_vp),
346 VDESC_NO_OFFSET
347 };
348 struct 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
360 int vop_select_vp_offsets[] = {
361 VOPARG_OFFSETOF(struct vop_select_args,a_vp),
362 VDESC_NO_OFFSET
363 };
364 struct 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
376 int 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 };
381 struct 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
393 int vop_revoke_vp_offsets[] = {
394 VOPARG_OFFSETOF(struct vop_revoke_args,a_vp),
395 VDESC_NO_OFFSET
396 };
397 struct 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
409 int vop_mmap_vp_offsets[] = {
410 VOPARG_OFFSETOF(struct vop_mmap_args,a_vp),
411 VDESC_NO_OFFSET
412 };
413 struct 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
425 int vop_fsync_vp_offsets[] = {
426 VOPARG_OFFSETOF(struct vop_fsync_args,a_vp),
427 VDESC_NO_OFFSET
428 };
429 struct 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
441 int vop_seek_vp_offsets[] = {
442 VOPARG_OFFSETOF(struct vop_seek_args,a_vp),
443 VDESC_NO_OFFSET
444 };
445 struct 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
457 int 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 };
462 struct 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
474 int 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 };
479 struct 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
491 int 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 };
498 struct 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
510 int vop_mkdir_vp_offsets[] = {
511 VOPARG_OFFSETOF(struct vop_mkdir_args,a_dvp),
512 VDESC_NO_OFFSET
513 };
514 struct 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
526 int 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 };
531 struct 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
543 int vop_symlink_vp_offsets[] = {
544 VOPARG_OFFSETOF(struct vop_symlink_args,a_dvp),
545 VDESC_NO_OFFSET
546 };
547 struct 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
559 int vop_readdir_vp_offsets[] = {
560 VOPARG_OFFSETOF(struct vop_readdir_args,a_vp),
561 VDESC_NO_OFFSET
562 };
563 struct 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
575 int vop_readdirattr_vp_offsets[] = {
576 VOPARG_OFFSETOF(struct vop_readdirattr_args,a_vp),
577 VDESC_NO_OFFSET
578 };
579 struct 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
591 int vop_readlink_vp_offsets[] = {
592 VOPARG_OFFSETOF(struct vop_readlink_args,a_vp),
593 VDESC_NO_OFFSET
594 };
595 struct 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
607 int vop_abortop_vp_offsets[] = {
608 VOPARG_OFFSETOF(struct vop_abortop_args,a_dvp),
609 VDESC_NO_OFFSET
610 };
611 struct 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
623 int vop_inactive_vp_offsets[] = {
624 VOPARG_OFFSETOF(struct vop_inactive_args,a_vp),
625 VDESC_NO_OFFSET
626 };
627 struct 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
639 int vop_reclaim_vp_offsets[] = {
640 VOPARG_OFFSETOF(struct vop_reclaim_args,a_vp),
641 VDESC_NO_OFFSET
642 };
643 struct 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
655 int vop_lock_vp_offsets[] = {
656 VOPARG_OFFSETOF(struct vop_lock_args,a_vp),
657 VDESC_NO_OFFSET
658 };
659 struct 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
671 int vop_unlock_vp_offsets[] = {
672 VOPARG_OFFSETOF(struct vop_unlock_args,a_vp),
673 VDESC_NO_OFFSET
674 };
675 struct 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
687 int vop_bmap_vp_offsets[] = {
688 VOPARG_OFFSETOF(struct vop_bmap_args,a_vp),
689 VDESC_NO_OFFSET
690 };
691 struct 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
703 int vop_print_vp_offsets[] = {
704 VOPARG_OFFSETOF(struct vop_print_args,a_vp),
705 VDESC_NO_OFFSET
706 };
707 struct 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
719 int vop_islocked_vp_offsets[] = {
720 VOPARG_OFFSETOF(struct vop_islocked_args,a_vp),
721 VDESC_NO_OFFSET
722 };
723 struct 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
735 int vop_pathconf_vp_offsets[] = {
736 VOPARG_OFFSETOF(struct vop_pathconf_args,a_vp),
737 VDESC_NO_OFFSET
738 };
739 struct 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
751 int vop_advlock_vp_offsets[] = {
752 VOPARG_OFFSETOF(struct vop_advlock_args,a_vp),
753 VDESC_NO_OFFSET
754 };
755 struct 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
767 int vop_blkatoff_vp_offsets[] = {
768 VOPARG_OFFSETOF(struct vop_blkatoff_args,a_vp),
769 VDESC_NO_OFFSET
770 };
771 struct 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
783 int vop_valloc_vp_offsets[] = {
784 VOPARG_OFFSETOF(struct vop_valloc_args,a_pvp),
785 VDESC_NO_OFFSET
786 };
787 struct 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
799 int vop_reallocblks_vp_offsets[] = {
800 VOPARG_OFFSETOF(struct vop_reallocblks_args,a_vp),
801 VDESC_NO_OFFSET
802 };
803 struct 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
815 int vop_vfree_vp_offsets[] = {
816 VOPARG_OFFSETOF(struct vop_vfree_args,a_pvp),
817 VDESC_NO_OFFSET
818 };
819 struct 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
831 int vop_truncate_vp_offsets[] = {
832 VOPARG_OFFSETOF(struct vop_truncate_args,a_vp),
833 VDESC_NO_OFFSET
834 };
835 struct 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
847 int vop_allocate_vp_offsets[] = {
848 VOPARG_OFFSETOF(struct vop_allocate_args,a_vp),
849 VDESC_NO_OFFSET
850 };
851 struct 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
863 int vop_update_vp_offsets[] = {
864 VOPARG_OFFSETOF(struct vop_update_args,a_vp),
865 VDESC_NO_OFFSET
866 };
867 struct 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
879 int vop_pgrd_vp_offsets[] = {
880 VOPARG_OFFSETOF(struct vop_pgrd_args,a_vp),
881 VDESC_NO_OFFSET
882 };
883 struct 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
895 int vop_pgwr_vp_offsets[] = {
896 VOPARG_OFFSETOF(struct vop_pgwr_args,a_vp),
897 VDESC_NO_OFFSET
898 };
899 struct 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
911 int vop_pagein_vp_offsets[] = {
912 VOPARG_OFFSETOF(struct vop_pagein_args,a_vp),
913 VDESC_NO_OFFSET
914 };
915 struct 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
927 int vop_pageout_vp_offsets[] = {
928 VOPARG_OFFSETOF(struct vop_pageout_args,a_vp),
929 VDESC_NO_OFFSET
930 };
931 struct 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
943 int vop_devblocksize_vp_offsets[] = {
944 VOPARG_OFFSETOF(struct vop_devblocksize_args,a_vp),
945 VDESC_NO_OFFSET
946 };
947 struct 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
959 int vop_searchfs_vp_offsets[] = {
960 VOPARG_OFFSETOF(struct vop_searchfs_args,a_vp),
961 VDESC_NO_OFFSET
962 };
963 struct 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
975 int 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 };
981 struct 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
993 int vop_blktooff_vp_offsets[] = {
994 VOPARG_OFFSETOF(struct vop_blktooff_args,a_vp),
995 VDESC_NO_OFFSET
996 };
997 struct 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
1009 int vop_offtoblk_vp_offsets[] = {
1010 VOPARG_OFFSETOF(struct vop_offtoblk_args,a_vp),
1011 VDESC_NO_OFFSET
1012 };
1013 struct 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
1025 int vop_cmap_vp_offsets[] = {
1026 VOPARG_OFFSETOF(struct vop_cmap_args,a_vp),
1027 VDESC_NO_OFFSET
1028 };
1029 struct 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
1043 int vop_strategy_vp_offsets[] = {
1044 VDESC_NO_OFFSET
1045 };
1046 struct 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
1058 int vop_bwrite_vp_offsets[] = {
1059 VDESC_NO_OFFSET
1060 };
1061 struct 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
1075 struct 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