]> git.saurik.com Git - apple/xnu.git/blame - bsd/vfs/vnode_if.c
xnu-1504.9.37.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
b0d623f7
A
365int vnop_monitor_vp_offsets[] = {
366 VOPARG_OFFSETOF(struct vnop_monitor_args,a_vp),
367 VDESC_NO_OFFSET
368};
369struct vnodeop_desc vnop_monitor_desc = {
370 0,
371 "vnop_monitor",
372 0,
373 vnop_monitor_vp_offsets,
374 VDESC_NO_OFFSET,
375 VDESC_NO_OFFSET,
376 VDESC_NO_OFFSET,
377 VDESC_NO_OFFSET,
378 VOPARG_OFFSETOF(struct vnop_monitor_args, a_context),
379 NULL
380};
381
2d21ac55
A
382int vnop_setlabel_vp_offsets[] = {
383 VOPARG_OFFSETOF(struct vnop_setlabel_args,a_vp),
384 VDESC_NO_OFFSET
385};
386struct vnodeop_desc vnop_setlabel_desc = {
387 0,
388 "vnop_setlabel",
389 0,
390 vnop_setlabel_vp_offsets,
391 VDESC_NO_OFFSET,
392 VDESC_NO_OFFSET,
393 VDESC_NO_OFFSET,
394 VDESC_NO_OFFSET,
395 VOPARG_OFFSETOF(struct vnop_setlabel_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,
2d21ac55
A
412 VDESC_NO_OFFSET,
413 NULL
1c79356b
A
414};
415
91447636
A
416
417int vnop_mmap_vp_offsets[] = {
418 VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp),
1c79356b
A
419 VDESC_NO_OFFSET
420};
91447636 421struct vnodeop_desc vnop_mmap_desc = {
1c79356b 422 0,
91447636 423 "vnop_mmap",
1c79356b 424 0,
91447636
A
425 vnop_mmap_vp_offsets,
426 VDESC_NO_OFFSET,
1c79356b 427 VDESC_NO_OFFSET,
1c79356b
A
428 VDESC_NO_OFFSET,
429 VDESC_NO_OFFSET,
2d21ac55
A
430 VDESC_NO_OFFSET,
431 NULL
1c79356b
A
432};
433
91447636
A
434
435int vnop_mnomap_vp_offsets[] = {
436 VOPARG_OFFSETOF(struct vnop_mnomap_args,a_vp),
1c79356b
A
437 VDESC_NO_OFFSET
438};
91447636 439struct vnodeop_desc vnop_mnomap_desc = {
1c79356b 440 0,
91447636 441 "vnop_mnomap",
1c79356b 442 0,
91447636
A
443 vnop_mnomap_vp_offsets,
444 VDESC_NO_OFFSET,
1c79356b 445 VDESC_NO_OFFSET,
1c79356b
A
446 VDESC_NO_OFFSET,
447 VDESC_NO_OFFSET,
2d21ac55
A
448 VDESC_NO_OFFSET,
449 NULL
1c79356b
A
450};
451
91447636
A
452
453int vnop_fsync_vp_offsets[] = {
454 VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp),
1c79356b
A
455 VDESC_NO_OFFSET
456};
91447636 457struct vnodeop_desc vnop_fsync_desc = {
1c79356b 458 0,
91447636 459 "vnop_fsync",
1c79356b 460 0,
91447636
A
461 vnop_fsync_vp_offsets,
462 VDESC_NO_OFFSET,
1c79356b 463 VDESC_NO_OFFSET,
1c79356b
A
464 VDESC_NO_OFFSET,
465 VDESC_NO_OFFSET,
91447636 466 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context),
2d21ac55 467 NULL
1c79356b
A
468};
469
91447636
A
470int vnop_remove_vp_offsets[] = {
471 VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp),
472 VOPARG_OFFSETOF(struct vnop_remove_args,a_vp),
1c79356b
A
473 VDESC_NO_OFFSET
474};
91447636 475struct vnodeop_desc vnop_remove_desc = {
1c79356b 476 0,
91447636
A
477 "vnop_remove",
478 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
479 vnop_remove_vp_offsets,
1c79356b
A
480 VDESC_NO_OFFSET,
481 VDESC_NO_OFFSET,
482 VDESC_NO_OFFSET,
91447636
A
483 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
484 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
2d21ac55 485 NULL
1c79356b
A
486};
487
91447636
A
488int vnop_link_vp_offsets[] = {
489 VOPARG_OFFSETOF(struct vnop_link_args,a_vp),
490 VOPARG_OFFSETOF(struct vnop_link_args,a_tdvp),
1c79356b
A
491 VDESC_NO_OFFSET
492};
91447636 493struct vnodeop_desc vnop_link_desc = {
1c79356b 494 0,
91447636
A
495 "vnop_link",
496 0 | VDESC_VP1_WILLRELE,
497 vnop_link_vp_offsets,
1c79356b
A
498 VDESC_NO_OFFSET,
499 VDESC_NO_OFFSET,
1c79356b 500 VDESC_NO_OFFSET,
91447636
A
501 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp),
502 VOPARG_OFFSETOF(struct vnop_link_args, a_context),
2d21ac55 503 NULL
1c79356b
A
504};
505
91447636
A
506int vnop_rename_vp_offsets[] = {
507 VOPARG_OFFSETOF(struct vnop_rename_args,a_fdvp),
508 VOPARG_OFFSETOF(struct vnop_rename_args,a_fvp),
509 VOPARG_OFFSETOF(struct vnop_rename_args,a_tdvp),
510 VOPARG_OFFSETOF(struct vnop_rename_args,a_tvp),
1c79356b
A
511 VDESC_NO_OFFSET
512};
91447636 513struct vnodeop_desc vnop_rename_desc = {
1c79356b 514 0,
91447636
A
515 "vnop_rename",
516 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
517 vnop_rename_vp_offsets,
1c79356b
A
518 VDESC_NO_OFFSET,
519 VDESC_NO_OFFSET,
1c79356b 520 VDESC_NO_OFFSET,
91447636
A
521 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp),
522 VOPARG_OFFSETOF(struct vnop_rename_args, a_context),
2d21ac55 523 NULL
1c79356b
A
524};
525
91447636
A
526int vnop_mkdir_vp_offsets[] = {
527 VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp),
528 VDESC_NO_OFFSET
1c79356b 529};
91447636
A
530struct vnodeop_desc vnop_mkdir_desc = {
531 0,
532 "vnop_mkdir",
533 0 | VDESC_VP0_WILLRELE,
534 vnop_mkdir_vp_offsets,
535 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
536 VDESC_NO_OFFSET,
537 VDESC_NO_OFFSET,
538 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
539 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
2d21ac55 540 NULL
1c79356b
A
541};
542
91447636
A
543int vnop_rmdir_vp_offsets[] = {
544 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp),
545 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp),
1c79356b
A
546 VDESC_NO_OFFSET
547};
91447636 548struct vnodeop_desc vnop_rmdir_desc = {
1c79356b 549 0,
91447636
A
550 "vnop_rmdir",
551 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
552 vnop_rmdir_vp_offsets,
1c79356b
A
553 VDESC_NO_OFFSET,
554 VDESC_NO_OFFSET,
1c79356b 555 VDESC_NO_OFFSET,
91447636
A
556 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
557 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
2d21ac55 558 NULL
1c79356b
A
559};
560
91447636
A
561int vnop_symlink_vp_offsets[] = {
562 VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp),
563 VDESC_NO_OFFSET
1c79356b 564};
91447636
A
565struct vnodeop_desc vnop_symlink_desc = {
566 0,
567 "vnop_symlink",
568 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
569 vnop_symlink_vp_offsets,
570 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
571 VDESC_NO_OFFSET,
572 VDESC_NO_OFFSET,
573 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
574 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
2d21ac55 575 NULL
1c79356b
A
576};
577
91447636
A
578int vnop_readdir_vp_offsets[] = {
579 VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp),
1c79356b
A
580 VDESC_NO_OFFSET
581};
91447636 582struct vnodeop_desc vnop_readdir_desc = {
1c79356b 583 0,
91447636 584 "vnop_readdir",
1c79356b 585 0,
91447636 586 vnop_readdir_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_symlink_args, a_context),
2d21ac55 592 NULL
1c79356b
A
593};
594
91447636
A
595int vnop_readdirattr_vp_offsets[] = {
596 VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp),
1c79356b
A
597 VDESC_NO_OFFSET
598};
91447636 599struct vnodeop_desc vnop_readdirattr_desc = {
1c79356b 600 0,
91447636 601 "vnop_readdirattr",
1c79356b 602 0,
91447636 603 vnop_readdirattr_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_readdirattr_args, a_context),
2d21ac55 609 NULL
1c79356b
A
610};
611
91447636
A
612int vnop_readlink_vp_offsets[] = {
613 VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp),
1c79356b
A
614 VDESC_NO_OFFSET
615};
91447636 616struct vnodeop_desc vnop_readlink_desc = {
1c79356b 617 0,
91447636 618 "vnop_readlink",
1c79356b 619 0,
91447636 620 vnop_readlink_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_readlink_args, a_context),
2d21ac55 626 NULL
1c79356b
A
627};
628
91447636
A
629int vnop_inactive_vp_offsets[] = {
630 VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp),
1c79356b
A
631 VDESC_NO_OFFSET
632};
91447636 633struct vnodeop_desc vnop_inactive_desc = {
1c79356b 634 0,
91447636 635 "vnop_inactive",
1c79356b 636 0,
91447636 637 vnop_inactive_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_inactive_args, a_context),
2d21ac55 643 NULL
1c79356b
A
644};
645
91447636
A
646int vnop_reclaim_vp_offsets[] = {
647 VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp),
1c79356b
A
648 VDESC_NO_OFFSET
649};
91447636 650struct vnodeop_desc vnop_reclaim_desc = {
1c79356b 651 0,
91447636 652 "vnop_reclaim",
1c79356b 653 0,
91447636 654 vnop_reclaim_vp_offsets,
1c79356b
A
655 VDESC_NO_OFFSET,
656 VDESC_NO_OFFSET,
657 VDESC_NO_OFFSET,
658 VDESC_NO_OFFSET,
91447636 659 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
2d21ac55 660 NULL
1c79356b
A
661};
662
91447636
A
663int vnop_pathconf_vp_offsets[] = {
664 VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp),
1c79356b
A
665 VDESC_NO_OFFSET
666};
91447636 667struct vnodeop_desc vnop_pathconf_desc = {
1c79356b 668 0,
91447636 669 "vnop_pathconf",
1c79356b 670 0,
91447636
A
671 vnop_pathconf_vp_offsets,
672 VDESC_NO_OFFSET,
673 VDESC_NO_OFFSET,
1c79356b
A
674 VDESC_NO_OFFSET,
675 VDESC_NO_OFFSET,
91447636 676 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
2d21ac55 677 NULL
1c79356b
A
678};
679
91447636
A
680int vnop_advlock_vp_offsets[] = {
681 VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp),
1c79356b
A
682 VDESC_NO_OFFSET
683};
91447636 684struct vnodeop_desc vnop_advlock_desc = {
1c79356b 685 0,
91447636 686 "vnop_advlock",
1c79356b 687 0,
91447636 688 vnop_advlock_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_advlock_args, a_context),
2d21ac55 694 NULL
1c79356b
A
695};
696
91447636
A
697int vnop_allocate_vp_offsets[] = {
698 VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp),
1c79356b
A
699 VDESC_NO_OFFSET
700};
91447636 701struct vnodeop_desc vnop_allocate_desc = {
1c79356b 702 0,
91447636 703 "vnop_allocate",
1c79356b 704 0,
91447636 705 vnop_allocate_vp_offsets,
1c79356b
A
706 VDESC_NO_OFFSET,
707 VDESC_NO_OFFSET,
708 VDESC_NO_OFFSET,
709 VDESC_NO_OFFSET,
91447636 710 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
2d21ac55 711 NULL
1c79356b
A
712};
713
91447636
A
714int vnop_pagein_vp_offsets[] = {
715 VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp),
1c79356b
A
716 VDESC_NO_OFFSET
717};
91447636 718struct vnodeop_desc vnop_pagein_desc = {
1c79356b 719 0,
91447636 720 "vnop_pagein",
1c79356b 721 0,
91447636 722 vnop_pagein_vp_offsets,
1c79356b 723 VDESC_NO_OFFSET,
1c79356b 724 VDESC_NO_OFFSET,
1c79356b 725 VDESC_NO_OFFSET,
1c79356b 726 VDESC_NO_OFFSET,
91447636 727 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
2d21ac55 728 NULL
1c79356b
A
729};
730
91447636
A
731int vnop_pageout_vp_offsets[] = {
732 VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp),
1c79356b
A
733 VDESC_NO_OFFSET
734};
91447636 735struct vnodeop_desc vnop_pageout_desc = {
1c79356b 736 0,
91447636 737 "vnop_pageout",
1c79356b 738 0,
91447636 739 vnop_pageout_vp_offsets,
1c79356b
A
740 VDESC_NO_OFFSET,
741 VDESC_NO_OFFSET,
742 VDESC_NO_OFFSET,
743 VDESC_NO_OFFSET,
91447636 744 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
2d21ac55 745 NULL
1c79356b
A
746};
747
91447636
A
748int vnop_searchfs_vp_offsets[] = {
749 VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp),
1c79356b
A
750 VDESC_NO_OFFSET
751};
91447636 752struct vnodeop_desc vnop_searchfs_desc = {
1c79356b 753 0,
91447636 754 "vnop_searchfs",
1c79356b 755 0,
91447636
A
756 vnop_searchfs_vp_offsets,
757 VDESC_NO_OFFSET,
1c79356b 758 VDESC_NO_OFFSET,
1c79356b
A
759 VDESC_NO_OFFSET,
760 VDESC_NO_OFFSET,
2d21ac55
A
761 VDESC_NO_OFFSET,
762 NULL
1c79356b
A
763};
764
91447636
A
765int vnop_copyfile_vp_offsets[] = {
766 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp),
767 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp),
768 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp),
1c79356b
A
769 VDESC_NO_OFFSET
770};
91447636 771struct vnodeop_desc vnop_copyfile_desc = {
1c79356b 772 0,
91447636
A
773 "vnop_copyfile",
774 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
775 vnop_copyfile_vp_offsets,
1c79356b 776 VDESC_NO_OFFSET,
1c79356b
A
777 VDESC_NO_OFFSET,
778 VDESC_NO_OFFSET,
91447636 779 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
2d21ac55
A
780 VDESC_NO_OFFSET,
781 NULL
1c79356b
A
782};
783
91447636
A
784int vop_getxattr_vp_offsets[] = {
785 VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp),
1c79356b
A
786 VDESC_NO_OFFSET
787};
91447636 788struct vnodeop_desc vnop_getxattr_desc = {
1c79356b 789 0,
91447636 790 "vnop_getxattr",
1c79356b 791 0,
91447636 792 vop_getxattr_vp_offsets,
1c79356b 793 VDESC_NO_OFFSET,
1c79356b
A
794 VDESC_NO_OFFSET,
795 VDESC_NO_OFFSET,
91447636
A
796 VDESC_NO_OFFSET,
797 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
2d21ac55 798 NULL
1c79356b
A
799};
800
91447636
A
801int vop_setxattr_vp_offsets[] = {
802 VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp),
1c79356b
A
803 VDESC_NO_OFFSET
804};
91447636 805struct vnodeop_desc vnop_setxattr_desc = {
1c79356b 806 0,
91447636 807 "vnop_setxattr",
1c79356b 808 0,
91447636 809 vop_setxattr_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_setxattr_args, a_context),
2d21ac55 815 NULL
1c79356b
A
816};
817
91447636
A
818int vop_removexattr_vp_offsets[] = {
819 VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp),
1c79356b
A
820 VDESC_NO_OFFSET
821};
91447636 822struct vnodeop_desc vnop_removexattr_desc = {
1c79356b 823 0,
91447636 824 "vnop_removexattr",
1c79356b 825 0,
91447636 826 vop_removexattr_vp_offsets,
1c79356b
A
827 VDESC_NO_OFFSET,
828 VDESC_NO_OFFSET,
829 VDESC_NO_OFFSET,
830 VDESC_NO_OFFSET,
91447636 831 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
2d21ac55 832 NULL
1c79356b
A
833};
834
91447636
A
835int vop_listxattr_vp_offsets[] = {
836 VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp),
1c79356b
A
837 VDESC_NO_OFFSET
838};
91447636 839struct vnodeop_desc vnop_listxattr_desc = {
1c79356b 840 0,
91447636
A
841 "vnop_listxattr",
842 0,
843 vop_listxattr_vp_offsets,
844 VDESC_NO_OFFSET,
1c79356b
A
845 VDESC_NO_OFFSET,
846 VDESC_NO_OFFSET,
847 VDESC_NO_OFFSET,
91447636 848 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
2d21ac55 849 NULL
1c79356b
A
850};
851
91447636
A
852int vnop_blktooff_vp_offsets[] = {
853 VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp),
1c79356b
A
854 VDESC_NO_OFFSET
855};
91447636 856struct vnodeop_desc vnop_blktooff_desc = {
1c79356b 857 0,
91447636 858 "vnop_blktooff",
1c79356b 859 0,
91447636 860 vnop_blktooff_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_offtoblk_vp_offsets[] = {
870 VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp),
1c79356b
A
871 VDESC_NO_OFFSET
872};
91447636 873struct vnodeop_desc vnop_offtoblk_desc = {
1c79356b 874 0,
91447636 875 "vnop_offtoblk",
1c79356b 876 0,
91447636 877 vnop_offtoblk_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
1c79356b
A
884};
885
91447636
A
886int vnop_blockmap_vp_offsets[] = {
887 VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp),
1c79356b
A
888 VDESC_NO_OFFSET
889};
91447636 890struct vnodeop_desc vnop_blockmap_desc = {
1c79356b 891 0,
91447636 892 "vnop_blockmap",
1c79356b 893 0,
91447636 894 vnop_blockmap_vp_offsets,
1c79356b
A
895 VDESC_NO_OFFSET,
896 VDESC_NO_OFFSET,
897 VDESC_NO_OFFSET,
898 VDESC_NO_OFFSET,
2d21ac55
A
899 VDESC_NO_OFFSET,
900 NULL
901};
902
903#if NAMEDSTREAMS
904int vnop_getnamedstream_vp_offsets[] = {
905 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp),
906 VDESC_NO_OFFSET
907};
908struct vnodeop_desc vnop_getnamedstream_desc = {
909 0,
910 "vnop_getnamedstream",
911 0,
912 vnop_getnamedstream_vp_offsets,
913 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp),
914 VDESC_NO_OFFSET,
915 VDESC_NO_OFFSET,
916 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name),
917 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context),
918 NULL
919};
920
921int vnop_makenamedstream_vp_offsets[] = {
922 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp),
923 VDESC_NO_OFFSET
924};
925struct vnodeop_desc vnop_makenamedstream_desc = {
926 0,
927 "vnop_makenamedstream",
928 0, /* flags */
929 vnop_makenamedstream_vp_offsets,
930 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp),
931 VDESC_NO_OFFSET,
932 VDESC_NO_OFFSET,
933 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name),
934 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context),
935 NULL
936};
937
938int vnop_removenamedstream_vp_offsets[] = {
939 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp),
940 VDESC_NO_OFFSET
941};
942struct vnodeop_desc vnop_removenamedstream_desc = {
943 0,
944 "vnop_removenamedstream",
945 0,
946 vnop_removenamedstream_vp_offsets,
947 VDESC_NO_OFFSET,
948 VDESC_NO_OFFSET,
949 VDESC_NO_OFFSET,
950 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name),
951 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context),
952 NULL
1c79356b 953};
2d21ac55
A
954#else
955/* These symbols are in the exports list so they need to always be defined. */
956int vnop_getnamedstream_desc;
957int vnop_makenamedstream_desc;
958int vnop_removenamedstream_desc;
959#endif
1c79356b
A
960
961/* Special cases: */
962
91447636 963int vnop_strategy_vp_offsets[] = {
1c79356b
A
964 VDESC_NO_OFFSET
965};
91447636 966struct vnodeop_desc vnop_strategy_desc = {
1c79356b 967 0,
91447636 968 "vnop_strategy",
1c79356b 969 0,
91447636 970 vnop_strategy_vp_offsets,
1c79356b
A
971 VDESC_NO_OFFSET,
972 VDESC_NO_OFFSET,
973 VDESC_NO_OFFSET,
974 VDESC_NO_OFFSET,
2d21ac55
A
975 VDESC_NO_OFFSET,
976 NULL
1c79356b
A
977};
978
91447636 979int vnop_bwrite_vp_offsets[] = {
1c79356b
A
980 VDESC_NO_OFFSET
981};
91447636 982struct vnodeop_desc vnop_bwrite_desc = {
1c79356b 983 0,
91447636 984 "vnop_bwrite",
1c79356b 985 0,
91447636 986 vnop_bwrite_vp_offsets,
1c79356b
A
987 VDESC_NO_OFFSET,
988 VDESC_NO_OFFSET,
989 VDESC_NO_OFFSET,
990 VDESC_NO_OFFSET,
2d21ac55
A
991 VDESC_NO_OFFSET,
992 NULL
1c79356b
A
993};
994
995/* End of special cases. */
996
997struct vnodeop_desc *vfs_op_descs[] = {
91447636
A
998 &vnop_default_desc, /* MUST BE FIRST */
999 &vnop_strategy_desc, /* XXX: SPECIAL CASE */
1000 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
1001
1002 &vnop_lookup_desc,
1003 &vnop_create_desc,
1004 &vnop_mknod_desc,
1005 &vnop_whiteout_desc,
1006 &vnop_open_desc,
1007 &vnop_close_desc,
1008 &vnop_access_desc,
1009 &vnop_getattr_desc,
1010 &vnop_setattr_desc,
91447636
A
1011 &vnop_read_desc,
1012 &vnop_write_desc,
1013 &vnop_ioctl_desc,
1014 &vnop_select_desc,
1015 &vnop_exchange_desc,
1016 &vnop_kqfilt_add_desc,
1017 &vnop_kqfilt_remove_desc,
2d21ac55 1018 &vnop_setlabel_desc,
91447636
A
1019 &vnop_revoke_desc,
1020 &vnop_mmap_desc,
1021 &vnop_mnomap_desc,
1022 &vnop_fsync_desc,
1023 &vnop_remove_desc,
1024 &vnop_link_desc,
1025 &vnop_rename_desc,
1026 &vnop_mkdir_desc,
1027 &vnop_rmdir_desc,
1028 &vnop_symlink_desc,
1029 &vnop_readdir_desc,
1030 &vnop_readdirattr_desc,
1031 &vnop_readlink_desc,
1032 &vnop_inactive_desc,
1033 &vnop_reclaim_desc,
1034 &vnop_pathconf_desc,
1035 &vnop_advlock_desc,
1036 &vnop_allocate_desc,
1037 &vnop_pagein_desc,
1038 &vnop_pageout_desc,
91447636
A
1039 &vnop_searchfs_desc,
1040 &vnop_copyfile_desc,
1041 &vnop_getxattr_desc,
1042 &vnop_setxattr_desc,
1043 &vnop_removexattr_desc,
1044 &vnop_listxattr_desc,
1045 &vnop_blktooff_desc,
1046 &vnop_offtoblk_desc,
1047 &vnop_blockmap_desc,
b0d623f7 1048 &vnop_monitor_desc,
2d21ac55
A
1049#if NAMEDSTREAMS
1050 &vnop_getnamedstream_desc,
1051 &vnop_makenamedstream_desc,
1052 &vnop_removenamedstream_desc,
1053#endif
1c79356b
A
1054 NULL
1055};
1056