Home | History | Annotate | Line # | Download | only in kern
vnode_if.src revision 1.2
      1 #	$NetBSD: vnode_if.src,v 1.2 1994/06/29 06:34:07 cgd 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 };
     62 
     63 vop_close {
     64 	IN struct vnode *vp;
     65 	IN int fflag;
     66 	IN struct ucred *cred;
     67 	IN struct proc *p;
     68 };
     69 
     70 vop_access {
     71 	IN struct vnode *vp;
     72 	IN int mode;
     73 	IN struct ucred *cred;
     74 	IN struct proc *p;
     75 };
     76 
     77 vop_getattr {
     78 	IN struct vnode *vp;
     79 	IN struct vattr *vap;
     80 	IN struct ucred *cred;
     81 	IN struct proc *p;
     82 };
     83 
     84 vop_setattr {
     85 	IN struct vnode *vp;
     86 	IN struct vattr *vap;
     87 	IN struct ucred *cred;
     88 	IN struct proc *p;
     89 };
     90 
     91 vop_read {
     92 	IN struct vnode *vp;
     93 	INOUT struct uio *uio;
     94 	IN int ioflag;
     95 	IN struct ucred *cred;
     96 };
     97 
     98 vop_write {
     99 	IN struct vnode *vp;
    100 	INOUT struct uio *uio;
    101 	IN int ioflag;
    102 	IN struct ucred *cred;
    103 };
    104 
    105 vop_ioctl {
    106 	IN struct vnode *vp;
    107 	IN int command;
    108 	IN caddr_t data;
    109 	IN int fflag;
    110 	IN struct ucred *cred;
    111 	IN struct proc *p;
    112 };
    113 
    114 # Needs work?  (fflags)
    115 vop_select {
    116 	IN struct vnode *vp;
    117 	IN int which;
    118 	IN int fflags;
    119 	IN struct ucred *cred;
    120 	IN struct proc *p;
    121 };
    122 
    123 vop_mmap {
    124 	IN struct vnode *vp;
    125 	IN int fflags;
    126 	IN struct ucred *cred;
    127 	IN struct proc *p;
    128 };
    129 
    130 vop_fsync {
    131 	IN struct vnode *vp;
    132 	IN struct ucred *cred;
    133 	IN int waitfor;
    134 	IN struct proc *p;
    135 };
    136 
    137 # Needs word: Is newoff right?  What's it mean?
    138 vop_seek {
    139 	IN struct vnode *vp;
    140 	IN off_t oldoff;
    141 	IN off_t newoff;
    142 	IN struct ucred *cred;
    143 };
    144 
    145 vop_remove {
    146 	IN WILLRELE struct vnode *dvp;
    147 	IN WILLRELE struct vnode *vp;
    148 	IN struct componentname *cnp;
    149 };
    150 
    151 vop_link {
    152 	IN WILLRELE struct vnode *vp;
    153 	IN struct vnode *tdvp;
    154 	IN struct componentname *cnp;
    155 };
    156 
    157 vop_rename {
    158 	IN WILLRELE struct vnode *fdvp;
    159 	IN WILLRELE struct vnode *fvp;
    160 	IN struct componentname *fcnp;
    161 	IN WILLRELE struct vnode *tdvp;
    162 	IN WILLRELE struct vnode *tvp;
    163 	IN struct componentname *tcnp;
    164 };
    165 
    166 vop_mkdir {
    167 	IN WILLRELE struct vnode *dvp;
    168 	OUT struct vnode **vpp;
    169 	IN struct componentname *cnp;
    170 	IN struct vattr *vap;
    171 };
    172 
    173 vop_rmdir {
    174 	IN WILLRELE struct vnode *dvp;
    175 	IN WILLRELE struct vnode *vp;
    176 	IN struct componentname *cnp;
    177 };
    178 
    179 vop_symlink {
    180 	IN WILLRELE struct vnode *dvp;
    181 	OUT WILLRELE struct vnode **vpp;
    182 	IN struct componentname *cnp;
    183 	IN struct vattr *vap;
    184 	IN char *target;
    185 };
    186 
    187 vop_readdir {
    188 	IN struct vnode *vp;
    189 	INOUT struct uio *uio;
    190 	IN struct ucred *cred;
    191 	OUT int *eofflag;
    192 	OUT u_long *cookies;
    193 	IN int ncookies;
    194 };
    195 
    196 vop_readlink {
    197 	IN struct vnode *vp;
    198 	INOUT struct uio *uio;
    199 	IN struct ucred *cred;
    200 };
    201 
    202 vop_abortop {
    203 	IN struct vnode *dvp;
    204 	IN struct componentname *cnp;
    205 };
    206 
    207 vop_inactive {
    208 	IN struct vnode *vp;
    209 };
    210 
    211 vop_reclaim {
    212 	IN struct vnode *vp;
    213 };
    214 
    215 vop_lock {
    216 	IN struct vnode *vp;
    217 };
    218 
    219 vop_unlock {
    220 	IN struct vnode *vp;
    221 };
    222 
    223 vop_bmap {
    224 	IN struct vnode *vp;
    225 	IN daddr_t bn;
    226 	OUT struct vnode **vpp;
    227 	IN daddr_t *bnp;
    228 	OUT int *runp;
    229 };
    230 
    231 #vop_strategy {
    232 #	IN struct buf *bp;
    233 #};
    234 
    235 vop_print {
    236 	IN struct vnode *vp;
    237 };
    238 
    239 vop_islocked {
    240 	IN struct vnode *vp;
    241 };
    242 
    243 vop_pathconf {
    244 	IN struct vnode *vp;
    245 	IN int name;
    246 	OUT int *retval;
    247 };
    248 
    249 vop_advlock {
    250 	IN struct vnode *vp;
    251 	IN caddr_t id;
    252 	IN int op;
    253 	IN struct flock *fl;
    254 	IN int flags;
    255 };
    256 
    257 vop_blkatoff {
    258 	IN struct vnode *vp;
    259 	IN off_t offset;
    260 	OUT char **res;
    261 	OUT struct buf **bpp;
    262 };
    263 
    264 vop_valloc {
    265 	IN struct vnode *pvp;
    266 	IN int mode;
    267 	IN struct ucred *cred;
    268 	OUT struct vnode **vpp;
    269 };
    270 
    271 vop_reallocblks {
    272 	IN struct vnode *vp;
    273 	IN struct cluster_save *buflist;
    274 };
    275 
    276 vop_vfree {
    277 	IN struct vnode *pvp;
    278 	IN ino_t ino;
    279 	IN int mode;
    280 };
    281 
    282 vop_truncate {
    283 	IN struct vnode *vp;
    284 	IN off_t length;
    285 	IN int flags;
    286 	IN struct ucred *cred;
    287 	IN struct proc *p;
    288 };
    289 
    290 vop_update {
    291 	IN struct vnode *vp;
    292 	IN struct timeval *access;
    293 	IN struct timeval *modify;
    294 	IN int waitfor;
    295 };
    296 
    297 # Needs work: no vp?
    298 #vop_bwrite {
    299 #	IN struct buf *bp;
    300 #};
    301