3  * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. 
   5  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 
   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. 
  16  * Please obtain a copy of the License at 
  17  * http://www.opensource.apple.com/apsl/ and read it before using this file. 
  19  * The Original Code and all software distributed under the License are 
  20  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  21  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  22  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 
  23  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  24  * Please see the License for the specific language governing rights and 
  25  * limitations under the License. 
  27  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 
  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. 
  34  * Redistribution and use in source and binary forms, with or without 
  35  * modification, are permitted provided that the following conditions 
  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. 
  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 
  65  * Warning: This file is generated automatically. 
  66  * (Modifications made here may easily be lost!) 
  68  * Created by the script: 
  69  *      @(#)vnode_if.sh 8.7 (Berkeley) 5/11/95 
  73 #ifndef _SYS_VNODE_IF_H_ 
  74 #define _SYS_VNODE_IF_H_ 
  76 #include <sys/appleapiopts.h> 
  77 #include <sys/cdefs.h> 
  78 #include <sys/kernel_types.h> 
  80 #ifdef BSD_KERNEL_PRIVATE 
  83 #include <mach/memory_object_types.h> 
  88 extern struct vnodeop_desc vnop_default_desc
; 
  89 extern struct vnodeop_desc vnop_lookup_desc
; 
  90 extern struct vnodeop_desc vnop_create_desc
; 
  91 extern struct vnodeop_desc vnop_whiteout_desc
; 
  92 extern struct vnodeop_desc vnop_mknod_desc
; 
  93 extern struct vnodeop_desc vnop_open_desc
; 
  94 extern struct vnodeop_desc vnop_close_desc
; 
  95 extern struct vnodeop_desc vnop_access_desc
; 
  96 extern struct vnodeop_desc vnop_getattr_desc
; 
  97 extern struct vnodeop_desc vnop_setattr_desc
; 
  98 extern struct vnodeop_desc vnop_getattrlist_desc
; 
  99 extern struct vnodeop_desc vnop_setattrlist_desc
; 
 100 extern struct vnodeop_desc vnop_read_desc
; 
 101 extern struct vnodeop_desc vnop_write_desc
; 
 102 extern struct vnodeop_desc vnop_ioctl_desc
; 
 103 extern struct vnodeop_desc vnop_select_desc
; 
 104 extern struct vnodeop_desc vnop_exchange_desc
; 
 105 extern struct vnodeop_desc vnop_revoke_desc
; 
 106 extern struct vnodeop_desc vnop_mmap_desc
; 
 107 extern struct vnodeop_desc vnop_mnomap_desc
; 
 108 extern struct vnodeop_desc vnop_fsync_desc
; 
 109 extern struct vnodeop_desc vnop_remove_desc
; 
 110 extern struct vnodeop_desc vnop_link_desc
; 
 111 extern struct vnodeop_desc vnop_rename_desc
; 
 112 extern struct vnodeop_desc vnop_mkdir_desc
; 
 113 extern struct vnodeop_desc vnop_rmdir_desc
; 
 114 extern struct vnodeop_desc vnop_symlink_desc
; 
 115 extern struct vnodeop_desc vnop_readdir_desc
; 
 116 extern struct vnodeop_desc vnop_readdirattr_desc
; 
 117 extern struct vnodeop_desc vnop_readlink_desc
; 
 118 extern struct vnodeop_desc vnop_inactive_desc
; 
 119 extern struct vnodeop_desc vnop_reclaim_desc
; 
 120 extern struct vnodeop_desc vnop_print_desc
; 
 121 extern struct vnodeop_desc vnop_pathconf_desc
; 
 122 extern struct vnodeop_desc vnop_advlock_desc
; 
 123 extern struct vnodeop_desc vnop_truncate_desc
; 
 124 extern struct vnodeop_desc vnop_allocate_desc
; 
 125 extern struct vnodeop_desc vnop_pagein_desc
; 
 126 extern struct vnodeop_desc vnop_pageout_desc
; 
 127 extern struct vnodeop_desc vnop_searchfs_desc
; 
 128 extern struct vnodeop_desc vnop_copyfile_desc
; 
 129 extern struct vnodeop_desc vnop_blktooff_desc
; 
 130 extern struct vnodeop_desc vnop_offtoblk_desc
; 
 131 extern struct vnodeop_desc vnop_blockmap_desc
; 
 132 extern struct vnodeop_desc vnop_strategy_desc
; 
 133 extern struct vnodeop_desc vnop_bwrite_desc
; 
 141 struct vnop_lookup_args 
{ 
 142         struct vnodeop_desc 
*a_desc
; 
 145         struct componentname 
*a_cnp
; 
 146         vfs_context_t a_context
; 
 148 extern errno_t 
VNOP_LOOKUP(vnode_t
, vnode_t 
*, struct componentname 
*, vfs_context_t
); 
 158 struct vnop_create_args 
{ 
 159         struct vnodeop_desc 
*a_desc
; 
 162         struct componentname 
*a_cnp
; 
 163         struct vnode_attr 
*a_vap
; 
 164         vfs_context_t a_context
; 
 166 extern errno_t 
VNOP_CREATE(vnode_t
, vnode_t 
*, struct componentname 
*, struct vnode_attr 
*, vfs_context_t
); 
 170  *#% whiteout     dvp     L L L 
 171  *#% whiteout     cnp     - - - 
 172  *#% whiteout     flag    - - - 
 175 struct vnop_whiteout_args 
{ 
 176         struct vnodeop_desc 
*a_desc
; 
 178         struct componentname 
*a_cnp
; 
 180         vfs_context_t a_context
; 
 182 extern errno_t 
VNOP_WHITEOUT(vnode_t
, struct componentname 
*, int, vfs_context_t
); 
 190 struct vnop_mknod_args 
{ 
 191        struct vnodeop_desc 
*a_desc
; 
 194        struct componentname 
*a_cnp
; 
 195        struct vnode_attr 
*a_vap
; 
 196        vfs_context_t a_context
; 
 198 extern errno_t 
VNOP_MKNOD(vnode_t
, vnode_t 
*, struct componentname 
*, struct vnode_attr 
*, vfs_context_t
); 
 205 struct vnop_open_args 
{ 
 206         struct vnodeop_desc 
*a_desc
; 
 209         vfs_context_t a_context
; 
 211 extern errno_t 
VNOP_OPEN(vnode_t
, int, vfs_context_t
); 
 218 struct vnop_close_args 
{ 
 219         struct vnodeop_desc 
*a_desc
; 
 222         vfs_context_t a_context
; 
 224 extern errno_t 
VNOP_CLOSE(vnode_t
, int, vfs_context_t
); 
 231 struct vnop_access_args 
{ 
 232         struct vnodeop_desc 
*a_desc
; 
 235         vfs_context_t a_context
; 
 237 extern errno_t 
VNOP_ACCESS(vnode_t
, int, vfs_context_t
); 
 245 struct vnop_getattr_args 
{ 
 246         struct vnodeop_desc 
*a_desc
; 
 248         struct vnode_attr 
*a_vap
; 
 249         vfs_context_t a_context
; 
 251 extern errno_t 
VNOP_GETATTR(vnode_t
, struct vnode_attr 
*, vfs_context_t
); 
 258 struct vnop_setattr_args 
{ 
 259         struct vnodeop_desc 
*a_desc
; 
 261         struct vnode_attr 
*a_vap
; 
 262         vfs_context_t a_context
; 
 264 extern errno_t 
VNOP_SETATTR(vnode_t
, struct vnode_attr 
*, vfs_context_t
); 
 268  *#% getattrlist  vp      = = = 
 271 struct vnop_getattrlist_args 
{ 
 272         struct vnodeop_desc 
*a_desc
; 
 274         struct attrlist 
*a_alist
; 
 277         vfs_context_t a_context
; 
 279 extern errno_t 
VNOP_GETATTRLIST(vnode_t
, struct attrlist 
*, struct uio 
*, int, vfs_context_t
); 
 284  *#% setattrlist  vp      L L L 
 287 struct vnop_setattrlist_args 
{ 
 288         struct vnodeop_desc 
*a_desc
; 
 290         struct attrlist 
*a_alist
; 
 293         vfs_context_t a_context
; 
 295 extern errno_t 
VNOP_SETATTRLIST(vnode_t
, struct attrlist 
*, struct uio 
*, int, vfs_context_t
); 
 303 struct vnop_read_args 
{ 
 304         struct vnodeop_desc 
*a_desc
; 
 308         vfs_context_t a_context
; 
 310 extern errno_t 
VNOP_READ(vnode_t
, struct uio 
*, int, vfs_context_t
); 
 318 struct vnop_write_args 
{ 
 319         struct vnodeop_desc 
*a_desc
; 
 323         vfs_context_t a_context
; 
 325 extern errno_t 
VNOP_WRITE(vnode_t
, struct uio 
*, int, vfs_context_t
); 
 333 struct vnop_ioctl_args 
{ 
 334         struct vnodeop_desc 
*a_desc
; 
 339         vfs_context_t a_context
; 
 341 extern errno_t 
VNOP_IOCTL(vnode_t
, u_long
, caddr_t
, int, vfs_context_t
); 
 349 struct vnop_select_args 
{ 
 350         struct vnodeop_desc 
*a_desc
; 
 355         vfs_context_t a_context
; 
 357 extern errno_t 
VNOP_SELECT(vnode_t
, int, int, void *, vfs_context_t
); 
 362  *#% exchange fvp         L L L 
 363  *#% exchange tvp         L L L 
 366 struct vnop_exchange_args 
{ 
 367         struct vnodeop_desc 
*a_desc
; 
 371         vfs_context_t a_context
; 
 373 extern errno_t 
VNOP_EXCHANGE(vnode_t
, vnode_t
, int, vfs_context_t
); 
 381 struct vnop_revoke_args 
{ 
 382         struct vnodeop_desc 
*a_desc
; 
 385         vfs_context_t a_context
; 
 387 extern errno_t 
VNOP_REVOKE(vnode_t
, int, vfs_context_t
); 
 395 struct vnop_mmap_args 
{ 
 396         struct vnodeop_desc 
*a_desc
; 
 399         vfs_context_t a_context
; 
 401 extern errno_t 
VNOP_MMAP(vnode_t
, int, vfs_context_t
); 
 408 struct vnop_mnomap_args 
{ 
 409         struct vnodeop_desc 
*a_desc
; 
 411         vfs_context_t a_context
; 
 413 extern errno_t 
VNOP_MNOMAP(vnode_t
, vfs_context_t
); 
 421 struct vnop_fsync_args 
{ 
 422         struct vnodeop_desc 
*a_desc
; 
 425         vfs_context_t a_context
; 
 427 extern errno_t 
VNOP_FSYNC(vnode_t
, int, vfs_context_t
); 
 436 struct vnop_remove_args 
{ 
 437         struct vnodeop_desc 
*a_desc
; 
 440         struct componentname 
*a_cnp
; 
 442         vfs_context_t a_context
; 
 444 extern errno_t 
VNOP_REMOVE(vnode_t
, vnode_t
, struct componentname 
*, int, vfs_context_t
); 
 453 struct vnop_link_args 
{ 
 454         struct vnodeop_desc 
*a_desc
; 
 457         struct componentname 
*a_cnp
; 
 458         vfs_context_t a_context
; 
 460 extern errno_t 
VNOP_LINK(vnode_t
, vnode_t
, struct componentname 
*, vfs_context_t
); 
 465  *#% rename       fdvp    U U U 
 467  *#% rename       tdvp    L U U 
 471 struct vnop_rename_args 
{ 
 472         struct vnodeop_desc 
*a_desc
; 
 475         struct componentname 
*a_fcnp
; 
 478         struct componentname 
*a_tcnp
; 
 479         vfs_context_t a_context
; 
 481 extern errno_t 
VNOP_RENAME(vnode_t
, vnode_t
, struct componentname 
*, vnode_t
, vnode_t
, struct componentname 
*, vfs_context_t
); 
 490 struct vnop_mkdir_args 
{ 
 491         struct vnodeop_desc 
*a_desc
; 
 494         struct componentname 
*a_cnp
; 
 495         struct vnode_attr 
*a_vap
; 
 496         vfs_context_t a_context
; 
 498 extern errno_t 
VNOP_MKDIR(vnode_t
, vnode_t 
*, struct componentname 
*, struct vnode_attr 
*, vfs_context_t
); 
 507 struct vnop_rmdir_args 
{ 
 508         struct vnodeop_desc 
*a_desc
; 
 511         struct componentname 
*a_cnp
; 
 512         vfs_context_t a_context
; 
 514 extern errno_t 
VNOP_RMDIR(vnode_t
, vnode_t
, struct componentname 
*, vfs_context_t
); 
 519  *#% symlink      dvp     L U U 
 520  *#% symlink      vpp     - U - 
 523 struct vnop_symlink_args 
{ 
 524        struct vnodeop_desc 
*a_desc
; 
 527        struct componentname 
*a_cnp
; 
 528        struct vnode_attr 
*a_vap
; 
 530        vfs_context_t a_context
; 
 532 extern errno_t 
VNOP_SYMLINK(vnode_t
, vnode_t 
*, struct componentname 
*, struct vnode_attr 
*, char *, vfs_context_t
); 
 540  *  When VNOP_READDIR is called from the NFS Server, the nfs_data 
 541  *  argument is non-NULL. 
 543  *  The value of nfs_eofflag should be set to TRUE if the end of 
 544  *  the directory was reached while reading. 
 546  *  The directory seek offset (cookies) are returned to the NFS client and 
 547  *  may be used later to restart a directory read part way through 
 548  *  the directory. There is one cookie returned for each directory 
 549  *  entry returned and its size is determince from nfs_sizeofcookie. 
 550  *  The value of the cookie should be the logical offset within the 
 551  *  directory where the on-disc version of the appropriate directory 
 552  *  entry starts. Memory for the cookies is allocated from M_TEMP 
 553  *  and it is freed by the caller of VNOP_READDIR. 
 557 struct vnop_readdir_args 
{ 
 558         struct vnodeop_desc 
*a_desc
; 
 564         vfs_context_t a_context
; 
 566 extern errno_t 
VNOP_READDIR(vnode_t
, struct uio 
*, int, int *, int *, vfs_context_t
); 
 571  *#% readdirattr  vp      L L L 
 574 struct vnop_readdirattr_args 
{ 
 575         struct vnodeop_desc 
*a_desc
; 
 577         struct attrlist 
*a_alist
; 
 583         u_long 
*a_actualcount
; 
 584         vfs_context_t a_context
; 
 586 extern errno_t 
VNOP_READDIRATTR(vnode_t
, struct attrlist 
*, struct uio 
*, u_long
, u_long
, u_long 
*, int *, u_long 
*, vfs_context_t
); 
 591  *#% readlink     vp      L L L 
 594 struct vnop_readlink_args 
{ 
 595         struct vnodeop_desc 
*a_desc
; 
 598         vfs_context_t a_context
; 
 600 extern errno_t 
VNOP_READLINK(vnode_t
, struct uio 
*, vfs_context_t
); 
 605  *#% inactive     vp      L U U 
 608 struct vnop_inactive_args 
{ 
 609         struct vnodeop_desc 
*a_desc
; 
 611         vfs_context_t a_context
; 
 613 extern errno_t 
VNOP_INACTIVE(vnode_t
, vfs_context_t
); 
 621 struct vnop_reclaim_args 
{ 
 622         struct vnodeop_desc 
*a_desc
; 
 624         vfs_context_t a_context
; 
 626 extern errno_t 
VNOP_RECLAIM(vnode_t
, vfs_context_t
); 
 631  *#% pathconf     vp      L L L 
 634 struct vnop_pathconf_args 
{ 
 635         struct vnodeop_desc 
*a_desc
; 
 638         register_t 
*a_retval
; 
 639         vfs_context_t a_context
; 
 641 extern errno_t 
VNOP_PATHCONF(vnode_t
, int, register_t 
*, vfs_context_t
); /* register_t??????? */ 
 649 struct vnop_advlock_args 
{ 
 650         struct vnodeop_desc 
*a_desc
; 
 656         vfs_context_t a_context
; 
 658 extern errno_t 
VNOP_ADVLOCK(vnode_t
, caddr_t
, int, struct flock 
*, int, vfs_context_t
); 
 662  *#% allocate     vp      L L L 
 665 struct vnop_allocate_args 
{ 
 666         struct vnodeop_desc 
*a_desc
; 
 670         off_t 
*a_bytesallocated
; 
 672         vfs_context_t a_context
; 
 674 extern errno_t 
VNOP_ALLOCATE(vnode_t
, off_t
, u_int32_t
, off_t 
*, off_t
, vfs_context_t
); 
 681 struct vnop_pagein_args 
{ 
 682         struct vnodeop_desc 
*a_desc
; 
 685         vm_offset_t a_pl_offset
; 
 689         vfs_context_t a_context
; 
 691 extern errno_t 
VNOP_PAGEIN(vnode_t
, upl_t
, vm_offset_t
, off_t
, size_t, int, vfs_context_t
); /* vm_offset_t ? */ 
 699 struct vnop_pageout_args 
{ 
 700         struct vnodeop_desc 
*a_desc
; 
 703         vm_offset_t a_pl_offset
; 
 707         vfs_context_t a_context
; 
 709 extern errno_t 
VNOP_PAGEOUT(vnode_t
, upl_t
, vm_offset_t
, off_t
, size_t, int, vfs_context_t
); 
 714  *#% searchfs     vp      L L L 
 717 struct vnop_searchfs_args 
{ 
 718         struct vnodeop_desc 
*a_desc
; 
 720         void *a_searchparams1
; 
 721         void *a_searchparams2
; 
 722         struct attrlist 
*a_searchattrs
; 
 724         struct timeval 
*a_timelimit
; 
 725         struct attrlist 
*a_returnattrs
; 
 726         u_long 
*a_nummatches
; 
 730         struct searchstate 
*a_searchstate
; 
 731         vfs_context_t a_context
; 
 733 extern errno_t 
VNOP_SEARCHFS(vnode_t
, void *, void *, struct attrlist 
*, u_long
, struct timeval 
*, struct attrlist 
*, u_long 
*, u_long
, u_long
, struct uio 
*, struct searchstate 
*, vfs_context_t
); 
 738  *#% copyfile fvp U U U 
 739  *#% copyfile tdvp L U U 
 740  *#% copyfile tvp X U U 
 743 struct vnop_copyfile_args 
{ 
 744         struct vnodeop_desc 
*a_desc
; 
 748         struct componentname 
*a_tcnp
; 
 751         vfs_context_t a_context
; 
 753 extern errno_t 
VNOP_COPYFILE(vnode_t
, vnode_t
, vnode_t
, struct componentname 
*, int, int, vfs_context_t
); 
 756 struct vnop_getxattr_args 
{ 
 757         struct vnodeop_desc 
*a_desc
; 
 763         vfs_context_t a_context
; 
 765 extern struct vnodeop_desc vnop_getxattr_desc
; 
 766 extern errno_t 
VNOP_GETXATTR(vnode_t
, const char *, uio_t
, size_t *, int, vfs_context_t
); 
 768 struct vnop_setxattr_args 
{ 
 769         struct vnodeop_desc 
*a_desc
; 
 774         vfs_context_t a_context
; 
 776 extern struct vnodeop_desc vnop_setxattr_desc
; 
 777 extern errno_t 
VNOP_SETXATTR(vnode_t
, const char *, uio_t
, int, vfs_context_t
); 
 779 struct vnop_removexattr_args 
{ 
 780         struct vnodeop_desc 
*a_desc
; 
 784         vfs_context_t a_context
; 
 786 extern struct vnodeop_desc vnop_removexattr_desc
; 
 787 extern errno_t 
VNOP_REMOVEXATTR(vnode_t
, const char *, int, vfs_context_t
); 
 789 struct vnop_listxattr_args 
{ 
 790         struct vnodeop_desc 
*a_desc
; 
 795         vfs_context_t a_context
; 
 797 extern struct vnodeop_desc vnop_listxattr_desc
; 
 798 extern errno_t 
VNOP_LISTXATTR(vnode_t
, uio_t
, size_t *, int, vfs_context_t
); 
 803  *#% blktooff vp = = = 
 806 struct vnop_blktooff_args 
{ 
 807         struct vnodeop_desc 
*a_desc
; 
 812 extern errno_t 
VNOP_BLKTOOFF(vnode_t
, daddr64_t
, off_t 
*);  
 817  *#% offtoblk vp = = = 
 820 struct vnop_offtoblk_args 
{ 
 821         struct vnodeop_desc 
*a_desc
; 
 826 extern errno_t 
VNOP_OFFTOBLK(vnode_t
, off_t
, daddr64_t 
*);  
 831  *#% blockmap vp L L L 
 834 struct vnop_blockmap_args 
{ 
 835         struct vnodeop_desc 
*a_desc
; 
 843         vfs_context_t a_context
; 
 845 extern errno_t 
VNOP_BLOCKMAP(vnode_t
, off_t
, size_t, daddr64_t 
*, size_t *, void *, 
 848 struct vnop_strategy_args 
{ 
 849         struct vnodeop_desc 
*a_desc
; 
 852 extern errno_t 
VNOP_STRATEGY(struct buf 
*bp
); 
 854 struct vnop_bwrite_args 
{ 
 855         struct vnodeop_desc 
*a_desc
; 
 858 extern errno_t 
VNOP_BWRITE(buf_t
); 
 861 struct vnop_kqfilt_add_args 
{ 
 862         struct vnodeop_desc 
*a_desc
; 
 865         vfs_context_t a_context
; 
 867 extern struct vnodeop_desc vnop_kqfilt_add_desc
; 
 868 extern errno_t 
VNOP_KQFILT_ADD(vnode_t 
, struct knote 
*, vfs_context_t
); 
 870 struct vnop_kqfilt_remove_args 
{ 
 871         struct vnodeop_desc 
*a_desc
; 
 874         vfs_context_t a_context
; 
 876 extern struct vnodeop_desc vnop_kqfilt_remove_desc
; 
 877 errno_t 
VNOP_KQFILT_REMOVE(vnode_t 
, uintptr_t , vfs_context_t
); 
 883 #endif /* !_SYS_VNODE_IF_H_ */