1*54647Smckusick# 2*54647Smckusick# Copyright (c) 1992 The Regents of the University of California. 3*54647Smckusick# All rights reserved. 4*54647Smckusick# 5*54647Smckusick# %sccs.include.redist.sh% 6*54647Smckusick# 7*54647Smckusick# @(#)vnode_if.src 7.1 (Berkeley) 07/03/92 8*54647Smckusick# 9*54647Smckusickvop_lookup { 10*54647Smckusick IN struct vnode *dvp; 11*54647Smckusick OUT struct vnode **vpp; 12*54647Smckusick IN struct componentname *cnp; 13*54647Smckusick}; 14*54647Smckusick 15*54647Smckusickvop_create { 16*54647Smckusick IN struct vnode *dvp; 17*54647Smckusick OUT struct vnode **vpp; 18*54647Smckusick IN struct componentname *cnp; 19*54647Smckusick IN struct vattr *vap; 20*54647Smckusick}; 21*54647Smckusick 22*54647Smckusickvop_mknod { 23*54647Smckusick IN struct vnode *dvp; 24*54647Smckusick OUT struct vnode **vpp; 25*54647Smckusick IN struct componentname *cnp; 26*54647Smckusick IN struct vattr *vap; 27*54647Smckusick}; 28*54647Smckusick 29*54647Smckusickvop_open { 30*54647Smckusick IN struct vnode *vp; 31*54647Smckusick IN int mode; 32*54647Smckusick IN struct ucred *cred; 33*54647Smckusick IN struct proc *p; 34*54647Smckusick}; 35*54647Smckusick 36*54647Smckusickvop_close { 37*54647Smckusick IN struct vnode *vp; 38*54647Smckusick IN int fflag; 39*54647Smckusick IN struct ucred *cred; 40*54647Smckusick IN struct proc *p; 41*54647Smckusick}; 42*54647Smckusick 43*54647Smckusickvop_access { 44*54647Smckusick IN struct vnode *vp; 45*54647Smckusick IN int mode; 46*54647Smckusick IN struct ucred *cred; 47*54647Smckusick IN struct proc *p; 48*54647Smckusick}; 49*54647Smckusick 50*54647Smckusickvop_getattr { 51*54647Smckusick IN struct vnode *vp; 52*54647Smckusick IN struct vattr *vap; 53*54647Smckusick IN struct ucred *cred; 54*54647Smckusick IN struct proc *p; 55*54647Smckusick}; 56*54647Smckusick 57*54647Smckusickvop_setattr { 58*54647Smckusick IN struct vnode *vp; 59*54647Smckusick IN struct vattr *vap; 60*54647Smckusick IN struct ucred *cred; 61*54647Smckusick IN struct proc *p; 62*54647Smckusick}; 63*54647Smckusick 64*54647Smckusickvop_read { 65*54647Smckusick IN struct vnode *vp; 66*54647Smckusick INOUT struct uio *uio; 67*54647Smckusick IN int ioflag; 68*54647Smckusick IN struct ucred *cred; 69*54647Smckusick}; 70*54647Smckusick 71*54647Smckusickvop_write { 72*54647Smckusick IN struct vnode *vp; 73*54647Smckusick INOUT struct uio *uio; 74*54647Smckusick IN int ioflag; 75*54647Smckusick IN struct ucred *cred; 76*54647Smckusick}; 77*54647Smckusick 78*54647Smckusickvop_ioctl { 79*54647Smckusick IN struct vnode *vp; 80*54647Smckusick IN int command; 81*54647Smckusick IN caddr_t data; 82*54647Smckusick IN int fflag; 83*54647Smckusick IN struct ucred *cred; 84*54647Smckusick IN struct proc *p; 85*54647Smckusick}; 86*54647Smckusick 87*54647Smckusick# Needs work? (fflags) 88*54647Smckusickvop_select { 89*54647Smckusick IN struct vnode *vp; 90*54647Smckusick IN int which; 91*54647Smckusick IN int fflags; 92*54647Smckusick IN struct ucred *cred; 93*54647Smckusick IN struct proc *p; 94*54647Smckusick}; 95*54647Smckusick 96*54647Smckusickvop_mmap { 97*54647Smckusick IN struct vnode *vp; 98*54647Smckusick IN int fflags; 99*54647Smckusick IN struct ucred *cred; 100*54647Smckusick IN struct proc *p; 101*54647Smckusick}; 102*54647Smckusick 103*54647Smckusickvop_fsync { 104*54647Smckusick IN struct vnode *vp; 105*54647Smckusick IN struct ucred *cred; 106*54647Smckusick IN int waitfor; 107*54647Smckusick IN struct proc *p; 108*54647Smckusick}; 109*54647Smckusick 110*54647Smckusick# Needs word: Is newoff right? What's it mean? 111*54647Smckusickvop_seek { 112*54647Smckusick IN struct vnode *vp; 113*54647Smckusick IN off_t oldoff; 114*54647Smckusick IN off_t newoff; 115*54647Smckusick IN struct ucred *cred; 116*54647Smckusick}; 117*54647Smckusick 118*54647Smckusickvop_remove { 119*54647Smckusick IN struct vnode *dvp; 120*54647Smckusick IN struct vnode *vp; 121*54647Smckusick IN struct componentname *cnp; 122*54647Smckusick}; 123*54647Smckusick 124*54647Smckusickvop_link { 125*54647Smckusick IN struct vnode *vp; 126*54647Smckusick IN struct vnode *tdvp; 127*54647Smckusick IN struct componentname *cnp; 128*54647Smckusick}; 129*54647Smckusick 130*54647Smckusickvop_rename { 131*54647Smckusick IN struct vnode *fdvp; 132*54647Smckusick IN struct vnode *fvp; 133*54647Smckusick IN struct componentname *fcnp; 134*54647Smckusick IN struct vnode *tdvp; 135*54647Smckusick IN struct vnode *tvp; 136*54647Smckusick IN struct componentname *tcnp; 137*54647Smckusick}; 138*54647Smckusick 139*54647Smckusickvop_mkdir { 140*54647Smckusick IN struct vnode *dvp; 141*54647Smckusick OUT struct vnode **vpp; 142*54647Smckusick IN struct componentname *cnp; 143*54647Smckusick IN struct vattr *vap; 144*54647Smckusick}; 145*54647Smckusick 146*54647Smckusickvop_rmdir { 147*54647Smckusick IN struct vnode *dvp; 148*54647Smckusick IN struct vnode *vp; 149*54647Smckusick IN struct componentname *cnp; 150*54647Smckusick}; 151*54647Smckusick 152*54647Smckusickvop_symlink { 153*54647Smckusick IN struct vnode *dvp; 154*54647Smckusick OUT struct vnode **vpp; 155*54647Smckusick IN struct componentname *cnp; 156*54647Smckusick IN struct vattr *vap; 157*54647Smckusick IN char *target; 158*54647Smckusick}; 159*54647Smckusick 160*54647Smckusickvop_readdir { 161*54647Smckusick IN struct vnode *vp; 162*54647Smckusick INOUT struct uio *uio; 163*54647Smckusick IN struct ucred *cred; 164*54647Smckusick}; 165*54647Smckusick 166*54647Smckusickvop_readlink { 167*54647Smckusick IN struct vnode *vp; 168*54647Smckusick INOUT struct uio *uio; 169*54647Smckusick IN struct ucred *cred; 170*54647Smckusick}; 171*54647Smckusick 172*54647Smckusickvop_abortop { 173*54647Smckusick IN struct vnode *dvp; 174*54647Smckusick IN struct componentname *cnp; 175*54647Smckusick}; 176*54647Smckusick 177*54647Smckusickvop_inactive { 178*54647Smckusick IN struct vnode *vp; 179*54647Smckusick}; 180*54647Smckusick 181*54647Smckusickvop_reclaim { 182*54647Smckusick IN struct vnode *vp; 183*54647Smckusick}; 184*54647Smckusick 185*54647Smckusickvop_lock { 186*54647Smckusick IN struct vnode *vp; 187*54647Smckusick}; 188*54647Smckusick 189*54647Smckusickvop_unlock { 190*54647Smckusick IN struct vnode *vp; 191*54647Smckusick}; 192*54647Smckusick 193*54647Smckusickvop_bmap { 194*54647Smckusick IN struct vnode *vp; 195*54647Smckusick IN daddr_t bn; 196*54647Smckusick OUT struct vnode **vpp; 197*54647Smckusick IN daddr_t *bnp; 198*54647Smckusick}; 199*54647Smckusick 200*54647Smckusick#vop_strategy { 201*54647Smckusick# IN struct buf *bp; 202*54647Smckusick#}; 203*54647Smckusick 204*54647Smckusickvop_print { 205*54647Smckusick IN struct vnode *vp; 206*54647Smckusick}; 207*54647Smckusick 208*54647Smckusickvop_islocked { 209*54647Smckusick IN struct vnode *vp; 210*54647Smckusick}; 211*54647Smckusick 212*54647Smckusickvop_advlock { 213*54647Smckusick IN struct vnode *vp; 214*54647Smckusick IN caddr_t id; 215*54647Smckusick IN int op; 216*54647Smckusick IN struct flock *fl; 217*54647Smckusick IN int flags; 218*54647Smckusick}; 219*54647Smckusick 220*54647Smckusickvop_blkatoff { 221*54647Smckusick IN struct vnode *vp; 222*54647Smckusick IN off_t offset; 223*54647Smckusick OUT char **res; 224*54647Smckusick OUT struct buf **bpp; 225*54647Smckusick}; 226*54647Smckusick 227*54647Smckusick# Needs to move to VFS interface? 228*54647Smckusick#vop_vget { 229*54647Smckusick# IN struct mount *mp; 230*54647Smckusick# IN ino_t ino; 231*54647Smckusick# OUT struct vnode **vpp; 232*54647Smckusick#}; 233*54647Smckusick 234*54647Smckusickvop_valloc { 235*54647Smckusick IN struct vnode *pvp; 236*54647Smckusick IN int mode; 237*54647Smckusick IN struct ucred *cred; 238*54647Smckusick OUT struct vnode **vpp; 239*54647Smckusick}; 240*54647Smckusick 241*54647Smckusickvop_vfree { 242*54647Smckusick IN struct vnode *pvp; 243*54647Smckusick IN ino_t ino; 244*54647Smckusick IN int mode; 245*54647Smckusick}; 246*54647Smckusick 247*54647Smckusickvop_truncate { 248*54647Smckusick IN struct vnode *vp; 249*54647Smckusick IN off_t length; 250*54647Smckusick IN int flags; 251*54647Smckusick IN struct ucred *cred; 252*54647Smckusick IN struct proc *p; 253*54647Smckusick}; 254*54647Smckusick 255*54647Smckusickvop_update { 256*54647Smckusick IN struct vnode *vp; 257*54647Smckusick IN struct timeval *ta; 258*54647Smckusick IN struct timeval *tm; 259*54647Smckusick IN int waitfor; 260*54647Smckusick}; 261*54647Smckusick 262*54647Smckusick# Needs work: no vp? 263*54647Smckusick#vop_bwrite { 264*54647Smckusick# IN struct buf *bp; 265*54647Smckusick#}; 266