1 /* $NetBSD: vnode_if.h,v 1.112 2023/06/15 09:15:13 hannken Exp $ */ 2 3 /* 4 * Warning: DO NOT EDIT! This file is automatically generated! 5 * (Modifications made here may easily be lost!) 6 * 7 * Created from the file: 8 * NetBSD: vnode_if.src,v 1.85 2023/06/15 09:13:36 hannken Exp 9 * by the script: 10 * NetBSD: vnode_if.sh,v 1.77 2022/10/26 23:39:43 riastradh Exp 11 */ 12 13 /* 14 * Copyright (c) 1992, 1993, 1994, 1995 15 * The Regents of the University of California. All rights reserved. 16 * 17 * Redistribution and use in source and binary forms, with or without 18 * modification, are permitted provided that the following conditions 19 * are met: 20 * 1. Redistributions of source code must retain the above copyright 21 * notice, this list of conditions and the following disclaimer. 22 * 2. Redistributions in binary form must reproduce the above copyright 23 * notice, this list of conditions and the following disclaimer in the 24 * documentation and/or other materials provided with the distribution. 25 * 3. Neither the name of the University nor the names of its contributors 26 * may be used to endorse or promote products derived from this software 27 * without specific prior written permission. 28 * 29 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 31 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 32 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 33 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 39 * SUCH DAMAGE. 40 */ 41 42 #ifndef _SYS_VNODE_IF_H_ 43 #define _SYS_VNODE_IF_H_ 44 45 extern const struct vnodeop_desc vop_default_desc; 46 47 struct buf; 48 49 #ifndef _KERNEL 50 #include <stdbool.h> 51 #endif 52 53 #define VOP_BWRITE_DESCOFFSET 1 54 struct vop_bwrite_args { 55 const struct vnodeop_desc *a_desc; 56 struct vnode *a_vp; 57 struct buf *a_bp; 58 }; 59 extern const struct vnodeop_desc vop_bwrite_desc; 60 int VOP_BWRITE(struct vnode *, struct buf *); 61 62 #define VOP_PARSEPATH_DESCOFFSET 2 63 struct vop_parsepath_args { 64 const struct vnodeop_desc *a_desc; 65 struct vnode *a_dvp; 66 const char *a_name; 67 size_t *a_retval; 68 }; 69 extern const struct vnodeop_desc vop_parsepath_desc; 70 int VOP_PARSEPATH(struct vnode *, const char *, size_t *); 71 72 #define VOP_LOOKUP_DESCOFFSET 3 73 struct vop_lookup_v2_args { 74 const struct vnodeop_desc *a_desc; 75 struct vnode *a_dvp; 76 struct vnode **a_vpp; 77 struct componentname *a_cnp; 78 }; 79 extern const struct vnodeop_desc vop_lookup_desc; 80 int VOP_LOOKUP(struct vnode *, struct vnode **, struct componentname *); 81 82 #define VOP_CREATE_DESCOFFSET 4 83 struct vop_create_v3_args { 84 const struct vnodeop_desc *a_desc; 85 struct vnode *a_dvp; 86 struct vnode **a_vpp; 87 struct componentname *a_cnp; 88 struct vattr *a_vap; 89 }; 90 extern const struct vnodeop_desc vop_create_desc; 91 int VOP_CREATE(struct vnode *, struct vnode **, struct componentname *, 92 struct vattr *); 93 94 #define VOP_MKNOD_DESCOFFSET 5 95 struct vop_mknod_v3_args { 96 const struct vnodeop_desc *a_desc; 97 struct vnode *a_dvp; 98 struct vnode **a_vpp; 99 struct componentname *a_cnp; 100 struct vattr *a_vap; 101 }; 102 extern const struct vnodeop_desc vop_mknod_desc; 103 int VOP_MKNOD(struct vnode *, struct vnode **, struct componentname *, 104 struct vattr *); 105 106 #define VOP_OPEN_DESCOFFSET 6 107 struct vop_open_args { 108 const struct vnodeop_desc *a_desc; 109 struct vnode *a_vp; 110 int a_mode; 111 kauth_cred_t a_cred; 112 }; 113 extern const struct vnodeop_desc vop_open_desc; 114 int VOP_OPEN(struct vnode *, int, kauth_cred_t); 115 116 #define VOP_CLOSE_DESCOFFSET 7 117 struct vop_close_args { 118 const struct vnodeop_desc *a_desc; 119 struct vnode *a_vp; 120 int a_fflag; 121 kauth_cred_t a_cred; 122 }; 123 extern const struct vnodeop_desc vop_close_desc; 124 int VOP_CLOSE(struct vnode *, int, kauth_cred_t); 125 126 #define VOP_ACCESS_DESCOFFSET 8 127 struct vop_access_args { 128 const struct vnodeop_desc *a_desc; 129 struct vnode *a_vp; 130 accmode_t a_accmode; 131 kauth_cred_t a_cred; 132 }; 133 extern const struct vnodeop_desc vop_access_desc; 134 int VOP_ACCESS(struct vnode *, accmode_t, kauth_cred_t); 135 136 #define VOP_ACCESSX_DESCOFFSET 9 137 struct vop_accessx_args { 138 const struct vnodeop_desc *a_desc; 139 struct vnode *a_vp; 140 accmode_t a_accmode; 141 kauth_cred_t a_cred; 142 }; 143 extern const struct vnodeop_desc vop_accessx_desc; 144 int VOP_ACCESSX(struct vnode *, accmode_t, kauth_cred_t); 145 146 #define VOP_GETATTR_DESCOFFSET 10 147 struct vop_getattr_args { 148 const struct vnodeop_desc *a_desc; 149 struct vnode *a_vp; 150 struct vattr *a_vap; 151 kauth_cred_t a_cred; 152 }; 153 extern const struct vnodeop_desc vop_getattr_desc; 154 int VOP_GETATTR(struct vnode *, struct vattr *, kauth_cred_t); 155 156 #define VOP_SETATTR_DESCOFFSET 11 157 struct vop_setattr_args { 158 const struct vnodeop_desc *a_desc; 159 struct vnode *a_vp; 160 struct vattr *a_vap; 161 kauth_cred_t a_cred; 162 }; 163 extern const struct vnodeop_desc vop_setattr_desc; 164 int VOP_SETATTR(struct vnode *, struct vattr *, kauth_cred_t); 165 166 #define VOP_READ_DESCOFFSET 12 167 struct vop_read_args { 168 const struct vnodeop_desc *a_desc; 169 struct vnode *a_vp; 170 struct uio *a_uio; 171 int a_ioflag; 172 kauth_cred_t a_cred; 173 }; 174 extern const struct vnodeop_desc vop_read_desc; 175 int VOP_READ(struct vnode *, struct uio *, int, kauth_cred_t); 176 177 #define VOP_WRITE_DESCOFFSET 13 178 struct vop_write_args { 179 const struct vnodeop_desc *a_desc; 180 struct vnode *a_vp; 181 struct uio *a_uio; 182 int a_ioflag; 183 kauth_cred_t a_cred; 184 }; 185 extern const struct vnodeop_desc vop_write_desc; 186 int VOP_WRITE(struct vnode *, struct uio *, int, kauth_cred_t); 187 188 #define VOP_FALLOCATE_DESCOFFSET 14 189 struct vop_fallocate_args { 190 const struct vnodeop_desc *a_desc; 191 struct vnode *a_vp; 192 off_t a_pos; 193 off_t a_len; 194 }; 195 extern const struct vnodeop_desc vop_fallocate_desc; 196 int VOP_FALLOCATE(struct vnode *, off_t, off_t); 197 198 #define VOP_FDISCARD_DESCOFFSET 15 199 struct vop_fdiscard_args { 200 const struct vnodeop_desc *a_desc; 201 struct vnode *a_vp; 202 off_t a_pos; 203 off_t a_len; 204 }; 205 extern const struct vnodeop_desc vop_fdiscard_desc; 206 int VOP_FDISCARD(struct vnode *, off_t, off_t); 207 208 #define VOP_IOCTL_DESCOFFSET 16 209 struct vop_ioctl_args { 210 const struct vnodeop_desc *a_desc; 211 struct vnode *a_vp; 212 u_long a_command; 213 void *a_data; 214 int a_fflag; 215 kauth_cred_t a_cred; 216 }; 217 extern const struct vnodeop_desc vop_ioctl_desc; 218 int VOP_IOCTL(struct vnode *, u_long, void *, int, kauth_cred_t); 219 220 #define VOP_FCNTL_DESCOFFSET 17 221 struct vop_fcntl_args { 222 const struct vnodeop_desc *a_desc; 223 struct vnode *a_vp; 224 u_int a_command; 225 void *a_data; 226 int a_fflag; 227 kauth_cred_t a_cred; 228 }; 229 extern const struct vnodeop_desc vop_fcntl_desc; 230 int VOP_FCNTL(struct vnode *, u_int, void *, int, kauth_cred_t); 231 232 #define VOP_POLL_DESCOFFSET 18 233 struct vop_poll_args { 234 const struct vnodeop_desc *a_desc; 235 struct vnode *a_vp; 236 int a_events; 237 }; 238 extern const struct vnodeop_desc vop_poll_desc; 239 int VOP_POLL(struct vnode *, int); 240 241 #define VOP_KQFILTER_DESCOFFSET 19 242 struct vop_kqfilter_args { 243 const struct vnodeop_desc *a_desc; 244 struct vnode *a_vp; 245 struct knote *a_kn; 246 }; 247 extern const struct vnodeop_desc vop_kqfilter_desc; 248 int VOP_KQFILTER(struct vnode *, struct knote *); 249 250 #define VOP_REVOKE_DESCOFFSET 20 251 struct vop_revoke_args { 252 const struct vnodeop_desc *a_desc; 253 struct vnode *a_vp; 254 int a_flags; 255 }; 256 extern const struct vnodeop_desc vop_revoke_desc; 257 int VOP_REVOKE(struct vnode *, int); 258 259 #define VOP_MMAP_DESCOFFSET 21 260 struct vop_mmap_args { 261 const struct vnodeop_desc *a_desc; 262 struct vnode *a_vp; 263 vm_prot_t a_prot; 264 kauth_cred_t a_cred; 265 }; 266 extern const struct vnodeop_desc vop_mmap_desc; 267 int VOP_MMAP(struct vnode *, vm_prot_t, kauth_cred_t); 268 269 #define VOP_FSYNC_DESCOFFSET 22 270 struct vop_fsync_args { 271 const struct vnodeop_desc *a_desc; 272 struct vnode *a_vp; 273 kauth_cred_t a_cred; 274 int a_flags; 275 off_t a_offlo; 276 off_t a_offhi; 277 }; 278 extern const struct vnodeop_desc vop_fsync_desc; 279 int VOP_FSYNC(struct vnode *, kauth_cred_t, int, off_t, off_t); 280 281 #define VOP_SEEK_DESCOFFSET 23 282 struct vop_seek_args { 283 const struct vnodeop_desc *a_desc; 284 struct vnode *a_vp; 285 off_t a_oldoff; 286 off_t a_newoff; 287 kauth_cred_t a_cred; 288 }; 289 extern const struct vnodeop_desc vop_seek_desc; 290 int VOP_SEEK(struct vnode *, off_t, off_t, kauth_cred_t); 291 292 #define VOP_REMOVE_DESCOFFSET 24 293 struct vop_remove_v3_args { 294 const struct vnodeop_desc *a_desc; 295 struct vnode *a_dvp; 296 struct vnode *a_vp; 297 struct componentname *a_cnp; 298 nlink_t ctx_vp_new_nlink; 299 }; 300 extern const struct vnodeop_desc vop_remove_desc; 301 int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *); 302 303 #define VOP_LINK_DESCOFFSET 25 304 struct vop_link_v2_args { 305 const struct vnodeop_desc *a_desc; 306 struct vnode *a_dvp; 307 struct vnode *a_vp; 308 struct componentname *a_cnp; 309 }; 310 extern const struct vnodeop_desc vop_link_desc; 311 int VOP_LINK(struct vnode *, struct vnode *, struct componentname *); 312 313 #define VOP_RENAME_DESCOFFSET 26 314 struct vop_rename_args { 315 const struct vnodeop_desc *a_desc; 316 struct vnode *a_fdvp; 317 struct vnode *a_fvp; 318 struct componentname *a_fcnp; 319 struct vnode *a_tdvp; 320 struct vnode *a_tvp; 321 struct componentname *a_tcnp; 322 }; 323 extern const struct vnodeop_desc vop_rename_desc; 324 int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *, 325 struct vnode *, struct vnode *, struct componentname *); 326 327 #define VOP_MKDIR_DESCOFFSET 27 328 struct vop_mkdir_v3_args { 329 const struct vnodeop_desc *a_desc; 330 struct vnode *a_dvp; 331 struct vnode **a_vpp; 332 struct componentname *a_cnp; 333 struct vattr *a_vap; 334 }; 335 extern const struct vnodeop_desc vop_mkdir_desc; 336 int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *, 337 struct vattr *); 338 339 #define VOP_RMDIR_DESCOFFSET 28 340 struct vop_rmdir_v2_args { 341 const struct vnodeop_desc *a_desc; 342 struct vnode *a_dvp; 343 struct vnode *a_vp; 344 struct componentname *a_cnp; 345 }; 346 extern const struct vnodeop_desc vop_rmdir_desc; 347 int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *); 348 349 #define VOP_SYMLINK_DESCOFFSET 29 350 struct vop_symlink_v3_args { 351 const struct vnodeop_desc *a_desc; 352 struct vnode *a_dvp; 353 struct vnode **a_vpp; 354 struct componentname *a_cnp; 355 struct vattr *a_vap; 356 char *a_target; 357 }; 358 extern const struct vnodeop_desc vop_symlink_desc; 359 int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *, 360 struct vattr *, char *); 361 362 #define VOP_READDIR_DESCOFFSET 30 363 struct vop_readdir_args { 364 const struct vnodeop_desc *a_desc; 365 struct vnode *a_vp; 366 struct uio *a_uio; 367 kauth_cred_t a_cred; 368 int *a_eofflag; 369 off_t **a_cookies; 370 int *a_ncookies; 371 }; 372 extern const struct vnodeop_desc vop_readdir_desc; 373 int VOP_READDIR(struct vnode *, struct uio *, kauth_cred_t, int *, off_t **, 374 int *); 375 376 #define VOP_READLINK_DESCOFFSET 31 377 struct vop_readlink_args { 378 const struct vnodeop_desc *a_desc; 379 struct vnode *a_vp; 380 struct uio *a_uio; 381 kauth_cred_t a_cred; 382 }; 383 extern const struct vnodeop_desc vop_readlink_desc; 384 int VOP_READLINK(struct vnode *, struct uio *, kauth_cred_t); 385 386 #define VOP_ABORTOP_DESCOFFSET 32 387 struct vop_abortop_args { 388 const struct vnodeop_desc *a_desc; 389 struct vnode *a_dvp; 390 struct componentname *a_cnp; 391 }; 392 extern const struct vnodeop_desc vop_abortop_desc; 393 int VOP_ABORTOP(struct vnode *, struct componentname *); 394 395 #define VOP_INACTIVE_DESCOFFSET 33 396 struct vop_inactive_v2_args { 397 const struct vnodeop_desc *a_desc; 398 struct vnode *a_vp; 399 bool *a_recycle; 400 }; 401 extern const struct vnodeop_desc vop_inactive_desc; 402 int VOP_INACTIVE(struct vnode *, bool *); 403 404 #define VOP_RECLAIM_DESCOFFSET 34 405 struct vop_reclaim_v2_args { 406 const struct vnodeop_desc *a_desc; 407 struct vnode *a_vp; 408 }; 409 extern const struct vnodeop_desc vop_reclaim_desc; 410 int VOP_RECLAIM(struct vnode *); 411 412 #define VOP_LOCK_DESCOFFSET 35 413 struct vop_lock_args { 414 const struct vnodeop_desc *a_desc; 415 struct vnode *a_vp; 416 int a_flags; 417 }; 418 extern const struct vnodeop_desc vop_lock_desc; 419 int VOP_LOCK(struct vnode *, int); 420 421 #define VOP_UNLOCK_DESCOFFSET 36 422 struct vop_unlock_args { 423 const struct vnodeop_desc *a_desc; 424 struct vnode *a_vp; 425 }; 426 extern const struct vnodeop_desc vop_unlock_desc; 427 int VOP_UNLOCK(struct vnode *); 428 429 #define VOP_BMAP_DESCOFFSET 37 430 struct vop_bmap_args { 431 const struct vnodeop_desc *a_desc; 432 struct vnode *a_vp; 433 daddr_t a_bn; 434 struct vnode **a_vpp; 435 daddr_t *a_bnp; 436 int *a_runp; 437 }; 438 extern const struct vnodeop_desc vop_bmap_desc; 439 int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *); 440 441 #define VOP_STRATEGY_DESCOFFSET 38 442 struct vop_strategy_args { 443 const struct vnodeop_desc *a_desc; 444 struct vnode *a_vp; 445 struct buf *a_bp; 446 }; 447 extern const struct vnodeop_desc vop_strategy_desc; 448 int VOP_STRATEGY(struct vnode *, struct buf *); 449 450 #define VOP_PRINT_DESCOFFSET 39 451 struct vop_print_args { 452 const struct vnodeop_desc *a_desc; 453 struct vnode *a_vp; 454 }; 455 extern const struct vnodeop_desc vop_print_desc; 456 int VOP_PRINT(struct vnode *); 457 458 #define VOP_ISLOCKED_DESCOFFSET 40 459 struct vop_islocked_args { 460 const struct vnodeop_desc *a_desc; 461 struct vnode *a_vp; 462 }; 463 extern const struct vnodeop_desc vop_islocked_desc; 464 int VOP_ISLOCKED(struct vnode *); 465 466 #define VOP_PATHCONF_DESCOFFSET 41 467 struct vop_pathconf_args { 468 const struct vnodeop_desc *a_desc; 469 struct vnode *a_vp; 470 int a_name; 471 register_t *a_retval; 472 }; 473 extern const struct vnodeop_desc vop_pathconf_desc; 474 int VOP_PATHCONF(struct vnode *, int, register_t *); 475 476 #define VOP_ADVLOCK_DESCOFFSET 42 477 struct vop_advlock_args { 478 const struct vnodeop_desc *a_desc; 479 struct vnode *a_vp; 480 void *a_id; 481 int a_op; 482 struct flock *a_fl; 483 int a_flags; 484 }; 485 extern const struct vnodeop_desc vop_advlock_desc; 486 int VOP_ADVLOCK(struct vnode *, void *, int, struct flock *, int); 487 488 #define VOP_WHITEOUT_DESCOFFSET 43 489 struct vop_whiteout_args { 490 const struct vnodeop_desc *a_desc; 491 struct vnode *a_dvp; 492 struct componentname *a_cnp; 493 int a_flags; 494 }; 495 extern const struct vnodeop_desc vop_whiteout_desc; 496 int VOP_WHITEOUT(struct vnode *, struct componentname *, int); 497 498 #define VOP_GETPAGES_DESCOFFSET 44 499 struct vop_getpages_args { 500 const struct vnodeop_desc *a_desc; 501 struct vnode *a_vp; 502 voff_t a_offset; 503 struct vm_page **a_m; 504 int *a_count; 505 int a_centeridx; 506 vm_prot_t a_access_type; 507 int a_advice; 508 int a_flags; 509 }; 510 extern const struct vnodeop_desc vop_getpages_desc; 511 int VOP_GETPAGES(struct vnode *, voff_t, struct vm_page **, int *, int, 512 vm_prot_t, int, int); 513 514 #define VOP_PUTPAGES_DESCOFFSET 45 515 struct vop_putpages_args { 516 const struct vnodeop_desc *a_desc; 517 struct vnode *a_vp; 518 voff_t a_offlo; 519 voff_t a_offhi; 520 int a_flags; 521 }; 522 extern const struct vnodeop_desc vop_putpages_desc; 523 int VOP_PUTPAGES(struct vnode *, voff_t, voff_t, int); 524 525 #define VOP_GETACL_DESCOFFSET 46 526 struct vop_getacl_args { 527 const struct vnodeop_desc *a_desc; 528 struct vnode *a_vp; 529 acl_type_t a_type; 530 struct acl *a_aclp; 531 kauth_cred_t a_cred; 532 }; 533 extern const struct vnodeop_desc vop_getacl_desc; 534 int VOP_GETACL(struct vnode *, acl_type_t, struct acl *, kauth_cred_t); 535 536 #define VOP_SETACL_DESCOFFSET 47 537 struct vop_setacl_args { 538 const struct vnodeop_desc *a_desc; 539 struct vnode *a_vp; 540 acl_type_t a_type; 541 struct acl *a_aclp; 542 kauth_cred_t a_cred; 543 }; 544 extern const struct vnodeop_desc vop_setacl_desc; 545 int VOP_SETACL(struct vnode *, acl_type_t, struct acl *, kauth_cred_t); 546 547 #define VOP_ACLCHECK_DESCOFFSET 48 548 struct vop_aclcheck_args { 549 const struct vnodeop_desc *a_desc; 550 struct vnode *a_vp; 551 acl_type_t a_type; 552 struct acl *a_aclp; 553 kauth_cred_t a_cred; 554 }; 555 extern const struct vnodeop_desc vop_aclcheck_desc; 556 int VOP_ACLCHECK(struct vnode *, acl_type_t, struct acl *, kauth_cred_t); 557 558 #define VOP_CLOSEEXTATTR_DESCOFFSET 49 559 struct vop_closeextattr_args { 560 const struct vnodeop_desc *a_desc; 561 struct vnode *a_vp; 562 int a_commit; 563 kauth_cred_t a_cred; 564 }; 565 extern const struct vnodeop_desc vop_closeextattr_desc; 566 int VOP_CLOSEEXTATTR(struct vnode *, int, kauth_cred_t); 567 568 #define VOP_GETEXTATTR_DESCOFFSET 50 569 struct vop_getextattr_args { 570 const struct vnodeop_desc *a_desc; 571 struct vnode *a_vp; 572 int a_attrnamespace; 573 const char *a_name; 574 struct uio *a_uio; 575 size_t *a_size; 576 kauth_cred_t a_cred; 577 }; 578 extern const struct vnodeop_desc vop_getextattr_desc; 579 int VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *, 580 size_t *, kauth_cred_t); 581 582 #define VOP_LISTEXTATTR_DESCOFFSET 51 583 struct vop_listextattr_args { 584 const struct vnodeop_desc *a_desc; 585 struct vnode *a_vp; 586 int a_attrnamespace; 587 struct uio *a_uio; 588 size_t *a_size; 589 int a_flag; 590 kauth_cred_t a_cred; 591 }; 592 extern const struct vnodeop_desc vop_listextattr_desc; 593 int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, int, 594 kauth_cred_t); 595 596 #define VOP_OPENEXTATTR_DESCOFFSET 52 597 struct vop_openextattr_args { 598 const struct vnodeop_desc *a_desc; 599 struct vnode *a_vp; 600 kauth_cred_t a_cred; 601 }; 602 extern const struct vnodeop_desc vop_openextattr_desc; 603 int VOP_OPENEXTATTR(struct vnode *, kauth_cred_t); 604 605 #define VOP_DELETEEXTATTR_DESCOFFSET 53 606 struct vop_deleteextattr_args { 607 const struct vnodeop_desc *a_desc; 608 struct vnode *a_vp; 609 int a_attrnamespace; 610 const char *a_name; 611 kauth_cred_t a_cred; 612 }; 613 extern const struct vnodeop_desc vop_deleteextattr_desc; 614 int VOP_DELETEEXTATTR(struct vnode *, int, const char *, kauth_cred_t); 615 616 #define VOP_SETEXTATTR_DESCOFFSET 54 617 struct vop_setextattr_args { 618 const struct vnodeop_desc *a_desc; 619 struct vnode *a_vp; 620 int a_attrnamespace; 621 const char *a_name; 622 struct uio *a_uio; 623 kauth_cred_t a_cred; 624 }; 625 extern const struct vnodeop_desc vop_setextattr_desc; 626 int VOP_SETEXTATTR(struct vnode *, int, const char *, struct uio *, 627 kauth_cred_t); 628 629 #define VNODE_OPS_COUNT 55 630 631 #endif /* !_SYS_VNODE_IF_H_ */ 632