]> git.saurik.com Git - apple/xnu.git/blame - bsd/vfs/vnode_if.c
xnu-6153.141.1.tar.gz
[apple/xnu.git] / bsd / vfs / vnode_if.c
CommitLineData
1c79356b 1/*
cb323159 2 * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
5d5c5d0d 3 *
2d21ac55 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
0a7de745 5 *
2d21ac55
A
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
0a7de745 14 *
2d21ac55
A
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
0a7de745 17 *
2d21ac55
A
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
8f6c56a5
A
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
2d21ac55
A
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
0a7de745 25 *
2d21ac55 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
1c79356b
A
27 */
28/*
29 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
30 * Copyright (c) 1992, 1993, 1994, 1995
31 * The Regents of the University of California. All rights reserved.
32 *
33 * Redistribution and use in source and binary forms, with or without
34 * modification, are permitted provided that the following conditions
35 * are met:
36 * 1. Redistributions of source code must retain the above copyright
37 * notice, this list of conditions and the following disclaimer.
38 * 2. Redistributions in binary form must reproduce the above copyright
39 * notice, this list of conditions and the following disclaimer in the
40 * documentation and/or other materials provided with the distribution.
41 * 3. All advertising materials mentioning features or use of this software
42 * must display the following acknowledgement:
43 * This product includes software developed by the University of
44 * California, Berkeley and its contributors.
45 * 4. Neither the name of the University nor the names of its contributors
46 * may be used to endorse or promote products derived from this software
47 * without specific prior written permission.
48 *
49 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND
50 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
51 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
52 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
53 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
54 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
55 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
56 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
57 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
58 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
59 * SUCH DAMAGE.
60 */
61
62
63/*
64 * Warning: This file is generated automatically.
65 * (Modifications made here may easily be lost!)
66 *
67 * Created by the script:
68 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
69 */
70
71
72#include <sys/param.h>
91447636 73#include <sys/mount_internal.h>
1c79356b 74#include <sys/vm.h>
91447636 75#include <sys/vnode_internal.h>
1c79356b 76
91447636 77struct vnodeop_desc vnop_default_desc = {
1c79356b
A
78 0,
79 "default",
80 0,
81 NULL,
82 VDESC_NO_OFFSET,
83 VDESC_NO_OFFSET,
84 VDESC_NO_OFFSET,
85 VDESC_NO_OFFSET,
2d21ac55
A
86 VDESC_NO_OFFSET,
87 NULL
1c79356b
A
88};
89
90
91447636 91int vnop_lookup_vp_offsets[] = {
0a7de745 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),
2d21ac55 105 NULL
1c79356b
A
106};
107
6d2010ae
A
108int vnop_compound_open_vp_offsets[] = {
109 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_dvp),
110 VDESC_NO_OFFSET
111};
112
113struct vnodeop_desc vnop_compound_open_desc = {
114 0,
115 "vnop_compound_open",
116 0 | VDESC_VP0_WILLRELE,
0a7de745 117 vnop_compound_open_vp_offsets,
6d2010ae
A
118 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_vpp),
119 VDESC_NO_OFFSET,
120 VDESC_NO_OFFSET,
121 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_cnp),
122 VOPARG_OFFSETOF(struct vnop_compound_open_args, a_context),
123 NULL
124};
125
91447636 126int vnop_create_vp_offsets[] = {
0a7de745 127 VOPARG_OFFSETOF(struct vnop_create_args, a_dvp),
1c79356b
A
128 VDESC_NO_OFFSET
129};
91447636 130struct vnodeop_desc vnop_create_desc = {
1c79356b 131 0,
91447636 132 "vnop_create",
1c79356b 133 0 | VDESC_VP0_WILLRELE,
91447636
A
134 vnop_create_vp_offsets,
135 VOPARG_OFFSETOF(struct vnop_create_args, a_vpp),
1c79356b
A
136 VDESC_NO_OFFSET,
137 VDESC_NO_OFFSET,
91447636
A
138 VOPARG_OFFSETOF(struct vnop_create_args, a_cnp),
139 VOPARG_OFFSETOF(struct vnop_create_args, a_context),
2d21ac55 140 NULL
1c79356b
A
141};
142
91447636 143int vnop_whiteout_vp_offsets[] = {
0a7de745 144 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_dvp),
1c79356b
A
145 VDESC_NO_OFFSET
146};
91447636 147struct vnodeop_desc vnop_whiteout_desc = {
1c79356b 148 0,
91447636 149 "vnop_whiteout",
1c79356b 150 0 | VDESC_VP0_WILLRELE,
91447636 151 vnop_whiteout_vp_offsets,
1c79356b
A
152 VDESC_NO_OFFSET,
153 VDESC_NO_OFFSET,
154 VDESC_NO_OFFSET,
91447636
A
155 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp),
156 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context),
2d21ac55 157 NULL
1c79356b
A
158};
159
91447636 160int vnop_mknod_vp_offsets[] = {
0a7de745
A
161 VOPARG_OFFSETOF(struct vnop_mknod_args, a_dvp),
162 VDESC_NO_OFFSET
1c79356b 163};
91447636 164struct vnodeop_desc vnop_mknod_desc = {
0a7de745
A
165 0,
166 "vnop_mknod",
167 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
168 vnop_mknod_vp_offsets,
169 VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp),
170 VDESC_NO_OFFSET,
171 VDESC_NO_OFFSET,
172 VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp),
173 VOPARG_OFFSETOF(struct vnop_mknod_args, a_context),
174 NULL
1c79356b
A
175};
176
91447636 177int vnop_open_vp_offsets[] = {
0a7de745 178 VOPARG_OFFSETOF(struct vnop_open_args, a_vp),
1c79356b
A
179 VDESC_NO_OFFSET
180};
91447636
A
181struct vnodeop_desc vnop_open_desc = {
182 0,
183 "vnop_open",
1c79356b 184 0,
91447636 185 vnop_open_vp_offsets,
1c79356b
A
186 VDESC_NO_OFFSET,
187 VDESC_NO_OFFSET,
1c79356b 188 VDESC_NO_OFFSET,
1c79356b 189 VDESC_NO_OFFSET,
91447636 190 VOPARG_OFFSETOF(struct vnop_open_args, a_context),
2d21ac55 191 NULL
1c79356b
A
192};
193
91447636 194int vnop_close_vp_offsets[] = {
0a7de745 195 VOPARG_OFFSETOF(struct vnop_close_args, a_vp),
1c79356b
A
196 VDESC_NO_OFFSET
197};
91447636 198struct vnodeop_desc vnop_close_desc = {
1c79356b 199 0,
91447636 200 "vnop_close",
1c79356b 201 0,
91447636 202 vnop_close_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 211int vnop_access_vp_offsets[] = {
0a7de745 212 VOPARG_OFFSETOF(struct vnop_access_args, a_vp),
1c79356b
A
213 VDESC_NO_OFFSET
214};
91447636 215struct vnodeop_desc vnop_access_desc = {
1c79356b 216 0,
91447636 217 "vnop_access",
1c79356b 218 0,
91447636 219 vnop_access_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_close_args, a_context),
2d21ac55 225 NULL
1c79356b
A
226};
227
91447636 228int vnop_getattr_vp_offsets[] = {
0a7de745 229 VOPARG_OFFSETOF(struct vnop_getattr_args, a_vp),
1c79356b
A
230 VDESC_NO_OFFSET
231};
91447636 232struct vnodeop_desc vnop_getattr_desc = {
1c79356b 233 0,
91447636 234 "vnop_getattr",
1c79356b 235 0,
91447636 236 vnop_getattr_vp_offsets,
1c79356b 237 VDESC_NO_OFFSET,
1c79356b 238 VDESC_NO_OFFSET,
1c79356b 239 VDESC_NO_OFFSET,
1c79356b 240 VDESC_NO_OFFSET,
91447636 241 VOPARG_OFFSETOF(struct vnop_getattr_args, a_context),
2d21ac55 242 NULL
1c79356b
A
243};
244
91447636 245int vnop_setattr_vp_offsets[] = {
0a7de745 246 VOPARG_OFFSETOF(struct vnop_setattr_args, a_vp),
1c79356b
A
247 VDESC_NO_OFFSET
248};
91447636 249struct vnodeop_desc vnop_setattr_desc = {
1c79356b 250 0,
91447636 251 "vnop_setattr",
1c79356b 252 0,
91447636 253 vnop_setattr_vp_offsets,
1c79356b 254 VDESC_NO_OFFSET,
1c79356b
A
255 VDESC_NO_OFFSET,
256 VDESC_NO_OFFSET,
91447636
A
257 VDESC_NO_OFFSET,
258 VOPARG_OFFSETOF(struct vnop_setattr_args, a_context),
2d21ac55 259 NULL
1c79356b
A
260};
261
91447636 262int vnop_read_vp_offsets[] = {
0a7de745 263 VOPARG_OFFSETOF(struct vnop_read_args, a_vp),
1c79356b
A
264 VDESC_NO_OFFSET
265};
91447636 266struct vnodeop_desc vnop_read_desc = {
1c79356b 267 0,
91447636 268 "vnop_read",
1c79356b 269 0,
91447636 270 vnop_read_vp_offsets,
1c79356b 271 VDESC_NO_OFFSET,
1c79356b 272 VDESC_NO_OFFSET,
1c79356b 273 VDESC_NO_OFFSET,
1c79356b 274 VDESC_NO_OFFSET,
91447636 275 VOPARG_OFFSETOF(struct vnop_read_args, a_context),
2d21ac55 276 NULL
1c79356b
A
277};
278
91447636 279int vnop_write_vp_offsets[] = {
0a7de745 280 VOPARG_OFFSETOF(struct vnop_write_args, a_vp),
55e303ae
A
281 VDESC_NO_OFFSET
282};
91447636 283struct vnodeop_desc vnop_write_desc = {
55e303ae 284 0,
91447636 285 "vnop_write",
55e303ae 286 0,
91447636
A
287 vnop_write_vp_offsets,
288 VDESC_NO_OFFSET,
55e303ae
A
289 VDESC_NO_OFFSET,
290 VDESC_NO_OFFSET,
55e303ae 291 VDESC_NO_OFFSET,
91447636 292 VOPARG_OFFSETOF(struct vnop_write_args, a_context),
2d21ac55 293 NULL
55e303ae
A
294};
295
91447636 296int vnop_ioctl_vp_offsets[] = {
0a7de745 297 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_vp),
55e303ae
A
298 VDESC_NO_OFFSET
299};
91447636 300struct vnodeop_desc vnop_ioctl_desc = {
55e303ae 301 0,
91447636 302 "vnop_ioctl",
55e303ae 303 0,
91447636 304 vnop_ioctl_vp_offsets,
55e303ae
A
305 VDESC_NO_OFFSET,
306 VDESC_NO_OFFSET,
55e303ae 307 VDESC_NO_OFFSET,
91447636
A
308 VDESC_NO_OFFSET,
309 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context),
2d21ac55 310 NULL
55e303ae
A
311};
312
91447636 313int vnop_select_vp_offsets[] = {
0a7de745 314 VOPARG_OFFSETOF(struct vnop_select_args, a_vp),
1c79356b
A
315 VDESC_NO_OFFSET
316};
91447636 317struct vnodeop_desc vnop_select_desc = {
1c79356b 318 0,
91447636 319 "vnop_select",
1c79356b 320 0,
91447636
A
321 vnop_select_vp_offsets,
322 VDESC_NO_OFFSET,
1c79356b
A
323 VDESC_NO_OFFSET,
324 VDESC_NO_OFFSET,
325 VDESC_NO_OFFSET,
91447636 326 VOPARG_OFFSETOF(struct vnop_select_args, a_context),
2d21ac55 327 NULL
1c79356b
A
328};
329
91447636 330int vnop_exchange_vp_offsets[] = {
0a7de745
A
331 VOPARG_OFFSETOF(struct vnop_exchange_args, a_fvp),
332 VOPARG_OFFSETOF(struct vnop_exchange_args, a_tvp),
1c79356b
A
333 VDESC_NO_OFFSET
334};
91447636 335struct vnodeop_desc vnop_exchange_desc = {
1c79356b 336 0,
91447636 337 "vnop_exchange",
1c79356b 338 0,
91447636 339 vnop_exchange_vp_offsets,
1c79356b 340 VDESC_NO_OFFSET,
1c79356b 341 VDESC_NO_OFFSET,
1c79356b 342 VDESC_NO_OFFSET,
1c79356b 343 VDESC_NO_OFFSET,
91447636 344 VOPARG_OFFSETOF(struct vnop_exchange_args, a_context),
2d21ac55 345 NULL
1c79356b
A
346};
347
91447636 348int vnop_kqfilt_add_vp_offsets[] = {
0a7de745 349 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_vp),
1c79356b
A
350 VDESC_NO_OFFSET
351};
91447636 352struct vnodeop_desc vnop_kqfilt_add_desc = {
1c79356b 353 0,
91447636 354 "vnop_kqfilt_add",
1c79356b 355 0,
91447636 356 vnop_kqfilt_add_vp_offsets,
1c79356b 357 VDESC_NO_OFFSET,
1c79356b
A
358 VDESC_NO_OFFSET,
359 VDESC_NO_OFFSET,
360 VDESC_NO_OFFSET,
91447636 361 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context),
2d21ac55 362 NULL
1c79356b
A
363};
364
91447636 365int vnop_kqfilt_remove_vp_offsets[] = {
0a7de745 366 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_vp),
1c79356b
A
367 VDESC_NO_OFFSET
368};
91447636 369struct vnodeop_desc vnop_kqfilt_remove_desc = {
1c79356b 370 0,
91447636 371 "vnop_kqfilt_remove",
1c79356b 372 0,
91447636 373 vnop_kqfilt_remove_vp_offsets,
1c79356b
A
374 VDESC_NO_OFFSET,
375 VDESC_NO_OFFSET,
376 VDESC_NO_OFFSET,
1c79356b 377 VDESC_NO_OFFSET,
91447636 378 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context),
2d21ac55
A
379 NULL
380};
381
b0d623f7 382int vnop_monitor_vp_offsets[] = {
0a7de745 383 VOPARG_OFFSETOF(struct vnop_monitor_args, a_vp),
b0d623f7
A
384 VDESC_NO_OFFSET
385};
386struct vnodeop_desc vnop_monitor_desc = {
387 0,
388 "vnop_monitor",
389 0,
390 vnop_monitor_vp_offsets,
391 VDESC_NO_OFFSET,
392 VDESC_NO_OFFSET,
393 VDESC_NO_OFFSET,
394 VDESC_NO_OFFSET,
395 VOPARG_OFFSETOF(struct vnop_monitor_args, a_context),
396 NULL
397};
398
2d21ac55 399int vnop_setlabel_vp_offsets[] = {
0a7de745 400 VOPARG_OFFSETOF(struct vnop_setlabel_args, a_vp),
2d21ac55
A
401 VDESC_NO_OFFSET
402};
403struct vnodeop_desc vnop_setlabel_desc = {
404 0,
405 "vnop_setlabel",
406 0,
407 vnop_setlabel_vp_offsets,
408 VDESC_NO_OFFSET,
409 VDESC_NO_OFFSET,
410 VDESC_NO_OFFSET,
411 VDESC_NO_OFFSET,
412 VOPARG_OFFSETOF(struct vnop_setlabel_args, a_context),
1c79356b
A
413 NULL,
414};
415
91447636 416int vnop_revoke_vp_offsets[] = {
0a7de745 417 VOPARG_OFFSETOF(struct vnop_revoke_args, a_vp),
1c79356b
A
418 VDESC_NO_OFFSET
419};
91447636 420struct vnodeop_desc vnop_revoke_desc = {
1c79356b 421 0,
91447636
A
422 "vnop_revoke",
423 0,
424 vnop_revoke_vp_offsets,
1c79356b
A
425 VDESC_NO_OFFSET,
426 VDESC_NO_OFFSET,
427 VDESC_NO_OFFSET,
1c79356b 428 VDESC_NO_OFFSET,
2d21ac55
A
429 VDESC_NO_OFFSET,
430 NULL
1c79356b
A
431};
432
cb323159
A
433int vnop_mmap_check_vp_offsets[] = {
434 VOPARG_OFFSETOF(struct vnop_mmap_check_args, a_vp),
435 VDESC_NO_OFFSET
436};
437struct vnodeop_desc vnop_mmap_check_desc = {
438 0,
439 "vnop_mmap_check",
440 0,
441 vnop_mmap_check_vp_offsets,
442 VDESC_NO_OFFSET,
443 VDESC_NO_OFFSET,
444 VDESC_NO_OFFSET,
445 VDESC_NO_OFFSET,
446 VDESC_NO_OFFSET,
447 NULL
448};
91447636
A
449
450int vnop_mmap_vp_offsets[] = {
0a7de745 451 VOPARG_OFFSETOF(struct vnop_mmap_args, a_vp),
1c79356b
A
452 VDESC_NO_OFFSET
453};
91447636 454struct vnodeop_desc vnop_mmap_desc = {
1c79356b 455 0,
91447636 456 "vnop_mmap",
1c79356b 457 0,
91447636
A
458 vnop_mmap_vp_offsets,
459 VDESC_NO_OFFSET,
1c79356b 460 VDESC_NO_OFFSET,
1c79356b
A
461 VDESC_NO_OFFSET,
462 VDESC_NO_OFFSET,
2d21ac55
A
463 VDESC_NO_OFFSET,
464 NULL
1c79356b
A
465};
466
91447636 467int vnop_mnomap_vp_offsets[] = {
0a7de745 468 VOPARG_OFFSETOF(struct vnop_mnomap_args, a_vp),
1c79356b
A
469 VDESC_NO_OFFSET
470};
91447636 471struct vnodeop_desc vnop_mnomap_desc = {
1c79356b 472 0,
91447636 473 "vnop_mnomap",
1c79356b 474 0,
91447636
A
475 vnop_mnomap_vp_offsets,
476 VDESC_NO_OFFSET,
1c79356b 477 VDESC_NO_OFFSET,
1c79356b
A
478 VDESC_NO_OFFSET,
479 VDESC_NO_OFFSET,
2d21ac55
A
480 VDESC_NO_OFFSET,
481 NULL
1c79356b
A
482};
483
91447636 484int vnop_fsync_vp_offsets[] = {
0a7de745 485 VOPARG_OFFSETOF(struct vnop_fsync_args, a_vp),
1c79356b
A
486 VDESC_NO_OFFSET
487};
91447636 488struct vnodeop_desc vnop_fsync_desc = {
1c79356b 489 0,
91447636 490 "vnop_fsync",
1c79356b 491 0,
91447636
A
492 vnop_fsync_vp_offsets,
493 VDESC_NO_OFFSET,
1c79356b 494 VDESC_NO_OFFSET,
1c79356b
A
495 VDESC_NO_OFFSET,
496 VDESC_NO_OFFSET,
91447636 497 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context),
2d21ac55 498 NULL
1c79356b
A
499};
500
91447636 501int vnop_remove_vp_offsets[] = {
0a7de745
A
502 VOPARG_OFFSETOF(struct vnop_remove_args, a_dvp),
503 VOPARG_OFFSETOF(struct vnop_remove_args, a_vp),
1c79356b
A
504 VDESC_NO_OFFSET
505};
91447636 506struct vnodeop_desc vnop_remove_desc = {
1c79356b 507 0,
91447636
A
508 "vnop_remove",
509 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
510 vnop_remove_vp_offsets,
1c79356b
A
511 VDESC_NO_OFFSET,
512 VDESC_NO_OFFSET,
513 VDESC_NO_OFFSET,
91447636
A
514 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
515 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
2d21ac55 516 NULL
1c79356b
A
517};
518
6d2010ae 519int vnop_remove_extended_vp_offsets[] = {
0a7de745 520 VOPARG_OFFSETOF(struct vnop_remove_args, a_dvp),
6d2010ae
A
521 VDESC_NO_OFFSET
522};
523struct vnodeop_desc vnop_compound_remove_desc = {
524 0,
525 "vnop_compound_remove",
526 0,
527 vnop_remove_vp_offsets,
528 VOPARG_OFFSETOF(struct vnop_compound_remove_args, a_vpp),
529 VDESC_NO_OFFSET,
530 VDESC_NO_OFFSET,
531 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
532 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
533 NULL
534};
535
91447636 536int vnop_link_vp_offsets[] = {
0a7de745
A
537 VOPARG_OFFSETOF(struct vnop_link_args, a_vp),
538 VOPARG_OFFSETOF(struct vnop_link_args, a_tdvp),
1c79356b
A
539 VDESC_NO_OFFSET
540};
91447636 541struct vnodeop_desc vnop_link_desc = {
1c79356b 542 0,
91447636
A
543 "vnop_link",
544 0 | VDESC_VP1_WILLRELE,
545 vnop_link_vp_offsets,
1c79356b
A
546 VDESC_NO_OFFSET,
547 VDESC_NO_OFFSET,
1c79356b 548 VDESC_NO_OFFSET,
91447636
A
549 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp),
550 VOPARG_OFFSETOF(struct vnop_link_args, a_context),
2d21ac55 551 NULL
1c79356b
A
552};
553
91447636 554int vnop_rename_vp_offsets[] = {
0a7de745
A
555 VOPARG_OFFSETOF(struct vnop_rename_args, a_fdvp),
556 VOPARG_OFFSETOF(struct vnop_rename_args, a_fvp),
557 VOPARG_OFFSETOF(struct vnop_rename_args, a_tdvp),
558 VOPARG_OFFSETOF(struct vnop_rename_args, a_tvp),
1c79356b
A
559 VDESC_NO_OFFSET
560};
91447636 561struct vnodeop_desc vnop_rename_desc = {
1c79356b 562 0,
91447636
A
563 "vnop_rename",
564 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
565 vnop_rename_vp_offsets,
1c79356b
A
566 VDESC_NO_OFFSET,
567 VDESC_NO_OFFSET,
1c79356b 568 VDESC_NO_OFFSET,
91447636
A
569 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp),
570 VOPARG_OFFSETOF(struct vnop_rename_args, a_context),
2d21ac55 571 NULL
1c79356b
A
572};
573
39037602 574int vnop_renamex_vp_offsets[] = {
0a7de745
A
575 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fdvp),
576 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fvp),
577 VOPARG_OFFSETOF(struct vnop_renamex_args, a_tdvp),
578 VOPARG_OFFSETOF(struct vnop_renamex_args, a_tvp),
39037602
A
579 VDESC_NO_OFFSET
580};
581struct vnodeop_desc vnop_renamex_desc = {
582 0,
583 "vnop_renamex",
584 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
585 vnop_renamex_vp_offsets,
586 VDESC_NO_OFFSET,
587 VDESC_NO_OFFSET,
588 VDESC_NO_OFFSET,
589 VOPARG_OFFSETOF(struct vnop_renamex_args, a_fcnp),
590 VOPARG_OFFSETOF(struct vnop_renamex_args, a_context),
591 NULL
592};
593
6d2010ae 594int vnop_compound_rename_vp_offsets[] = {
0a7de745
A
595 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fdvp),
596 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fvpp),
597 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_tdvp),
598 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_tvpp),
6d2010ae
A
599 VDESC_NO_OFFSET
600};
601struct vnodeop_desc vnop_compound_rename_desc = {
602 0,
603 "vnop_compound_rename",
604 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
605 vnop_compound_rename_vp_offsets,
606 VDESC_NO_OFFSET,
607 VDESC_NO_OFFSET,
608 VDESC_NO_OFFSET,
609 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_fcnp),
610 VOPARG_OFFSETOF(struct vnop_compound_rename_args, a_context),
611 NULL
612};
613
91447636 614int vnop_mkdir_vp_offsets[] = {
0a7de745
A
615 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_dvp),
616 VDESC_NO_OFFSET
1c79356b 617};
91447636 618struct vnodeop_desc vnop_mkdir_desc = {
0a7de745
A
619 0,
620 "vnop_mkdir",
621 0 | VDESC_VP0_WILLRELE,
622 vnop_mkdir_vp_offsets,
623 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
624 VDESC_NO_OFFSET,
625 VDESC_NO_OFFSET,
626 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
627 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
628 NULL
1c79356b
A
629};
630
6d2010ae 631int vnop_compound_mkdir_vp_offsets[] = {
0a7de745
A
632 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_dvp),
633 VDESC_NO_OFFSET
6d2010ae
A
634};
635struct vnodeop_desc vnop_compound_mkdir_desc = {
0a7de745
A
636 0,
637 "vnop_compound_mkdir",
638 0 | VDESC_VP0_WILLRELE,
639 vnop_compound_mkdir_vp_offsets,
640 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_vpp),
641 VDESC_NO_OFFSET,
642 VDESC_NO_OFFSET,
643 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_cnp),
644 VOPARG_OFFSETOF(struct vnop_compound_mkdir_args, a_context),
645 NULL
6d2010ae
A
646};
647
648
91447636 649int vnop_rmdir_vp_offsets[] = {
0a7de745
A
650 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_dvp),
651 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_vp),
1c79356b
A
652 VDESC_NO_OFFSET
653};
91447636 654struct vnodeop_desc vnop_rmdir_desc = {
1c79356b 655 0,
91447636
A
656 "vnop_rmdir",
657 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
658 vnop_rmdir_vp_offsets,
1c79356b
A
659 VDESC_NO_OFFSET,
660 VDESC_NO_OFFSET,
1c79356b 661 VDESC_NO_OFFSET,
91447636
A
662 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
663 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
2d21ac55 664 NULL
1c79356b
A
665};
666
6d2010ae 667int vnop_compound_rmdir_vp_offsets[] = {
0a7de745 668 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_dvp),
6d2010ae
A
669 VDESC_NO_OFFSET
670};
671struct vnodeop_desc vnop_compound_rmdir_desc = {
672 0,
673 "vnop_compound_rmdir",
674 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
675 vnop_rmdir_vp_offsets,
676 VDESC_NO_OFFSET,
677 VDESC_NO_OFFSET,
678 VDESC_NO_OFFSET,
679 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_cnp),
680 VOPARG_OFFSETOF(struct vnop_compound_rmdir_args, a_context),
681 NULL
682};
683
91447636 684int vnop_symlink_vp_offsets[] = {
0a7de745
A
685 VOPARG_OFFSETOF(struct vnop_symlink_args, a_dvp),
686 VDESC_NO_OFFSET
1c79356b 687};
91447636 688struct vnodeop_desc vnop_symlink_desc = {
0a7de745
A
689 0,
690 "vnop_symlink",
691 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
692 vnop_symlink_vp_offsets,
693 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
694 VDESC_NO_OFFSET,
695 VDESC_NO_OFFSET,
696 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
697 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
698 NULL
1c79356b
A
699};
700
91447636 701int vnop_readdir_vp_offsets[] = {
0a7de745 702 VOPARG_OFFSETOF(struct vnop_readdir_args, a_vp),
1c79356b
A
703 VDESC_NO_OFFSET
704};
91447636 705struct vnodeop_desc vnop_readdir_desc = {
1c79356b 706 0,
91447636 707 "vnop_readdir",
1c79356b 708 0,
91447636 709 vnop_readdir_vp_offsets,
1c79356b
A
710 VDESC_NO_OFFSET,
711 VDESC_NO_OFFSET,
712 VDESC_NO_OFFSET,
713 VDESC_NO_OFFSET,
91447636 714 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
2d21ac55 715 NULL
1c79356b
A
716};
717
91447636 718int vnop_readdirattr_vp_offsets[] = {
0a7de745 719 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_vp),
1c79356b
A
720 VDESC_NO_OFFSET
721};
91447636 722struct vnodeop_desc vnop_readdirattr_desc = {
1c79356b 723 0,
91447636 724 "vnop_readdirattr",
1c79356b 725 0,
91447636 726 vnop_readdirattr_vp_offsets,
1c79356b
A
727 VDESC_NO_OFFSET,
728 VDESC_NO_OFFSET,
729 VDESC_NO_OFFSET,
730 VDESC_NO_OFFSET,
91447636 731 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context),
2d21ac55 732 NULL
1c79356b
A
733};
734
fe8ab488 735int vnop_getattrlistbulk_vp_offsets[] = {
0a7de745 736 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_vp),
fe8ab488
A
737 VDESC_NO_OFFSET
738};
739struct vnodeop_desc vnop_getattrlistbulk_desc = {
740 0,
741 "vnop_getattrlistbulk",
742 0,
743 vnop_getattrlistbulk_vp_offsets,
744 VDESC_NO_OFFSET,
745 VDESC_NO_OFFSET,
746 VDESC_NO_OFFSET,
747 VDESC_NO_OFFSET,
748 VOPARG_OFFSETOF(struct vnop_getattrlistbulk_args, a_context),
749 NULL
750};
751
91447636 752int vnop_readlink_vp_offsets[] = {
0a7de745 753 VOPARG_OFFSETOF(struct vnop_readlink_args, a_vp),
1c79356b
A
754 VDESC_NO_OFFSET
755};
91447636 756struct vnodeop_desc vnop_readlink_desc = {
1c79356b 757 0,
91447636 758 "vnop_readlink",
1c79356b 759 0,
91447636 760 vnop_readlink_vp_offsets,
1c79356b
A
761 VDESC_NO_OFFSET,
762 VDESC_NO_OFFSET,
763 VDESC_NO_OFFSET,
764 VDESC_NO_OFFSET,
91447636 765 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context),
2d21ac55 766 NULL
1c79356b
A
767};
768
91447636 769int vnop_inactive_vp_offsets[] = {
0a7de745 770 VOPARG_OFFSETOF(struct vnop_inactive_args, a_vp),
1c79356b
A
771 VDESC_NO_OFFSET
772};
91447636 773struct vnodeop_desc vnop_inactive_desc = {
1c79356b 774 0,
91447636 775 "vnop_inactive",
1c79356b 776 0,
91447636 777 vnop_inactive_vp_offsets,
1c79356b
A
778 VDESC_NO_OFFSET,
779 VDESC_NO_OFFSET,
780 VDESC_NO_OFFSET,
781 VDESC_NO_OFFSET,
91447636 782 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context),
2d21ac55 783 NULL
1c79356b
A
784};
785
91447636 786int vnop_reclaim_vp_offsets[] = {
0a7de745 787 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_vp),
1c79356b
A
788 VDESC_NO_OFFSET
789};
91447636 790struct vnodeop_desc vnop_reclaim_desc = {
1c79356b 791 0,
91447636 792 "vnop_reclaim",
1c79356b 793 0,
91447636 794 vnop_reclaim_vp_offsets,
1c79356b
A
795 VDESC_NO_OFFSET,
796 VDESC_NO_OFFSET,
797 VDESC_NO_OFFSET,
798 VDESC_NO_OFFSET,
91447636 799 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
2d21ac55 800 NULL
1c79356b
A
801};
802
91447636 803int vnop_pathconf_vp_offsets[] = {
0a7de745 804 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_vp),
1c79356b
A
805 VDESC_NO_OFFSET
806};
91447636 807struct vnodeop_desc vnop_pathconf_desc = {
1c79356b 808 0,
91447636 809 "vnop_pathconf",
1c79356b 810 0,
91447636
A
811 vnop_pathconf_vp_offsets,
812 VDESC_NO_OFFSET,
813 VDESC_NO_OFFSET,
1c79356b
A
814 VDESC_NO_OFFSET,
815 VDESC_NO_OFFSET,
91447636 816 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
2d21ac55 817 NULL
1c79356b
A
818};
819
91447636 820int vnop_advlock_vp_offsets[] = {
0a7de745 821 VOPARG_OFFSETOF(struct vnop_advlock_args, a_vp),
1c79356b
A
822 VDESC_NO_OFFSET
823};
91447636 824struct vnodeop_desc vnop_advlock_desc = {
1c79356b 825 0,
91447636 826 "vnop_advlock",
1c79356b 827 0,
91447636 828 vnop_advlock_vp_offsets,
1c79356b
A
829 VDESC_NO_OFFSET,
830 VDESC_NO_OFFSET,
831 VDESC_NO_OFFSET,
832 VDESC_NO_OFFSET,
91447636 833 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context),
2d21ac55 834 NULL
1c79356b
A
835};
836
91447636 837int vnop_allocate_vp_offsets[] = {
0a7de745 838 VOPARG_OFFSETOF(struct vnop_allocate_args, a_vp),
1c79356b
A
839 VDESC_NO_OFFSET
840};
91447636 841struct vnodeop_desc vnop_allocate_desc = {
1c79356b 842 0,
91447636 843 "vnop_allocate",
1c79356b 844 0,
91447636 845 vnop_allocate_vp_offsets,
1c79356b
A
846 VDESC_NO_OFFSET,
847 VDESC_NO_OFFSET,
848 VDESC_NO_OFFSET,
849 VDESC_NO_OFFSET,
91447636 850 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
2d21ac55 851 NULL
1c79356b
A
852};
853
91447636 854int vnop_pagein_vp_offsets[] = {
0a7de745 855 VOPARG_OFFSETOF(struct vnop_pagein_args, a_vp),
1c79356b
A
856 VDESC_NO_OFFSET
857};
91447636 858struct vnodeop_desc vnop_pagein_desc = {
1c79356b 859 0,
91447636 860 "vnop_pagein",
1c79356b 861 0,
91447636 862 vnop_pagein_vp_offsets,
1c79356b 863 VDESC_NO_OFFSET,
1c79356b 864 VDESC_NO_OFFSET,
1c79356b 865 VDESC_NO_OFFSET,
1c79356b 866 VDESC_NO_OFFSET,
91447636 867 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
2d21ac55 868 NULL
1c79356b
A
869};
870
91447636 871int vnop_pageout_vp_offsets[] = {
0a7de745 872 VOPARG_OFFSETOF(struct vnop_pageout_args, a_vp),
1c79356b
A
873 VDESC_NO_OFFSET
874};
91447636 875struct vnodeop_desc vnop_pageout_desc = {
1c79356b 876 0,
91447636 877 "vnop_pageout",
1c79356b 878 0,
91447636 879 vnop_pageout_vp_offsets,
1c79356b
A
880 VDESC_NO_OFFSET,
881 VDESC_NO_OFFSET,
882 VDESC_NO_OFFSET,
883 VDESC_NO_OFFSET,
91447636 884 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
2d21ac55 885 NULL
1c79356b
A
886};
887
91447636 888int vnop_searchfs_vp_offsets[] = {
0a7de745 889 VOPARG_OFFSETOF(struct vnop_searchfs_args, a_vp),
1c79356b
A
890 VDESC_NO_OFFSET
891};
91447636 892struct vnodeop_desc vnop_searchfs_desc = {
1c79356b 893 0,
91447636 894 "vnop_searchfs",
1c79356b 895 0,
91447636
A
896 vnop_searchfs_vp_offsets,
897 VDESC_NO_OFFSET,
1c79356b 898 VDESC_NO_OFFSET,
1c79356b
A
899 VDESC_NO_OFFSET,
900 VDESC_NO_OFFSET,
2d21ac55
A
901 VDESC_NO_OFFSET,
902 NULL
1c79356b
A
903};
904
91447636 905int vnop_copyfile_vp_offsets[] = {
0a7de745
A
906 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_fvp),
907 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tdvp),
908 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tvp),
1c79356b
A
909 VDESC_NO_OFFSET
910};
91447636 911struct vnodeop_desc vnop_copyfile_desc = {
cb323159
A
912 .vdesc_offset = 0,
913 .vdesc_name = "vnop_copyfile",
914 .vdesc_flags = 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
915 .vdesc_vp_offsets = vnop_copyfile_vp_offsets,
916 .vdesc_vpp_offset = VDESC_NO_OFFSET,
917 .vdesc_cred_offset = VDESC_NO_OFFSET,
918 .vdesc_proc_offset = VDESC_NO_OFFSET,
919 .vdesc_componentname_offset = VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
920 .vdesc_context_offset = VDESC_NO_OFFSET,
921 .vdesc_transports = NULL
1c79356b
A
922};
923
39037602 924int vnop_clonefile_vp_offsets[] = {
0a7de745
A
925 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_fvp),
926 VOPARG_OFFSETOF(struct vnop_clonefile_args, a_dvp),
39037602
A
927 VDESC_NO_OFFSET
928};
929struct vnodeop_desc vnop_clonefile_desc = {
cb323159
A
930 .vdesc_offset = 0,
931 .vdesc_name = "vnop_clonefile",
932 .vdesc_flags = 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VPP_WILLRELE,
933 .vdesc_vp_offsets = vnop_clonefile_vp_offsets,
934 .vdesc_vpp_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_vpp),
935 .vdesc_cred_offset = VDESC_NO_OFFSET,
936 .vdesc_proc_offset = VDESC_NO_OFFSET,
937 .vdesc_componentname_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_cnp),
938 .vdesc_context_offset = VOPARG_OFFSETOF(struct vnop_clonefile_args, a_context),
939 .vdesc_transports = NULL
39037602
A
940};
941
91447636 942int vop_getxattr_vp_offsets[] = {
0a7de745 943 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_vp),
1c79356b
A
944 VDESC_NO_OFFSET
945};
91447636 946struct vnodeop_desc vnop_getxattr_desc = {
1c79356b 947 0,
91447636 948 "vnop_getxattr",
1c79356b 949 0,
91447636 950 vop_getxattr_vp_offsets,
1c79356b 951 VDESC_NO_OFFSET,
1c79356b
A
952 VDESC_NO_OFFSET,
953 VDESC_NO_OFFSET,
91447636
A
954 VDESC_NO_OFFSET,
955 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
2d21ac55 956 NULL
1c79356b
A
957};
958
91447636 959int vop_setxattr_vp_offsets[] = {
0a7de745 960 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_vp),
1c79356b
A
961 VDESC_NO_OFFSET
962};
91447636 963struct vnodeop_desc vnop_setxattr_desc = {
1c79356b 964 0,
91447636 965 "vnop_setxattr",
1c79356b 966 0,
91447636 967 vop_setxattr_vp_offsets,
1c79356b
A
968 VDESC_NO_OFFSET,
969 VDESC_NO_OFFSET,
970 VDESC_NO_OFFSET,
971 VDESC_NO_OFFSET,
91447636 972 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context),
2d21ac55 973 NULL
1c79356b
A
974};
975
91447636 976int vop_removexattr_vp_offsets[] = {
0a7de745 977 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_vp),
1c79356b
A
978 VDESC_NO_OFFSET
979};
91447636 980struct vnodeop_desc vnop_removexattr_desc = {
1c79356b 981 0,
91447636 982 "vnop_removexattr",
1c79356b 983 0,
91447636 984 vop_removexattr_vp_offsets,
1c79356b
A
985 VDESC_NO_OFFSET,
986 VDESC_NO_OFFSET,
987 VDESC_NO_OFFSET,
988 VDESC_NO_OFFSET,
91447636 989 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
2d21ac55 990 NULL
1c79356b
A
991};
992
91447636 993int vop_listxattr_vp_offsets[] = {
0a7de745 994 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_vp),
1c79356b
A
995 VDESC_NO_OFFSET
996};
91447636 997struct vnodeop_desc vnop_listxattr_desc = {
1c79356b 998 0,
91447636
A
999 "vnop_listxattr",
1000 0,
1001 vop_listxattr_vp_offsets,
1002 VDESC_NO_OFFSET,
1c79356b
A
1003 VDESC_NO_OFFSET,
1004 VDESC_NO_OFFSET,
1005 VDESC_NO_OFFSET,
91447636 1006 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
2d21ac55 1007 NULL
1c79356b
A
1008};
1009
91447636 1010int vnop_blktooff_vp_offsets[] = {
0a7de745 1011 VOPARG_OFFSETOF(struct vnop_blktooff_args, a_vp),
1c79356b
A
1012 VDESC_NO_OFFSET
1013};
91447636 1014struct vnodeop_desc vnop_blktooff_desc = {
1c79356b 1015 0,
91447636 1016 "vnop_blktooff",
1c79356b 1017 0,
91447636 1018 vnop_blktooff_vp_offsets,
1c79356b
A
1019 VDESC_NO_OFFSET,
1020 VDESC_NO_OFFSET,
1021 VDESC_NO_OFFSET,
1022 VDESC_NO_OFFSET,
2d21ac55
A
1023 VDESC_NO_OFFSET,
1024 NULL
1c79356b
A
1025};
1026
91447636 1027int vnop_offtoblk_vp_offsets[] = {
0a7de745 1028 VOPARG_OFFSETOF(struct vnop_offtoblk_args, a_vp),
1c79356b
A
1029 VDESC_NO_OFFSET
1030};
91447636 1031struct vnodeop_desc vnop_offtoblk_desc = {
1c79356b 1032 0,
91447636 1033 "vnop_offtoblk",
1c79356b 1034 0,
91447636 1035 vnop_offtoblk_vp_offsets,
1c79356b
A
1036 VDESC_NO_OFFSET,
1037 VDESC_NO_OFFSET,
1038 VDESC_NO_OFFSET,
1039 VDESC_NO_OFFSET,
2d21ac55
A
1040 VDESC_NO_OFFSET,
1041 NULL
1c79356b
A
1042};
1043
91447636 1044int vnop_blockmap_vp_offsets[] = {
0a7de745 1045 VOPARG_OFFSETOF(struct vnop_blockmap_args, a_vp),
1c79356b
A
1046 VDESC_NO_OFFSET
1047};
91447636 1048struct vnodeop_desc vnop_blockmap_desc = {
1c79356b 1049 0,
91447636 1050 "vnop_blockmap",
1c79356b 1051 0,
91447636 1052 vnop_blockmap_vp_offsets,
1c79356b
A
1053 VDESC_NO_OFFSET,
1054 VDESC_NO_OFFSET,
1055 VDESC_NO_OFFSET,
1056 VDESC_NO_OFFSET,
2d21ac55
A
1057 VDESC_NO_OFFSET,
1058 NULL
1059};
1060
1061#if NAMEDSTREAMS
1062int vnop_getnamedstream_vp_offsets[] = {
1063 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_vp),
1064 VDESC_NO_OFFSET
1065};
1066struct vnodeop_desc vnop_getnamedstream_desc = {
1067 0,
1068 "vnop_getnamedstream",
1069 0,
1070 vnop_getnamedstream_vp_offsets,
1071 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_svpp),
1072 VDESC_NO_OFFSET,
1073 VDESC_NO_OFFSET,
1074 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_name),
1075 VOPARG_OFFSETOF(struct vnop_getnamedstream_args, a_context),
1076 NULL
1077};
1078
1079int vnop_makenamedstream_vp_offsets[] = {
1080 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_vp),
1081 VDESC_NO_OFFSET
1082};
1083struct vnodeop_desc vnop_makenamedstream_desc = {
1084 0,
1085 "vnop_makenamedstream",
1086 0, /* flags */
1087 vnop_makenamedstream_vp_offsets,
1088 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_svpp),
1089 VDESC_NO_OFFSET,
1090 VDESC_NO_OFFSET,
1091 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_name),
1092 VOPARG_OFFSETOF(struct vnop_makenamedstream_args, a_context),
1093 NULL
1094};
1095
1096int vnop_removenamedstream_vp_offsets[] = {
1097 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_vp),
1098 VDESC_NO_OFFSET
1099};
1100struct vnodeop_desc vnop_removenamedstream_desc = {
1101 0,
1102 "vnop_removenamedstream",
1103 0,
1104 vnop_removenamedstream_vp_offsets,
1105 VDESC_NO_OFFSET,
1106 VDESC_NO_OFFSET,
1107 VDESC_NO_OFFSET,
1108 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_name),
1109 VOPARG_OFFSETOF(struct vnop_removenamedstream_args, a_context),
1110 NULL
1c79356b 1111};
2d21ac55 1112#else
813fb2f6
A
1113int vnop_getnamedstream_vp_offsets[] = {
1114 VDESC_NO_OFFSET
1115};
1116struct vnodeop_desc vnop_getnamedstream_desc = {
1117 0,
1118 "vnop_getnamedstream",
1119 VDESC_DISABLED, /* flags */
1120 vnop_getnamedstream_vp_offsets,
1121 VDESC_NO_OFFSET,
1122 VDESC_NO_OFFSET,
1123 VDESC_NO_OFFSET,
1124 VDESC_NO_OFFSET,
1125 VDESC_NO_OFFSET,
1126 NULL
1127};
1128
1129int vnop_makenamedstream_vp_offsets[] = {
1130 VDESC_NO_OFFSET
1131};
1132struct vnodeop_desc vnop_makenamedstream_desc = {
1133 0,
1134 "vnop_makenamedstream",
1135 VDESC_DISABLED, /* flags */
1136 vnop_makenamedstream_vp_offsets,
1137 VDESC_NO_OFFSET,
1138 VDESC_NO_OFFSET,
1139 VDESC_NO_OFFSET,
1140 VDESC_NO_OFFSET,
1141 VDESC_NO_OFFSET,
1142 NULL
1143};
1144
1145int vnop_removenamedstream_vp_offsets[] = {
1146 VDESC_NO_OFFSET
1147};
1148struct vnodeop_desc vnop_removenamedstream_desc = {
1149 0,
1150 "vnop_removenamedstream",
1151 VDESC_DISABLED, /* flags */
1152 vnop_removenamedstream_vp_offsets,
1153 VDESC_NO_OFFSET,
1154 VDESC_NO_OFFSET,
1155 VDESC_NO_OFFSET,
1156 VDESC_NO_OFFSET,
1157 VDESC_NO_OFFSET,
1158 NULL
1159};
2d21ac55 1160#endif
1c79356b
A
1161
1162/* Special cases: */
1163
91447636 1164int vnop_strategy_vp_offsets[] = {
1c79356b
A
1165 VDESC_NO_OFFSET
1166};
91447636 1167struct vnodeop_desc vnop_strategy_desc = {
1c79356b 1168 0,
91447636 1169 "vnop_strategy",
1c79356b 1170 0,
91447636 1171 vnop_strategy_vp_offsets,
1c79356b
A
1172 VDESC_NO_OFFSET,
1173 VDESC_NO_OFFSET,
1174 VDESC_NO_OFFSET,
1175 VDESC_NO_OFFSET,
2d21ac55
A
1176 VDESC_NO_OFFSET,
1177 NULL
1c79356b
A
1178};
1179
91447636 1180int vnop_bwrite_vp_offsets[] = {
1c79356b
A
1181 VDESC_NO_OFFSET
1182};
91447636 1183struct vnodeop_desc vnop_bwrite_desc = {
1c79356b 1184 0,
91447636 1185 "vnop_bwrite",
1c79356b 1186 0,
91447636 1187 vnop_bwrite_vp_offsets,
1c79356b
A
1188 VDESC_NO_OFFSET,
1189 VDESC_NO_OFFSET,
1190 VDESC_NO_OFFSET,
1191 VDESC_NO_OFFSET,
2d21ac55
A
1192 VDESC_NO_OFFSET,
1193 NULL
1c79356b
A
1194};
1195
1196/* End of special cases. */
1197
1198struct vnodeop_desc *vfs_op_descs[] = {
0a7de745
A
1199 &vnop_default_desc, /* MUST BE FIRST */
1200 &vnop_strategy_desc, /* XXX: SPECIAL CASE */
1201 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
91447636
A
1202
1203 &vnop_lookup_desc,
1204 &vnop_create_desc,
1205 &vnop_mknod_desc,
1206 &vnop_whiteout_desc,
1207 &vnop_open_desc,
6d2010ae 1208 &vnop_compound_open_desc,
91447636
A
1209 &vnop_close_desc,
1210 &vnop_access_desc,
1211 &vnop_getattr_desc,
1212 &vnop_setattr_desc,
91447636
A
1213 &vnop_read_desc,
1214 &vnop_write_desc,
1215 &vnop_ioctl_desc,
1216 &vnop_select_desc,
1217 &vnop_exchange_desc,
1218 &vnop_kqfilt_add_desc,
1219 &vnop_kqfilt_remove_desc,
2d21ac55 1220 &vnop_setlabel_desc,
91447636 1221 &vnop_revoke_desc,
cb323159 1222 &vnop_mmap_check_desc,
91447636
A
1223 &vnop_mmap_desc,
1224 &vnop_mnomap_desc,
1225 &vnop_fsync_desc,
1226 &vnop_remove_desc,
6d2010ae 1227 &vnop_compound_remove_desc,
91447636
A
1228 &vnop_link_desc,
1229 &vnop_rename_desc,
39037602 1230 &vnop_renamex_desc,
6d2010ae 1231 &vnop_compound_rename_desc,
91447636 1232 &vnop_mkdir_desc,
6d2010ae 1233 &vnop_compound_mkdir_desc,
91447636 1234 &vnop_rmdir_desc,
6d2010ae 1235 &vnop_compound_rmdir_desc,
91447636
A
1236 &vnop_symlink_desc,
1237 &vnop_readdir_desc,
1238 &vnop_readdirattr_desc,
fe8ab488 1239 &vnop_getattrlistbulk_desc,
91447636
A
1240 &vnop_readlink_desc,
1241 &vnop_inactive_desc,
1242 &vnop_reclaim_desc,
1243 &vnop_pathconf_desc,
1244 &vnop_advlock_desc,
1245 &vnop_allocate_desc,
1246 &vnop_pagein_desc,
1247 &vnop_pageout_desc,
91447636
A
1248 &vnop_searchfs_desc,
1249 &vnop_copyfile_desc,
39037602 1250 &vnop_clonefile_desc,
91447636
A
1251 &vnop_getxattr_desc,
1252 &vnop_setxattr_desc,
1253 &vnop_removexattr_desc,
1254 &vnop_listxattr_desc,
1255 &vnop_blktooff_desc,
1256 &vnop_offtoblk_desc,
1257 &vnop_blockmap_desc,
b0d623f7 1258 &vnop_monitor_desc,
813fb2f6
A
1259#if !defined(NAMEDSTREAMS)
1260 /*
1261 * We define the named streams ops descriptors as we _always_ have to
1262 * have symbols with their names, and as such we really really need
1263 * those symbols to be valid operations descriptors. However if
1264 * named streams support is not enabled, we flag these descriptors
1265 * as ignored.
1266 */
1267#endif
2d21ac55
A
1268 &vnop_getnamedstream_desc,
1269 &vnop_makenamedstream_desc,
1270 &vnop_removenamedstream_desc,
1c79356b
A
1271 NULL
1272};