Home | History | Annotate | Line # | Download | only in kern
vnode_if.src revision 1.7
      1 #	$NetBSD: vnode_if.src,v 1.7 1994/12/14 13:03:11 mycroft Exp $
      2 #
      3 # Copyright (c) 1992, 1993
      4 #	The Regents of the University of California.  All rights reserved.
      5 #
      6 # Redistribution and use in source and binary forms, with or without
      7 # modification, are permitted provided that the following conditions
      8 # are met:
      9 # 1. Redistributions of source code must retain the above copyright
     10 #    notice, this list of conditions and the following disclaimer.
     11 # 2. Redistributions in binary form must reproduce the above copyright
     12 #    notice, this list of conditions and the following disclaimer in the
     13 #    documentation and/or other materials provided with the distribution.
     14 # 3. All advertising materials mentioning features or use of this software
     15 #    must display the following acknowledgement:
     16 #	This product includes software developed by the University of
     17 #	California, Berkeley and its contributors.
     18 # 4. Neither the name of the University nor the names of its contributors
     19 #    may be used to endorse or promote products derived from this software
     20 #    without specific prior written permission.
     21 #
     22 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     23 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     24 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     25 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     26 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     27 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     28 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     29 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     30 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     31 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     32 # SUCH DAMAGE.
     33 #
     34 #	@(#)vnode_if.src	8.3 (Berkeley) 2/3/94
     35 #
     36 vop_lookup {
     37 	IN struct vnode *dvp;
     38 	INOUT struct vnode **vpp;
     39 	IN struct componentname *cnp;
     40 };
     41 
     42 vop_create {
     43 	IN WILLRELE struct vnode *dvp;
     44 	OUT struct vnode **vpp;
     45 	IN struct componentname *cnp;
     46 	IN struct vattr *vap;
     47 };
     48 
     49 vop_mknod {
     50 	IN WILLRELE struct vnode *dvp;
     51 	OUT WILLRELE struct vnode **vpp;
     52 	IN struct componentname *cnp;
     53 	IN struct vattr *vap;
     54 };
     55 
     56 vop_open {
     57 	IN struct vnode *vp;
     58 	IN int mode;
     59 	IN struct ucred *cred;
     60 	IN struct proc *p;
     61 	INOUT struct file *fp;
     62 };
     63 
     64 vop_close {
     65 	IN struct vnode *vp;
     66 	IN int fflag;
     67 	IN struct ucred *cred;
     68 	IN struct proc *p;
     69 };
     70 
     71 vop_access {
     72 	IN struct vnode *vp;
     73 	IN int mode;
     74 	IN struct ucred *cred;
     75 	IN struct proc *p;
     76 };
     77 
     78 vop_getattr {
     79 	IN struct vnode *vp;
     80 	IN struct vattr *vap;
     81 	IN struct ucred *cred;
     82 	IN struct proc *p;
     83 };
     84 
     85 vop_setattr {
     86 	IN struct vnode *vp;
     87 	IN struct vattr *vap;
     88 	IN struct ucred *cred;
     89 	IN struct proc *p;
     90 };
     91 
     92 vop_read {
     93 	IN struct vnode *vp;
     94 	INOUT struct uio *uio;
     95 	IN int ioflag;
     96 	IN struct ucred *cred;
     97 };
     98 
     99 vop_write {
    100 	IN struct vnode *vp;
    101 	INOUT struct uio *uio;
    102 	IN int ioflag;
    103 	IN struct ucred *cred;
    104 };
    105 
    106 vop_ioctl {
    107 	IN struct vnode *vp;
    108 	IN u_long command;
    109 	IN caddr_t data;
    110 	IN int fflag;
    111 	IN struct ucred *cred;
    112 	IN struct proc *p;
    113 };
    114 
    115 # Needs work?  (fflags)
    116 vop_select {
    117 	IN struct vnode *vp;
    118 	IN int which;
    119 	IN int fflags;
    120 	IN struct ucred *cred;
    121 	IN struct proc *p;
    122 };
    123 
    124 vop_mmap {
    125 	IN struct vnode *vp;
    126 	IN int fflags;
    127 	IN struct ucred *cred;
    128 	IN struct proc *p;
    129 };
    130 
    131 vop_fsync {
    132 	IN struct vnode *vp;
    133 	IN struct ucred *cred;
    134 	IN int waitfor;
    135 	IN struct proc *p;
    136 };
    137 
    138 # Needs word: Is newoff right?  What's it mean?
    139 vop_seek {
    140 	IN struct vnode *vp;
    141 	IN off_t oldoff;
    142 	IN off_t newoff;
    143 	IN struct ucred *cred;
    144 };
    145 
    146 vop_remove {
    147 	IN WILLRELE struct vnode *dvp;
    148 	IN WILLRELE struct vnode *vp;
    149 	IN struct componentname *cnp;
    150 };
    151 
    152 vop_link {
    153 	IN WILLRELE struct vnode *vp;
    154 	IN struct vnode *tdvp;
    155 	IN struct componentname *cnp;
    156 };
    157 
    158 vop_rename {
    159 	IN WILLRELE struct vnode *fdvp;
    160 	IN WILLRELE struct vnode *fvp;
    161 	IN struct componentname *fcnp;
    162 	IN WILLRELE struct vnode *tdvp;
    163 	IN WILLRELE struct vnode *tvp;
    164 	IN struct componentname *tcnp;
    165 };
    166 
    167 vop_mkdir {
    168 	IN WILLRELE struct vnode *dvp;
    169 	OUT struct vnode **vpp;
    170 	IN struct componentname *cnp;
    171 	IN struct vattr *vap;
    172 };
    173 
    174 vop_rmdir {
    175 	IN WILLRELE struct vnode *dvp;
    176 	IN WILLRELE struct vnode *vp;
    177 	IN struct componentname *cnp;
    178 };
    179 
    180 vop_symlink {
    181 	IN WILLRELE struct vnode *dvp;
    182 	OUT WILLRELE struct vnode **vpp;
    183 	IN struct componentname *cnp;
    184 	IN struct vattr *vap;
    185 	IN char *target;
    186 };
    187 
    188 vop_readdir {
    189 	IN struct vnode *vp;
    190 	INOUT struct uio *uio;
    191 	IN struct ucred *cred;
    192 	OUT int *eofflag;
    193 	OUT u_long *cookies;
    194 	IN int ncookies;
    195 };
    196 
    197 vop_readlink {
    198 	IN struct vnode *vp;
    199 	INOUT struct uio *uio;
    200 	IN struct ucred *cred;
    201 };
    202 
    203 vop_abortop {
    204 	IN struct vnode *dvp;
    205 	IN struct componentname *cnp;
    206 };
    207 
    208 vop_inactive {
    209 	IN struct vnode *vp;
    210 };
    211 
    212 vop_reclaim {
    213 	IN struct vnode *vp;
    214 };
    215 
    216 vop_lock {
    217 	IN struct vnode *vp;
    218 };
    219 
    220 vop_unlock {
    221 	IN struct vnode *vp;
    222 };
    223 
    224 vop_bmap {
    225 	IN struct vnode *vp;
    226 	IN daddr_t bn;
    227 	OUT struct vnode **vpp;
    228 	IN daddr_t *bnp;
    229 	OUT int *runp;
    230 };
    231 
    232 #vop_strategy {
    233 #	IN struct buf *bp;
    234 #};
    235 
    236 vop_print {
    237 	IN struct vnode *vp;
    238 };
    239 
    240 vop_islocked {
    241 	IN struct vnode *vp;
    242 };
    243 
    244 vop_pathconf {
    245 	IN struct vnode *vp;
    246 	IN int name;
    247 	OUT register_t *retval;
    248 };
    249 
    250 vop_advlock {
    251 	IN struct vnode *vp;
    252 	IN caddr_t id;
    253 	IN int op;
    254 	IN struct flock *fl;
    255 	IN int flags;
    256 };
    257 
    258 vop_blkatoff {
    259 	IN struct vnode *vp;
    260 	IN off_t offset;
    261 	OUT char **res;
    262 	OUT struct buf **bpp;
    263 };
    264 
    265 vop_valloc {
    266 	IN struct vnode *pvp;
    267 	IN int mode;
    268 	IN struct ucred *cred;
    269 	OUT struct vnode **vpp;
    270 };
    271 
    272 vop_reallocblks {
    273 	IN struct vnode *vp;
    274 	IN struct cluster_save *buflist;
    275 };
    276 
    277 vop_vfree {
    278 	IN struct vnode *pvp;
    279 	IN ino_t ino;
    280 	IN int mode;
    281 };
    282 
    283 vop_truncate {
    284 	IN struct vnode *vp;
    285 	IN off_t length;
    286 	IN int flags;
    287 	IN struct ucred *cred;
    288 	IN struct proc *p;
    289 };
    290 
    291 vop_update {
    292 	IN struct vnode *vp;
    293 	IN struct timeval *access;
    294 	IN struct timeval *modify;
    295 	IN int waitfor;
    296 };
    297 
    298 vop_lease {
    299 	IN struct vnode *vp;
    300 	IN struct proc *p;
    301 	IN struct ucred *cred;
    302 	IN int flag;
    303 };
    304 
    305 vop_whiteout {
    306 	IN struct vnode *dvp;
    307 	IN struct componentname *cnp;
    308 	IN int flags;
    309 };
    310 
    311 # Needs work: no vp?
    312 #vop_bwrite {
    313 #	IN struct buf *bp;
    314 #};
    315