Home | History | Annotate | Line # | Download | only in kern
vnode_if.src revision 1.11
      1 #	$NetBSD: vnode_if.src,v 1.11 1996/09/07 12:41:06 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 };
     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 u_long command;
    108 	IN caddr_t data;
    109 	IN int fflag;
    110 	IN struct ucred *cred;
    111 	IN struct proc *p;
    112 };
    113 
    114 vop_poll {
    115 	IN struct vnode *vp;
    116 	IN int events;
    117 	IN struct proc *p;
    118 };
    119 
    120 vop_mmap {
    121 	IN struct vnode *vp;
    122 	IN int fflags;
    123 	IN struct ucred *cred;
    124 	IN struct proc *p;
    125 };
    126 
    127 vop_fsync {
    128 	IN struct vnode *vp;
    129 	IN struct ucred *cred;
    130 	IN int waitfor;
    131 	IN struct proc *p;
    132 };
    133 
    134 # Needs word: Is newoff right?  What's it mean?
    135 vop_seek {
    136 	IN struct vnode *vp;
    137 	IN off_t oldoff;
    138 	IN off_t newoff;
    139 	IN struct ucred *cred;
    140 };
    141 
    142 vop_remove {
    143 	IN WILLRELE struct vnode *dvp;
    144 	IN WILLRELE struct vnode *vp;
    145 	IN struct componentname *cnp;
    146 };
    147 
    148 vop_link {
    149 	IN WILLRELE struct vnode *dvp;
    150 	IN struct vnode *vp;
    151 	IN struct componentname *cnp;
    152 };
    153 
    154 vop_rename {
    155 	IN WILLRELE struct vnode *fdvp;
    156 	IN WILLRELE struct vnode *fvp;
    157 	IN struct componentname *fcnp;
    158 	IN WILLRELE struct vnode *tdvp;
    159 	IN WILLRELE struct vnode *tvp;
    160 	IN struct componentname *tcnp;
    161 };
    162 
    163 vop_mkdir {
    164 	IN WILLRELE struct vnode *dvp;
    165 	OUT struct vnode **vpp;
    166 	IN struct componentname *cnp;
    167 	IN struct vattr *vap;
    168 };
    169 
    170 vop_rmdir {
    171 	IN WILLRELE struct vnode *dvp;
    172 	IN WILLRELE struct vnode *vp;
    173 	IN struct componentname *cnp;
    174 };
    175 
    176 vop_symlink {
    177 	IN WILLRELE struct vnode *dvp;
    178 	OUT WILLRELE struct vnode **vpp;
    179 	IN struct componentname *cnp;
    180 	IN struct vattr *vap;
    181 	IN char *target;
    182 };
    183 
    184 vop_readdir {
    185 	IN struct vnode *vp;
    186 	INOUT struct uio *uio;
    187 	IN struct ucred *cred;
    188 	OUT int *eofflag;
    189 	OUT u_long *cookies;
    190 	IN int ncookies;
    191 };
    192 
    193 vop_readlink {
    194 	IN struct vnode *vp;
    195 	INOUT struct uio *uio;
    196 	IN struct ucred *cred;
    197 };
    198 
    199 vop_abortop {
    200 	IN struct vnode *dvp;
    201 	IN struct componentname *cnp;
    202 };
    203 
    204 vop_inactive {
    205 	IN struct vnode *vp;
    206 };
    207 
    208 vop_reclaim {
    209 	IN struct vnode *vp;
    210 };
    211 
    212 vop_lock {
    213 	IN struct vnode *vp;
    214 };
    215 
    216 vop_unlock {
    217 	IN struct vnode *vp;
    218 };
    219 
    220 vop_bmap {
    221 	IN struct vnode *vp;
    222 	IN daddr_t bn;
    223 	OUT struct vnode **vpp;
    224 	IN daddr_t *bnp;
    225 	OUT int *runp;
    226 };
    227 
    228 #vop_strategy {
    229 #	IN struct buf *bp;
    230 #};
    231 
    232 vop_print {
    233 	IN struct vnode *vp;
    234 };
    235 
    236 vop_islocked {
    237 	IN struct vnode *vp;
    238 };
    239 
    240 vop_pathconf {
    241 	IN struct vnode *vp;
    242 	IN int name;
    243 	OUT register_t *retval;
    244 };
    245 
    246 vop_advlock {
    247 	IN struct vnode *vp;
    248 	IN caddr_t id;
    249 	IN int op;
    250 	IN struct flock *fl;
    251 	IN int flags;
    252 };
    253 
    254 vop_blkatoff {
    255 	IN struct vnode *vp;
    256 	IN off_t offset;
    257 	OUT char **res;
    258 	OUT struct buf **bpp;
    259 };
    260 
    261 vop_valloc {
    262 	IN struct vnode *pvp;
    263 	IN int mode;
    264 	IN struct ucred *cred;
    265 	OUT struct vnode **vpp;
    266 };
    267 
    268 vop_reallocblks {
    269 	IN struct vnode *vp;
    270 	IN struct cluster_save *buflist;
    271 };
    272 
    273 vop_vfree {
    274 	IN struct vnode *pvp;
    275 	IN ino_t ino;
    276 	IN int mode;
    277 };
    278 
    279 vop_truncate {
    280 	IN struct vnode *vp;
    281 	IN off_t length;
    282 	IN int flags;
    283 	IN struct ucred *cred;
    284 	IN struct proc *p;
    285 };
    286 
    287 vop_update {
    288 	IN struct vnode *vp;
    289 	IN struct timespec *access;
    290 	IN struct timespec *modify;
    291 	IN int waitfor;
    292 };
    293 
    294 vop_lease {
    295 	IN struct vnode *vp;
    296 	IN struct proc *p;
    297 	IN struct ucred *cred;
    298 	IN int flag;
    299 };
    300 
    301 vop_whiteout {
    302 	IN struct vnode *dvp;
    303 	IN struct componentname *cnp;
    304 	IN int flags;
    305 };
    306 
    307 # Needs work: no vp?
    308 #vop_bwrite {
    309 #	IN struct buf *bp;
    310 #};
    311