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