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