154647Smckusick# 2*63183Sbostic# Copyright (c) 1992, 1993 3*63183Sbostic# The Regents of the University of California. All rights reserved. 454647Smckusick# 554647Smckusick# %sccs.include.redist.sh% 654647Smckusick# 7*63183Sbostic# @(#)vnode_if.src 8.1 (Berkeley) 06/10/93 854647Smckusick# 954647Smckusickvop_lookup { 1054647Smckusick IN struct vnode *dvp; 1155087Spendry INOUT struct vnode **vpp; 1254647Smckusick IN struct componentname *cnp; 1354647Smckusick}; 1454647Smckusick 1554647Smckusickvop_create { 1654991Sheideman IN WILLRELE struct vnode *dvp; 1754647Smckusick OUT struct vnode **vpp; 1854647Smckusick IN struct componentname *cnp; 1954647Smckusick IN struct vattr *vap; 2054647Smckusick}; 2154647Smckusick 2254647Smckusickvop_mknod { 2354991Sheideman IN WILLRELE struct vnode *dvp; 2454991Sheideman OUT WILLRELE struct vnode **vpp; 2554647Smckusick IN struct componentname *cnp; 2654647Smckusick IN struct vattr *vap; 2754647Smckusick}; 2854647Smckusick 2954647Smckusickvop_open { 3054647Smckusick IN struct vnode *vp; 3154647Smckusick IN int mode; 3254647Smckusick IN struct ucred *cred; 3354647Smckusick IN struct proc *p; 3454647Smckusick}; 3554647Smckusick 3654647Smckusickvop_close { 3754647Smckusick IN struct vnode *vp; 3854647Smckusick IN int fflag; 3954647Smckusick IN struct ucred *cred; 4054647Smckusick IN struct proc *p; 4154647Smckusick}; 4254647Smckusick 4354647Smckusickvop_access { 4454647Smckusick IN struct vnode *vp; 4554647Smckusick IN int mode; 4654647Smckusick IN struct ucred *cred; 4754647Smckusick IN struct proc *p; 4854647Smckusick}; 4954647Smckusick 5054647Smckusickvop_getattr { 5154647Smckusick IN struct vnode *vp; 5254647Smckusick IN struct vattr *vap; 5354647Smckusick IN struct ucred *cred; 5454647Smckusick IN struct proc *p; 5554647Smckusick}; 5654647Smckusick 5754647Smckusickvop_setattr { 5854647Smckusick IN struct vnode *vp; 5954647Smckusick IN struct vattr *vap; 6054647Smckusick IN struct ucred *cred; 6154647Smckusick IN struct proc *p; 6254647Smckusick}; 6354647Smckusick 6454647Smckusickvop_read { 6554647Smckusick IN struct vnode *vp; 6654647Smckusick INOUT struct uio *uio; 6754647Smckusick IN int ioflag; 6854647Smckusick IN struct ucred *cred; 6954647Smckusick}; 7054647Smckusick 7154647Smckusickvop_write { 7254647Smckusick IN struct vnode *vp; 7354647Smckusick INOUT struct uio *uio; 7454647Smckusick IN int ioflag; 7554647Smckusick IN struct ucred *cred; 7654647Smckusick}; 7754647Smckusick 7854647Smckusickvop_ioctl { 7954647Smckusick IN struct vnode *vp; 8054647Smckusick IN int command; 8154647Smckusick IN caddr_t data; 8254647Smckusick IN int fflag; 8354647Smckusick IN struct ucred *cred; 8454647Smckusick IN struct proc *p; 8554647Smckusick}; 8654647Smckusick 8754647Smckusick# Needs work? (fflags) 8854647Smckusickvop_select { 8954647Smckusick IN struct vnode *vp; 9054647Smckusick IN int which; 9154647Smckusick IN int fflags; 9254647Smckusick IN struct ucred *cred; 9354647Smckusick IN struct proc *p; 9454647Smckusick}; 9554647Smckusick 9654647Smckusickvop_mmap { 9754647Smckusick IN struct vnode *vp; 9854647Smckusick IN int fflags; 9954647Smckusick IN struct ucred *cred; 10054647Smckusick IN struct proc *p; 10154647Smckusick}; 10254647Smckusick 10354647Smckusickvop_fsync { 10454647Smckusick IN struct vnode *vp; 10554647Smckusick IN struct ucred *cred; 10654647Smckusick IN int waitfor; 10754647Smckusick IN struct proc *p; 10854647Smckusick}; 10954647Smckusick 11054647Smckusick# Needs word: Is newoff right? What's it mean? 11154647Smckusickvop_seek { 11254647Smckusick IN struct vnode *vp; 11354647Smckusick IN off_t oldoff; 11454647Smckusick IN off_t newoff; 11554647Smckusick IN struct ucred *cred; 11654647Smckusick}; 11754647Smckusick 11854647Smckusickvop_remove { 11954991Sheideman IN WILLRELE struct vnode *dvp; 12054991Sheideman IN WILLRELE struct vnode *vp; 12154647Smckusick IN struct componentname *cnp; 12254647Smckusick}; 12354647Smckusick 12454647Smckusickvop_link { 12554991Sheideman IN WILLRELE struct vnode *vp; 12654647Smckusick IN struct vnode *tdvp; 12754647Smckusick IN struct componentname *cnp; 12854647Smckusick}; 12954647Smckusick 13054647Smckusickvop_rename { 13154991Sheideman IN WILLRELE struct vnode *fdvp; 13254991Sheideman IN WILLRELE struct vnode *fvp; 13354647Smckusick IN struct componentname *fcnp; 13454991Sheideman IN WILLRELE struct vnode *tdvp; 13554991Sheideman IN WILLRELE struct vnode *tvp; 13654647Smckusick IN struct componentname *tcnp; 13754647Smckusick}; 13854647Smckusick 13954647Smckusickvop_mkdir { 14054991Sheideman IN WILLRELE struct vnode *dvp; 14154647Smckusick OUT struct vnode **vpp; 14254647Smckusick IN struct componentname *cnp; 14354647Smckusick IN struct vattr *vap; 14454647Smckusick}; 14554647Smckusick 14654647Smckusickvop_rmdir { 14754991Sheideman IN WILLRELE struct vnode *dvp; 14854991Sheideman IN WILLRELE struct vnode *vp; 14954647Smckusick IN struct componentname *cnp; 15054647Smckusick}; 15154647Smckusick 15254647Smckusickvop_symlink { 15354991Sheideman IN WILLRELE struct vnode *dvp; 15454991Sheideman OUT WILLRELE struct vnode **vpp; 15554647Smckusick IN struct componentname *cnp; 15654647Smckusick IN struct vattr *vap; 15754647Smckusick IN char *target; 15854647Smckusick}; 15954647Smckusick 16054647Smckusickvop_readdir { 16154647Smckusick IN struct vnode *vp; 16254647Smckusick INOUT struct uio *uio; 16354647Smckusick IN struct ucred *cred; 16454647Smckusick}; 16554647Smckusick 16654647Smckusickvop_readlink { 16754647Smckusick IN struct vnode *vp; 16854647Smckusick INOUT struct uio *uio; 16954647Smckusick IN struct ucred *cred; 17054647Smckusick}; 17154647Smckusick 17254647Smckusickvop_abortop { 17354647Smckusick IN struct vnode *dvp; 17454647Smckusick IN struct componentname *cnp; 17554647Smckusick}; 17654647Smckusick 17754647Smckusickvop_inactive { 17854647Smckusick IN struct vnode *vp; 17954647Smckusick}; 18054647Smckusick 18154647Smckusickvop_reclaim { 18254647Smckusick IN struct vnode *vp; 18354647Smckusick}; 18454647Smckusick 18554647Smckusickvop_lock { 18654647Smckusick IN struct vnode *vp; 18754647Smckusick}; 18854647Smckusick 18954647Smckusickvop_unlock { 19054647Smckusick IN struct vnode *vp; 19154647Smckusick}; 19254647Smckusick 19354647Smckusickvop_bmap { 19454647Smckusick IN struct vnode *vp; 19554647Smckusick IN daddr_t bn; 19654647Smckusick OUT struct vnode **vpp; 19754647Smckusick IN daddr_t *bnp; 19856441Smargo OUT int *runp; 19954647Smckusick}; 20054647Smckusick 20154647Smckusick#vop_strategy { 20254647Smckusick# IN struct buf *bp; 20354647Smckusick#}; 20454647Smckusick 20554647Smckusickvop_print { 20654647Smckusick IN struct vnode *vp; 20754647Smckusick}; 20854647Smckusick 20954647Smckusickvop_islocked { 21054647Smckusick IN struct vnode *vp; 21154647Smckusick}; 21254647Smckusick 21360383Smckusickvop_pathconf { 21460383Smckusick IN struct vnode *vp; 21560383Smckusick IN int name; 21660383Smckusick OUT int *retval; 21760383Smckusick}; 21860383Smckusick 21954647Smckusickvop_advlock { 22054647Smckusick IN struct vnode *vp; 22154647Smckusick IN caddr_t id; 22254647Smckusick IN int op; 22354647Smckusick IN struct flock *fl; 22454647Smckusick IN int flags; 22554647Smckusick}; 22654647Smckusick 22754647Smckusickvop_blkatoff { 22854647Smckusick IN struct vnode *vp; 22954647Smckusick IN off_t offset; 23054647Smckusick OUT char **res; 23154647Smckusick OUT struct buf **bpp; 23254647Smckusick}; 23354647Smckusick 23454647Smckusickvop_valloc { 23554647Smckusick IN struct vnode *pvp; 23654647Smckusick IN int mode; 23754647Smckusick IN struct ucred *cred; 23854647Smckusick OUT struct vnode **vpp; 23954647Smckusick}; 24054647Smckusick 24154647Smckusickvop_vfree { 24254647Smckusick IN struct vnode *pvp; 24354647Smckusick IN ino_t ino; 24454647Smckusick IN int mode; 24554647Smckusick}; 24654647Smckusick 24754647Smckusickvop_truncate { 24854647Smckusick IN struct vnode *vp; 24954647Smckusick IN off_t length; 25054647Smckusick IN int flags; 25154647Smckusick IN struct ucred *cred; 25254647Smckusick IN struct proc *p; 25354647Smckusick}; 25454647Smckusick 25554647Smckusickvop_update { 25654647Smckusick IN struct vnode *vp; 25754647Smckusick IN struct timeval *ta; 25854647Smckusick IN struct timeval *tm; 25954647Smckusick IN int waitfor; 26054647Smckusick}; 26154647Smckusick 26254647Smckusick# Needs work: no vp? 26354647Smckusick#vop_bwrite { 26454647Smckusick# IN struct buf *bp; 26554647Smckusick#}; 266