]> git.saurik.com Git - apple/xnu.git/blame - bsd/vfs/vnode_if.c
xnu-792.13.8.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 *
8ad349bb 5 * @APPLE_LICENSE_OSREFERENCE_HEADER_START@
1c79356b 6 *
8ad349bb
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
11 * License may not be used to create, or enable the creation or
12 * redistribution of, unlawful or unlicensed copies of an Apple operating
13 * system, or to circumvent, violate, or enable the circumvention or
14 * violation of, any terms of an Apple operating system software license
15 * agreement.
16 *
17 * Please obtain a copy of the License at
18 * http://www.opensource.apple.com/apsl/ and read it before using this
19 * file.
20 *
21 * The Original Code and all software distributed under the License are
22 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
23 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
24 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
25 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
26 * Please see the License for the specific language governing rights and
27 * limitations under the License.
28 *
29 * @APPLE_LICENSE_OSREFERENCE_HEADER_END@
1c79356b
A
30 */
31/*
32 * Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved
33 * Copyright (c) 1992, 1993, 1994, 1995
34 * The Regents of the University of California. All rights reserved.
35 *
36 * Redistribution and use in source and binary forms, with or without
37 * modification, are permitted provided that the following conditions
38 * are met:
39 * 1. Redistributions of source code must retain the above copyright
40 * notice, this list of conditions and the following disclaimer.
41 * 2. Redistributions in binary form must reproduce the above copyright
42 * notice, this list of conditions and the following disclaimer in the
43 * documentation and/or other materials provided with the distribution.
44 * 3. All advertising materials mentioning features or use of this software
45 * must display the following acknowledgement:
46 * This product includes software developed by the University of
47 * California, Berkeley and its contributors.
48 * 4. Neither the name of the University nor the names of its contributors
49 * may be used to endorse or promote products derived from this software
50 * without specific prior written permission.
51 *
52 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS AND
53 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
54 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
55 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
56 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
57 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
58 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
59 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
60 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
61 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
62 * SUCH DAMAGE.
63 */
64
65
66/*
67 * Warning: This file is generated automatically.
68 * (Modifications made here may easily be lost!)
69 *
70 * Created by the script:
71 * @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95
72 */
73
74
75#include <sys/param.h>
91447636 76#include <sys/mount_internal.h>
1c79356b 77#include <sys/vm.h>
91447636 78#include <sys/vnode_internal.h>
1c79356b 79
91447636 80struct vnodeop_desc vnop_default_desc = {
1c79356b
A
81 0,
82 "default",
83 0,
84 NULL,
85 VDESC_NO_OFFSET,
86 VDESC_NO_OFFSET,
87 VDESC_NO_OFFSET,
88 VDESC_NO_OFFSET,
89 NULL,
90};
91
92
91447636
A
93int vnop_lookup_vp_offsets[] = {
94 VOPARG_OFFSETOF(struct vnop_lookup_args,a_dvp),
1c79356b
A
95 VDESC_NO_OFFSET
96};
91447636 97struct vnodeop_desc vnop_lookup_desc = {
1c79356b 98 0,
91447636 99 "vnop_lookup",
1c79356b 100 0,
91447636
A
101 vnop_lookup_vp_offsets,
102 VOPARG_OFFSETOF(struct vnop_lookup_args, a_vpp),
1c79356b
A
103 VDESC_NO_OFFSET,
104 VDESC_NO_OFFSET,
91447636
A
105 VOPARG_OFFSETOF(struct vnop_lookup_args, a_cnp),
106 VOPARG_OFFSETOF(struct vnop_lookup_args, a_context),
1c79356b
A
107 NULL,
108};
109
91447636
A
110int vnop_create_vp_offsets[] = {
111 VOPARG_OFFSETOF(struct vnop_create_args,a_dvp),
1c79356b
A
112 VDESC_NO_OFFSET
113};
91447636 114struct vnodeop_desc vnop_create_desc = {
1c79356b 115 0,
91447636 116 "vnop_create",
1c79356b 117 0 | VDESC_VP0_WILLRELE,
91447636
A
118 vnop_create_vp_offsets,
119 VOPARG_OFFSETOF(struct vnop_create_args, a_vpp),
1c79356b
A
120 VDESC_NO_OFFSET,
121 VDESC_NO_OFFSET,
91447636
A
122 VOPARG_OFFSETOF(struct vnop_create_args, a_cnp),
123 VOPARG_OFFSETOF(struct vnop_create_args, a_context),
1c79356b
A
124 NULL,
125};
126
91447636
A
127int vnop_whiteout_vp_offsets[] = {
128 VOPARG_OFFSETOF(struct vnop_whiteout_args,a_dvp),
1c79356b
A
129 VDESC_NO_OFFSET
130};
91447636 131struct vnodeop_desc vnop_whiteout_desc = {
1c79356b 132 0,
91447636 133 "vnop_whiteout",
1c79356b 134 0 | VDESC_VP0_WILLRELE,
91447636 135 vnop_whiteout_vp_offsets,
1c79356b
A
136 VDESC_NO_OFFSET,
137 VDESC_NO_OFFSET,
138 VDESC_NO_OFFSET,
91447636
A
139 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_cnp),
140 VOPARG_OFFSETOF(struct vnop_whiteout_args, a_context),
1c79356b
A
141 NULL,
142};
143
91447636
A
144int vnop_mknod_vp_offsets[] = {
145 VOPARG_OFFSETOF(struct vnop_mknod_args,a_dvp),
146 VDESC_NO_OFFSET
1c79356b 147};
91447636
A
148struct vnodeop_desc vnop_mknod_desc = {
149 0,
150 "vnop_mknod",
151 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
152 vnop_mknod_vp_offsets,
153 VOPARG_OFFSETOF(struct vnop_mknod_args, a_vpp),
154 VDESC_NO_OFFSET,
155 VDESC_NO_OFFSET,
156 VOPARG_OFFSETOF(struct vnop_mknod_args, a_cnp),
157 VOPARG_OFFSETOF(struct vnop_mknod_args, a_context),
158 NULL,
1c79356b
A
159};
160
91447636
A
161int vnop_open_vp_offsets[] = {
162 VOPARG_OFFSETOF(struct vnop_open_args,a_vp),
1c79356b
A
163 VDESC_NO_OFFSET
164};
91447636
A
165struct vnodeop_desc vnop_open_desc = {
166 0,
167 "vnop_open",
1c79356b 168 0,
91447636 169 vnop_open_vp_offsets,
1c79356b
A
170 VDESC_NO_OFFSET,
171 VDESC_NO_OFFSET,
1c79356b 172 VDESC_NO_OFFSET,
1c79356b 173 VDESC_NO_OFFSET,
91447636 174 VOPARG_OFFSETOF(struct vnop_open_args, a_context),
1c79356b
A
175 NULL,
176};
177
91447636
A
178int vnop_close_vp_offsets[] = {
179 VOPARG_OFFSETOF(struct vnop_close_args,a_vp),
1c79356b
A
180 VDESC_NO_OFFSET
181};
91447636 182struct vnodeop_desc vnop_close_desc = {
1c79356b 183 0,
91447636 184 "vnop_close",
1c79356b 185 0,
91447636 186 vnop_close_vp_offsets,
1c79356b 187 VDESC_NO_OFFSET,
1c79356b 188 VDESC_NO_OFFSET,
1c79356b 189 VDESC_NO_OFFSET,
1c79356b 190 VDESC_NO_OFFSET,
91447636 191 VOPARG_OFFSETOF(struct vnop_close_args, a_context),
1c79356b
A
192 NULL,
193};
194
91447636
A
195int vnop_access_vp_offsets[] = {
196 VOPARG_OFFSETOF(struct vnop_access_args,a_vp),
1c79356b
A
197 VDESC_NO_OFFSET
198};
91447636 199struct vnodeop_desc vnop_access_desc = {
1c79356b 200 0,
91447636 201 "vnop_access",
1c79356b 202 0,
91447636 203 vnop_access_vp_offsets,
1c79356b 204 VDESC_NO_OFFSET,
1c79356b 205 VDESC_NO_OFFSET,
1c79356b 206 VDESC_NO_OFFSET,
1c79356b 207 VDESC_NO_OFFSET,
91447636 208 VOPARG_OFFSETOF(struct vnop_close_args, a_context),
1c79356b
A
209 NULL,
210};
211
91447636
A
212int vnop_getattr_vp_offsets[] = {
213 VOPARG_OFFSETOF(struct vnop_getattr_args,a_vp),
1c79356b
A
214 VDESC_NO_OFFSET
215};
91447636 216struct vnodeop_desc vnop_getattr_desc = {
1c79356b 217 0,
91447636 218 "vnop_getattr",
1c79356b 219 0,
91447636 220 vnop_getattr_vp_offsets,
1c79356b 221 VDESC_NO_OFFSET,
1c79356b 222 VDESC_NO_OFFSET,
1c79356b 223 VDESC_NO_OFFSET,
1c79356b 224 VDESC_NO_OFFSET,
91447636 225 VOPARG_OFFSETOF(struct vnop_getattr_args, a_context),
1c79356b
A
226 NULL,
227};
228
91447636
A
229int vnop_setattr_vp_offsets[] = {
230 VOPARG_OFFSETOF(struct vnop_setattr_args,a_vp),
1c79356b
A
231 VDESC_NO_OFFSET
232};
91447636 233struct vnodeop_desc vnop_setattr_desc = {
1c79356b 234 0,
91447636 235 "vnop_setattr",
1c79356b 236 0,
91447636 237 vnop_setattr_vp_offsets,
1c79356b 238 VDESC_NO_OFFSET,
1c79356b
A
239 VDESC_NO_OFFSET,
240 VDESC_NO_OFFSET,
91447636
A
241 VDESC_NO_OFFSET,
242 VOPARG_OFFSETOF(struct vnop_setattr_args, a_context),
1c79356b
A
243 NULL,
244};
245
91447636
A
246int vnop_getattrlist_vp_offsets[] = {
247 VOPARG_OFFSETOF(struct vnop_getattrlist_args,a_vp),
1c79356b
A
248 VDESC_NO_OFFSET
249};
91447636 250struct vnodeop_desc vnop_getattrlist_desc = {
1c79356b 251 0,
91447636 252 "vnop_getattrlist",
1c79356b 253 0,
91447636
A
254 vnop_getattrlist_vp_offsets,
255 VDESC_NO_OFFSET,
1c79356b 256 VDESC_NO_OFFSET,
1c79356b
A
257 VDESC_NO_OFFSET,
258 VDESC_NO_OFFSET,
91447636 259 VOPARG_OFFSETOF(struct vnop_getattrlist_args, a_context),
1c79356b
A
260 NULL,
261};
262
91447636
A
263int vnop_setattrlist_vp_offsets[] = {
264 VOPARG_OFFSETOF(struct vnop_setattrlist_args,a_vp),
1c79356b
A
265 VDESC_NO_OFFSET
266};
91447636 267struct vnodeop_desc vnop_setattrlist_desc = {
1c79356b 268 0,
91447636 269 "vnop_setattrlist",
1c79356b 270 0,
91447636 271 vnop_setattrlist_vp_offsets,
1c79356b 272 VDESC_NO_OFFSET,
1c79356b 273 VDESC_NO_OFFSET,
1c79356b 274 VDESC_NO_OFFSET,
1c79356b 275 VDESC_NO_OFFSET,
91447636 276 VOPARG_OFFSETOF(struct vnop_setattrlist_args, a_context),
1c79356b
A
277 NULL,
278};
279
91447636
A
280int vnop_read_vp_offsets[] = {
281 VOPARG_OFFSETOF(struct vnop_read_args,a_vp),
1c79356b
A
282 VDESC_NO_OFFSET
283};
91447636 284struct vnodeop_desc vnop_read_desc = {
1c79356b 285 0,
91447636 286 "vnop_read",
1c79356b 287 0,
91447636 288 vnop_read_vp_offsets,
1c79356b 289 VDESC_NO_OFFSET,
1c79356b 290 VDESC_NO_OFFSET,
1c79356b 291 VDESC_NO_OFFSET,
1c79356b 292 VDESC_NO_OFFSET,
91447636 293 VOPARG_OFFSETOF(struct vnop_read_args, a_context),
1c79356b
A
294 NULL,
295};
296
91447636
A
297int vnop_write_vp_offsets[] = {
298 VOPARG_OFFSETOF(struct vnop_write_args,a_vp),
55e303ae
A
299 VDESC_NO_OFFSET
300};
91447636 301struct vnodeop_desc vnop_write_desc = {
55e303ae 302 0,
91447636 303 "vnop_write",
55e303ae 304 0,
91447636
A
305 vnop_write_vp_offsets,
306 VDESC_NO_OFFSET,
55e303ae
A
307 VDESC_NO_OFFSET,
308 VDESC_NO_OFFSET,
55e303ae 309 VDESC_NO_OFFSET,
91447636 310 VOPARG_OFFSETOF(struct vnop_write_args, a_context),
55e303ae
A
311 NULL,
312};
313
91447636
A
314int vnop_ioctl_vp_offsets[] = {
315 VOPARG_OFFSETOF(struct vnop_ioctl_args,a_vp),
55e303ae
A
316 VDESC_NO_OFFSET
317};
91447636 318struct vnodeop_desc vnop_ioctl_desc = {
55e303ae 319 0,
91447636 320 "vnop_ioctl",
55e303ae 321 0,
91447636 322 vnop_ioctl_vp_offsets,
55e303ae
A
323 VDESC_NO_OFFSET,
324 VDESC_NO_OFFSET,
55e303ae 325 VDESC_NO_OFFSET,
91447636
A
326 VDESC_NO_OFFSET,
327 VOPARG_OFFSETOF(struct vnop_ioctl_args, a_context),
55e303ae
A
328 NULL,
329};
330
91447636
A
331int vnop_select_vp_offsets[] = {
332 VOPARG_OFFSETOF(struct vnop_select_args,a_vp),
1c79356b
A
333 VDESC_NO_OFFSET
334};
91447636 335struct vnodeop_desc vnop_select_desc = {
1c79356b 336 0,
91447636 337 "vnop_select",
1c79356b 338 0,
91447636
A
339 vnop_select_vp_offsets,
340 VDESC_NO_OFFSET,
1c79356b
A
341 VDESC_NO_OFFSET,
342 VDESC_NO_OFFSET,
343 VDESC_NO_OFFSET,
91447636 344 VOPARG_OFFSETOF(struct vnop_select_args, a_context),
1c79356b
A
345 VDESC_NO_OFFSET,
346 NULL,
347};
348
91447636
A
349int vnop_exchange_vp_offsets[] = {
350 VOPARG_OFFSETOF(struct vnop_exchange_args,a_fvp),
351 VOPARG_OFFSETOF(struct vnop_exchange_args,a_tvp),
1c79356b
A
352 VDESC_NO_OFFSET
353};
91447636 354struct vnodeop_desc vnop_exchange_desc = {
1c79356b 355 0,
91447636 356 "vnop_exchange",
1c79356b 357 0,
91447636 358 vnop_exchange_vp_offsets,
1c79356b 359 VDESC_NO_OFFSET,
1c79356b 360 VDESC_NO_OFFSET,
1c79356b 361 VDESC_NO_OFFSET,
1c79356b 362 VDESC_NO_OFFSET,
91447636 363 VOPARG_OFFSETOF(struct vnop_exchange_args, a_context),
1c79356b
A
364 NULL,
365};
366
91447636
A
367int vnop_kqfilt_add_vp_offsets[] = {
368 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args,a_vp),
1c79356b
A
369 VDESC_NO_OFFSET
370};
91447636 371struct vnodeop_desc vnop_kqfilt_add_desc = {
1c79356b 372 0,
91447636 373 "vnop_kqfilt_add",
1c79356b 374 0,
91447636 375 vnop_kqfilt_add_vp_offsets,
1c79356b 376 VDESC_NO_OFFSET,
1c79356b
A
377 VDESC_NO_OFFSET,
378 VDESC_NO_OFFSET,
379 VDESC_NO_OFFSET,
91447636 380 VOPARG_OFFSETOF(struct vnop_kqfilt_add_args, a_context),
1c79356b
A
381 NULL,
382};
383
91447636
A
384int vnop_kqfilt_remove_vp_offsets[] = {
385 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args,a_vp),
1c79356b
A
386 VDESC_NO_OFFSET
387};
91447636 388struct vnodeop_desc vnop_kqfilt_remove_desc = {
1c79356b 389 0,
91447636 390 "vnop_kqfilt_remove",
1c79356b 391 0,
91447636 392 vnop_kqfilt_remove_vp_offsets,
1c79356b
A
393 VDESC_NO_OFFSET,
394 VDESC_NO_OFFSET,
395 VDESC_NO_OFFSET,
1c79356b 396 VDESC_NO_OFFSET,
91447636 397 VOPARG_OFFSETOF(struct vnop_kqfilt_remove_args, a_context),
1c79356b
A
398 NULL,
399};
400
91447636
A
401int vnop_revoke_vp_offsets[] = {
402 VOPARG_OFFSETOF(struct vnop_revoke_args,a_vp),
1c79356b
A
403 VDESC_NO_OFFSET
404};
91447636 405struct vnodeop_desc vnop_revoke_desc = {
1c79356b 406 0,
91447636
A
407 "vnop_revoke",
408 0,
409 vnop_revoke_vp_offsets,
1c79356b
A
410 VDESC_NO_OFFSET,
411 VDESC_NO_OFFSET,
412 VDESC_NO_OFFSET,
1c79356b 413 VDESC_NO_OFFSET,
1c79356b
A
414 NULL,
415};
416
91447636
A
417
418int vnop_mmap_vp_offsets[] = {
419 VOPARG_OFFSETOF(struct vnop_mmap_args,a_vp),
1c79356b
A
420 VDESC_NO_OFFSET
421};
91447636 422struct vnodeop_desc vnop_mmap_desc = {
1c79356b 423 0,
91447636 424 "vnop_mmap",
1c79356b 425 0,
91447636
A
426 vnop_mmap_vp_offsets,
427 VDESC_NO_OFFSET,
1c79356b 428 VDESC_NO_OFFSET,
1c79356b
A
429 VDESC_NO_OFFSET,
430 VDESC_NO_OFFSET,
431 NULL,
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,
448 NULL,
449};
450
91447636
A
451
452int vnop_fsync_vp_offsets[] = {
453 VOPARG_OFFSETOF(struct vnop_fsync_args,a_vp),
1c79356b
A
454 VDESC_NO_OFFSET
455};
91447636 456struct vnodeop_desc vnop_fsync_desc = {
1c79356b 457 0,
91447636 458 "vnop_fsync",
1c79356b 459 0,
91447636
A
460 vnop_fsync_vp_offsets,
461 VDESC_NO_OFFSET,
1c79356b 462 VDESC_NO_OFFSET,
1c79356b
A
463 VDESC_NO_OFFSET,
464 VDESC_NO_OFFSET,
91447636 465 VOPARG_OFFSETOF(struct vnop_fsync_args, a_context),
1c79356b
A
466 NULL,
467};
468
91447636
A
469int vnop_remove_vp_offsets[] = {
470 VOPARG_OFFSETOF(struct vnop_remove_args,a_dvp),
471 VOPARG_OFFSETOF(struct vnop_remove_args,a_vp),
1c79356b
A
472 VDESC_NO_OFFSET
473};
91447636 474struct vnodeop_desc vnop_remove_desc = {
1c79356b 475 0,
91447636
A
476 "vnop_remove",
477 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
478 vnop_remove_vp_offsets,
1c79356b
A
479 VDESC_NO_OFFSET,
480 VDESC_NO_OFFSET,
481 VDESC_NO_OFFSET,
91447636
A
482 VOPARG_OFFSETOF(struct vnop_remove_args, a_cnp),
483 VOPARG_OFFSETOF(struct vnop_remove_args, a_context),
1c79356b
A
484 NULL,
485};
486
91447636
A
487int vnop_link_vp_offsets[] = {
488 VOPARG_OFFSETOF(struct vnop_link_args,a_vp),
489 VOPARG_OFFSETOF(struct vnop_link_args,a_tdvp),
1c79356b
A
490 VDESC_NO_OFFSET
491};
91447636 492struct vnodeop_desc vnop_link_desc = {
1c79356b 493 0,
91447636
A
494 "vnop_link",
495 0 | VDESC_VP1_WILLRELE,
496 vnop_link_vp_offsets,
1c79356b
A
497 VDESC_NO_OFFSET,
498 VDESC_NO_OFFSET,
1c79356b 499 VDESC_NO_OFFSET,
91447636
A
500 VOPARG_OFFSETOF(struct vnop_link_args, a_cnp),
501 VOPARG_OFFSETOF(struct vnop_link_args, a_context),
1c79356b
A
502 NULL,
503};
504
91447636
A
505int vnop_rename_vp_offsets[] = {
506 VOPARG_OFFSETOF(struct vnop_rename_args,a_fdvp),
507 VOPARG_OFFSETOF(struct vnop_rename_args,a_fvp),
508 VOPARG_OFFSETOF(struct vnop_rename_args,a_tdvp),
509 VOPARG_OFFSETOF(struct vnop_rename_args,a_tvp),
1c79356b
A
510 VDESC_NO_OFFSET
511};
91447636 512struct vnodeop_desc vnop_rename_desc = {
1c79356b 513 0,
91447636
A
514 "vnop_rename",
515 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE | VDESC_VP3_WILLRELE,
516 vnop_rename_vp_offsets,
1c79356b
A
517 VDESC_NO_OFFSET,
518 VDESC_NO_OFFSET,
1c79356b 519 VDESC_NO_OFFSET,
91447636
A
520 VOPARG_OFFSETOF(struct vnop_rename_args, a_fcnp),
521 VOPARG_OFFSETOF(struct vnop_rename_args, a_context),
1c79356b
A
522 NULL,
523};
524
91447636
A
525int vnop_mkdir_vp_offsets[] = {
526 VOPARG_OFFSETOF(struct vnop_mkdir_args,a_dvp),
527 VDESC_NO_OFFSET
1c79356b 528};
91447636
A
529struct vnodeop_desc vnop_mkdir_desc = {
530 0,
531 "vnop_mkdir",
532 0 | VDESC_VP0_WILLRELE,
533 vnop_mkdir_vp_offsets,
534 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_vpp),
535 VDESC_NO_OFFSET,
536 VDESC_NO_OFFSET,
537 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_cnp),
538 VOPARG_OFFSETOF(struct vnop_mkdir_args, a_context),
539 NULL,
1c79356b
A
540};
541
91447636
A
542int vnop_rmdir_vp_offsets[] = {
543 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_dvp),
544 VOPARG_OFFSETOF(struct vnop_rmdir_args,a_vp),
1c79356b
A
545 VDESC_NO_OFFSET
546};
91447636 547struct vnodeop_desc vnop_rmdir_desc = {
1c79356b 548 0,
91447636
A
549 "vnop_rmdir",
550 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE,
551 vnop_rmdir_vp_offsets,
1c79356b
A
552 VDESC_NO_OFFSET,
553 VDESC_NO_OFFSET,
1c79356b 554 VDESC_NO_OFFSET,
91447636
A
555 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_cnp),
556 VOPARG_OFFSETOF(struct vnop_rmdir_args, a_context),
1c79356b
A
557 NULL,
558};
559
91447636
A
560int vnop_symlink_vp_offsets[] = {
561 VOPARG_OFFSETOF(struct vnop_symlink_args,a_dvp),
562 VDESC_NO_OFFSET
1c79356b 563};
91447636
A
564struct vnodeop_desc vnop_symlink_desc = {
565 0,
566 "vnop_symlink",
567 0 | VDESC_VP0_WILLRELE | VDESC_VPP_WILLRELE,
568 vnop_symlink_vp_offsets,
569 VOPARG_OFFSETOF(struct vnop_symlink_args, a_vpp),
570 VDESC_NO_OFFSET,
571 VDESC_NO_OFFSET,
572 VOPARG_OFFSETOF(struct vnop_symlink_args, a_cnp),
573 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
574 NULL,
1c79356b
A
575};
576
91447636
A
577int vnop_readdir_vp_offsets[] = {
578 VOPARG_OFFSETOF(struct vnop_readdir_args,a_vp),
1c79356b
A
579 VDESC_NO_OFFSET
580};
91447636 581struct vnodeop_desc vnop_readdir_desc = {
1c79356b 582 0,
91447636 583 "vnop_readdir",
1c79356b 584 0,
91447636 585 vnop_readdir_vp_offsets,
1c79356b
A
586 VDESC_NO_OFFSET,
587 VDESC_NO_OFFSET,
588 VDESC_NO_OFFSET,
589 VDESC_NO_OFFSET,
91447636 590 VOPARG_OFFSETOF(struct vnop_symlink_args, a_context),
1c79356b
A
591 NULL,
592};
593
91447636
A
594int vnop_readdirattr_vp_offsets[] = {
595 VOPARG_OFFSETOF(struct vnop_readdirattr_args,a_vp),
1c79356b
A
596 VDESC_NO_OFFSET
597};
91447636 598struct vnodeop_desc vnop_readdirattr_desc = {
1c79356b 599 0,
91447636 600 "vnop_readdirattr",
1c79356b 601 0,
91447636 602 vnop_readdirattr_vp_offsets,
1c79356b
A
603 VDESC_NO_OFFSET,
604 VDESC_NO_OFFSET,
605 VDESC_NO_OFFSET,
606 VDESC_NO_OFFSET,
91447636 607 VOPARG_OFFSETOF(struct vnop_readdirattr_args, a_context),
1c79356b
A
608 NULL,
609};
610
91447636
A
611int vnop_readlink_vp_offsets[] = {
612 VOPARG_OFFSETOF(struct vnop_readlink_args,a_vp),
1c79356b
A
613 VDESC_NO_OFFSET
614};
91447636 615struct vnodeop_desc vnop_readlink_desc = {
1c79356b 616 0,
91447636 617 "vnop_readlink",
1c79356b 618 0,
91447636 619 vnop_readlink_vp_offsets,
1c79356b
A
620 VDESC_NO_OFFSET,
621 VDESC_NO_OFFSET,
622 VDESC_NO_OFFSET,
623 VDESC_NO_OFFSET,
91447636 624 VOPARG_OFFSETOF(struct vnop_readlink_args, a_context),
1c79356b
A
625 NULL,
626};
627
91447636
A
628int vnop_inactive_vp_offsets[] = {
629 VOPARG_OFFSETOF(struct vnop_inactive_args,a_vp),
1c79356b
A
630 VDESC_NO_OFFSET
631};
91447636 632struct vnodeop_desc vnop_inactive_desc = {
1c79356b 633 0,
91447636 634 "vnop_inactive",
1c79356b 635 0,
91447636 636 vnop_inactive_vp_offsets,
1c79356b
A
637 VDESC_NO_OFFSET,
638 VDESC_NO_OFFSET,
639 VDESC_NO_OFFSET,
640 VDESC_NO_OFFSET,
91447636 641 VOPARG_OFFSETOF(struct vnop_inactive_args, a_context),
1c79356b
A
642 NULL,
643};
644
91447636
A
645int vnop_reclaim_vp_offsets[] = {
646 VOPARG_OFFSETOF(struct vnop_reclaim_args,a_vp),
1c79356b
A
647 VDESC_NO_OFFSET
648};
91447636 649struct vnodeop_desc vnop_reclaim_desc = {
1c79356b 650 0,
91447636 651 "vnop_reclaim",
1c79356b 652 0,
91447636 653 vnop_reclaim_vp_offsets,
1c79356b
A
654 VDESC_NO_OFFSET,
655 VDESC_NO_OFFSET,
656 VDESC_NO_OFFSET,
657 VDESC_NO_OFFSET,
91447636 658 VOPARG_OFFSETOF(struct vnop_reclaim_args, a_context),
1c79356b
A
659 NULL,
660};
661
91447636
A
662int vnop_pathconf_vp_offsets[] = {
663 VOPARG_OFFSETOF(struct vnop_pathconf_args,a_vp),
1c79356b
A
664 VDESC_NO_OFFSET
665};
91447636 666struct vnodeop_desc vnop_pathconf_desc = {
1c79356b 667 0,
91447636 668 "vnop_pathconf",
1c79356b 669 0,
91447636
A
670 vnop_pathconf_vp_offsets,
671 VDESC_NO_OFFSET,
672 VDESC_NO_OFFSET,
1c79356b
A
673 VDESC_NO_OFFSET,
674 VDESC_NO_OFFSET,
91447636 675 VOPARG_OFFSETOF(struct vnop_pathconf_args, a_context),
1c79356b
A
676 NULL,
677};
678
91447636
A
679int vnop_advlock_vp_offsets[] = {
680 VOPARG_OFFSETOF(struct vnop_advlock_args,a_vp),
1c79356b
A
681 VDESC_NO_OFFSET
682};
91447636 683struct vnodeop_desc vnop_advlock_desc = {
1c79356b 684 0,
91447636 685 "vnop_advlock",
1c79356b 686 0,
91447636 687 vnop_advlock_vp_offsets,
1c79356b
A
688 VDESC_NO_OFFSET,
689 VDESC_NO_OFFSET,
690 VDESC_NO_OFFSET,
691 VDESC_NO_OFFSET,
91447636 692 VOPARG_OFFSETOF(struct vnop_advlock_args, a_context),
1c79356b
A
693 NULL,
694};
695
91447636
A
696int vnop_allocate_vp_offsets[] = {
697 VOPARG_OFFSETOF(struct vnop_allocate_args,a_vp),
1c79356b
A
698 VDESC_NO_OFFSET
699};
91447636 700struct vnodeop_desc vnop_allocate_desc = {
1c79356b 701 0,
91447636 702 "vnop_allocate",
1c79356b 703 0,
91447636 704 vnop_allocate_vp_offsets,
1c79356b
A
705 VDESC_NO_OFFSET,
706 VDESC_NO_OFFSET,
707 VDESC_NO_OFFSET,
708 VDESC_NO_OFFSET,
91447636 709 VOPARG_OFFSETOF(struct vnop_allocate_args, a_context),
1c79356b
A
710 NULL,
711};
712
91447636
A
713int vnop_pagein_vp_offsets[] = {
714 VOPARG_OFFSETOF(struct vnop_pagein_args,a_vp),
1c79356b
A
715 VDESC_NO_OFFSET
716};
91447636 717struct vnodeop_desc vnop_pagein_desc = {
1c79356b 718 0,
91447636 719 "vnop_pagein",
1c79356b 720 0,
91447636 721 vnop_pagein_vp_offsets,
1c79356b 722 VDESC_NO_OFFSET,
1c79356b 723 VDESC_NO_OFFSET,
1c79356b 724 VDESC_NO_OFFSET,
1c79356b 725 VDESC_NO_OFFSET,
91447636 726 VOPARG_OFFSETOF(struct vnop_pagein_args, a_context),
1c79356b
A
727 NULL,
728};
729
91447636
A
730int vnop_pageout_vp_offsets[] = {
731 VOPARG_OFFSETOF(struct vnop_pageout_args,a_vp),
1c79356b
A
732 VDESC_NO_OFFSET
733};
91447636 734struct vnodeop_desc vnop_pageout_desc = {
1c79356b 735 0,
91447636 736 "vnop_pageout",
1c79356b 737 0,
91447636 738 vnop_pageout_vp_offsets,
1c79356b
A
739 VDESC_NO_OFFSET,
740 VDESC_NO_OFFSET,
741 VDESC_NO_OFFSET,
742 VDESC_NO_OFFSET,
91447636 743 VOPARG_OFFSETOF(struct vnop_pageout_args, a_context),
1c79356b
A
744 NULL,
745};
746
91447636
A
747int vnop_searchfs_vp_offsets[] = {
748 VOPARG_OFFSETOF(struct vnop_searchfs_args,a_vp),
1c79356b
A
749 VDESC_NO_OFFSET
750};
91447636 751struct vnodeop_desc vnop_searchfs_desc = {
1c79356b 752 0,
91447636 753 "vnop_searchfs",
1c79356b 754 0,
91447636
A
755 vnop_searchfs_vp_offsets,
756 VDESC_NO_OFFSET,
1c79356b 757 VDESC_NO_OFFSET,
1c79356b
A
758 VDESC_NO_OFFSET,
759 VDESC_NO_OFFSET,
760 NULL,
761};
762
91447636
A
763int vnop_copyfile_vp_offsets[] = {
764 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_fvp),
765 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tdvp),
766 VOPARG_OFFSETOF(struct vnop_copyfile_args,a_tvp),
1c79356b
A
767 VDESC_NO_OFFSET
768};
91447636 769struct vnodeop_desc vnop_copyfile_desc = {
1c79356b 770 0,
91447636
A
771 "vnop_copyfile",
772 0 | VDESC_VP0_WILLRELE | VDESC_VP1_WILLRELE | VDESC_VP2_WILLRELE,
773 vnop_copyfile_vp_offsets,
1c79356b 774 VDESC_NO_OFFSET,
1c79356b
A
775 VDESC_NO_OFFSET,
776 VDESC_NO_OFFSET,
91447636 777 VOPARG_OFFSETOF(struct vnop_copyfile_args, a_tcnp),
1c79356b
A
778 NULL,
779};
780
91447636
A
781int vop_getxattr_vp_offsets[] = {
782 VOPARG_OFFSETOF(struct vnop_getxattr_args,a_vp),
1c79356b
A
783 VDESC_NO_OFFSET
784};
91447636 785struct vnodeop_desc vnop_getxattr_desc = {
1c79356b 786 0,
91447636 787 "vnop_getxattr",
1c79356b 788 0,
91447636 789 vop_getxattr_vp_offsets,
1c79356b 790 VDESC_NO_OFFSET,
1c79356b
A
791 VDESC_NO_OFFSET,
792 VDESC_NO_OFFSET,
91447636
A
793 VDESC_NO_OFFSET,
794 VOPARG_OFFSETOF(struct vnop_getxattr_args, a_context),
1c79356b
A
795 NULL,
796};
797
91447636
A
798int vop_setxattr_vp_offsets[] = {
799 VOPARG_OFFSETOF(struct vnop_setxattr_args,a_vp),
1c79356b
A
800 VDESC_NO_OFFSET
801};
91447636 802struct vnodeop_desc vnop_setxattr_desc = {
1c79356b 803 0,
91447636 804 "vnop_setxattr",
1c79356b 805 0,
91447636 806 vop_setxattr_vp_offsets,
1c79356b
A
807 VDESC_NO_OFFSET,
808 VDESC_NO_OFFSET,
809 VDESC_NO_OFFSET,
810 VDESC_NO_OFFSET,
91447636 811 VOPARG_OFFSETOF(struct vnop_setxattr_args, a_context),
1c79356b
A
812 NULL,
813};
814
91447636
A
815int vop_removexattr_vp_offsets[] = {
816 VOPARG_OFFSETOF(struct vnop_removexattr_args,a_vp),
1c79356b
A
817 VDESC_NO_OFFSET
818};
91447636 819struct vnodeop_desc vnop_removexattr_desc = {
1c79356b 820 0,
91447636 821 "vnop_removexattr",
1c79356b 822 0,
91447636 823 vop_removexattr_vp_offsets,
1c79356b
A
824 VDESC_NO_OFFSET,
825 VDESC_NO_OFFSET,
826 VDESC_NO_OFFSET,
827 VDESC_NO_OFFSET,
91447636 828 VOPARG_OFFSETOF(struct vnop_removexattr_args, a_context),
1c79356b
A
829 NULL,
830};
831
91447636
A
832int vop_listxattr_vp_offsets[] = {
833 VOPARG_OFFSETOF(struct vnop_listxattr_args,a_vp),
1c79356b
A
834 VDESC_NO_OFFSET
835};
91447636 836struct vnodeop_desc vnop_listxattr_desc = {
1c79356b 837 0,
91447636
A
838 "vnop_listxattr",
839 0,
840 vop_listxattr_vp_offsets,
841 VDESC_NO_OFFSET,
1c79356b
A
842 VDESC_NO_OFFSET,
843 VDESC_NO_OFFSET,
844 VDESC_NO_OFFSET,
91447636 845 VOPARG_OFFSETOF(struct vnop_listxattr_args, a_context),
1c79356b
A
846 NULL,
847};
848
91447636
A
849int vnop_blktooff_vp_offsets[] = {
850 VOPARG_OFFSETOF(struct vnop_blktooff_args,a_vp),
1c79356b
A
851 VDESC_NO_OFFSET
852};
91447636 853struct vnodeop_desc vnop_blktooff_desc = {
1c79356b 854 0,
91447636 855 "vnop_blktooff",
1c79356b 856 0,
91447636 857 vnop_blktooff_vp_offsets,
1c79356b
A
858 VDESC_NO_OFFSET,
859 VDESC_NO_OFFSET,
860 VDESC_NO_OFFSET,
861 VDESC_NO_OFFSET,
862 NULL,
863};
864
91447636
A
865int vnop_offtoblk_vp_offsets[] = {
866 VOPARG_OFFSETOF(struct vnop_offtoblk_args,a_vp),
1c79356b
A
867 VDESC_NO_OFFSET
868};
91447636 869struct vnodeop_desc vnop_offtoblk_desc = {
1c79356b 870 0,
91447636 871 "vnop_offtoblk",
1c79356b 872 0,
91447636 873 vnop_offtoblk_vp_offsets,
1c79356b
A
874 VDESC_NO_OFFSET,
875 VDESC_NO_OFFSET,
876 VDESC_NO_OFFSET,
877 VDESC_NO_OFFSET,
878 NULL,
879};
880
91447636
A
881int vnop_blockmap_vp_offsets[] = {
882 VOPARG_OFFSETOF(struct vnop_blockmap_args,a_vp),
1c79356b
A
883 VDESC_NO_OFFSET
884};
91447636 885struct vnodeop_desc vnop_blockmap_desc = {
1c79356b 886 0,
91447636 887 "vnop_blockmap",
1c79356b 888 0,
91447636 889 vnop_blockmap_vp_offsets,
1c79356b
A
890 VDESC_NO_OFFSET,
891 VDESC_NO_OFFSET,
892 VDESC_NO_OFFSET,
893 VDESC_NO_OFFSET,
894 NULL,
895};
896
897/* Special cases: */
898
91447636 899int vnop_strategy_vp_offsets[] = {
1c79356b
A
900 VDESC_NO_OFFSET
901};
91447636 902struct vnodeop_desc vnop_strategy_desc = {
1c79356b 903 0,
91447636 904 "vnop_strategy",
1c79356b 905 0,
91447636 906 vnop_strategy_vp_offsets,
1c79356b
A
907 VDESC_NO_OFFSET,
908 VDESC_NO_OFFSET,
909 VDESC_NO_OFFSET,
910 VDESC_NO_OFFSET,
911 NULL,
912};
913
91447636 914int vnop_bwrite_vp_offsets[] = {
1c79356b
A
915 VDESC_NO_OFFSET
916};
91447636 917struct vnodeop_desc vnop_bwrite_desc = {
1c79356b 918 0,
91447636 919 "vnop_bwrite",
1c79356b 920 0,
91447636 921 vnop_bwrite_vp_offsets,
1c79356b
A
922 VDESC_NO_OFFSET,
923 VDESC_NO_OFFSET,
924 VDESC_NO_OFFSET,
925 VDESC_NO_OFFSET,
926 NULL,
927};
928
929/* End of special cases. */
930
931struct vnodeop_desc *vfs_op_descs[] = {
91447636
A
932 &vnop_default_desc, /* MUST BE FIRST */
933 &vnop_strategy_desc, /* XXX: SPECIAL CASE */
934 &vnop_bwrite_desc, /* XXX: SPECIAL CASE */
935
936 &vnop_lookup_desc,
937 &vnop_create_desc,
938 &vnop_mknod_desc,
939 &vnop_whiteout_desc,
940 &vnop_open_desc,
941 &vnop_close_desc,
942 &vnop_access_desc,
943 &vnop_getattr_desc,
944 &vnop_setattr_desc,
945 &vnop_getattrlist_desc,
946 &vnop_setattrlist_desc,
947 &vnop_read_desc,
948 &vnop_write_desc,
949 &vnop_ioctl_desc,
950 &vnop_select_desc,
951 &vnop_exchange_desc,
952 &vnop_kqfilt_add_desc,
953 &vnop_kqfilt_remove_desc,
954 &vnop_revoke_desc,
955 &vnop_mmap_desc,
956 &vnop_mnomap_desc,
957 &vnop_fsync_desc,
958 &vnop_remove_desc,
959 &vnop_link_desc,
960 &vnop_rename_desc,
961 &vnop_mkdir_desc,
962 &vnop_rmdir_desc,
963 &vnop_symlink_desc,
964 &vnop_readdir_desc,
965 &vnop_readdirattr_desc,
966 &vnop_readlink_desc,
967 &vnop_inactive_desc,
968 &vnop_reclaim_desc,
969 &vnop_pathconf_desc,
970 &vnop_advlock_desc,
971 &vnop_allocate_desc,
972 &vnop_pagein_desc,
973 &vnop_pageout_desc,
91447636
A
974 &vnop_searchfs_desc,
975 &vnop_copyfile_desc,
976 &vnop_getxattr_desc,
977 &vnop_setxattr_desc,
978 &vnop_removexattr_desc,
979 &vnop_listxattr_desc,
980 &vnop_blktooff_desc,
981 &vnop_offtoblk_desc,
982 &vnop_blockmap_desc,
1c79356b
A
983 NULL
984};
985