xref: /csrg-svn/sys/kern/vnode_if.src (revision 63183)
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