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