|
|
1.1 root 1: #
2: # Copyright (c) 1992, 1993
3: # The Regents of the University of California. All rights reserved.
4: #
5: # Redistribution and use in source and binary forms, with or without
6: # modification, are permitted provided that the following conditions
7: # are met:
8: # 1. Redistributions of source code must retain the above copyright
9: # notice, this list of conditions and the following disclaimer.
10: # 2. Redistributions in binary form must reproduce the above copyright
11: # notice, this list of conditions and the following disclaimer in the
12: # documentation and/or other materials provided with the distribution.
13: # 3. All advertising materials mentioning features or use of this software
14: # must display the following acknowledgement:
15: # This product includes software developed by the University of
16: # California, Berkeley and its contributors.
17: # 4. Neither the name of the University nor the names of its contributors
18: # may be used to endorse or promote products derived from this software
19: # without specific prior written permission.
20: #
21: # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31: # SUCH DAMAGE.
32: #
33: # @(#)vnode_if.src 8.3 (Berkeley) 2/3/94
34: #
35: vop_lookup {
36: IN struct vnode *dvp;
37: INOUT struct vnode **vpp;
38: IN struct componentname *cnp;
39: };
40:
41: vop_create {
42: IN WILLRELE struct vnode *dvp;
43: OUT struct vnode **vpp;
44: IN struct componentname *cnp;
45: IN struct vattr *vap;
46: };
47:
48: vop_mknod {
49: IN WILLRELE struct vnode *dvp;
50: OUT WILLRELE struct vnode **vpp;
51: IN struct componentname *cnp;
52: IN struct vattr *vap;
53: };
54:
55: vop_open {
56: IN struct vnode *vp;
57: IN int mode;
58: IN struct ucred *cred;
59: IN struct proc *p;
60: };
61:
62: vop_close {
63: IN struct vnode *vp;
64: IN int fflag;
65: IN struct ucred *cred;
66: IN struct proc *p;
67: };
68:
69: vop_access {
70: IN struct vnode *vp;
71: IN int mode;
72: IN struct ucred *cred;
73: IN struct proc *p;
74: };
75:
76: vop_getattr {
77: IN struct vnode *vp;
78: IN struct vattr *vap;
79: IN struct ucred *cred;
80: IN struct proc *p;
81: };
82:
83: vop_setattr {
84: IN struct vnode *vp;
85: IN struct vattr *vap;
86: IN struct ucred *cred;
87: IN struct proc *p;
88: };
89:
90: vop_read {
91: IN struct vnode *vp;
92: INOUT struct uio *uio;
93: IN int ioflag;
94: IN struct ucred *cred;
95: };
96:
97: vop_write {
98: IN struct vnode *vp;
99: INOUT struct uio *uio;
100: IN int ioflag;
101: IN struct ucred *cred;
102: };
103:
104: vop_ioctl {
105: IN struct vnode *vp;
106: IN int command;
107: IN caddr_t data;
108: IN int fflag;
109: IN struct ucred *cred;
110: IN struct proc *p;
111: };
112:
113: # Needs work? (fflags)
114: vop_select {
115: IN struct vnode *vp;
116: IN int which;
117: IN int fflags;
118: IN struct ucred *cred;
119: IN struct proc *p;
120: };
121:
122: vop_mmap {
123: IN struct vnode *vp;
124: IN int fflags;
125: IN struct ucred *cred;
126: IN struct proc *p;
127: };
128:
129: vop_fsync {
130: IN struct vnode *vp;
131: IN struct ucred *cred;
132: IN int waitfor;
133: IN struct proc *p;
134: };
135:
136: # Needs word: Is newoff right? What's it mean?
137: vop_seek {
138: IN struct vnode *vp;
139: IN off_t oldoff;
140: IN off_t newoff;
141: IN struct ucred *cred;
142: };
143:
144: vop_remove {
145: IN WILLRELE struct vnode *dvp;
146: IN WILLRELE struct vnode *vp;
147: IN struct componentname *cnp;
148: };
149:
150: vop_link {
151: IN WILLRELE struct vnode *vp;
152: IN struct vnode *tdvp;
153: IN struct componentname *cnp;
154: };
155:
156: vop_rename {
157: IN WILLRELE struct vnode *fdvp;
158: IN WILLRELE struct vnode *fvp;
159: IN struct componentname *fcnp;
160: IN WILLRELE struct vnode *tdvp;
161: IN WILLRELE struct vnode *tvp;
162: IN struct componentname *tcnp;
163: };
164:
165: vop_mkdir {
166: IN WILLRELE struct vnode *dvp;
167: OUT struct vnode **vpp;
168: IN struct componentname *cnp;
169: IN struct vattr *vap;
170: };
171:
172: vop_rmdir {
173: IN WILLRELE struct vnode *dvp;
174: IN WILLRELE struct vnode *vp;
175: IN struct componentname *cnp;
176: };
177:
178: vop_symlink {
179: IN WILLRELE struct vnode *dvp;
180: OUT WILLRELE struct vnode **vpp;
181: IN struct componentname *cnp;
182: IN struct vattr *vap;
183: IN char *target;
184: };
185:
186: vop_readdir {
187: IN struct vnode *vp;
188: INOUT struct uio *uio;
189: IN struct ucred *cred;
190: };
191:
192: vop_readlink {
193: IN struct vnode *vp;
194: INOUT struct uio *uio;
195: IN struct ucred *cred;
196: };
197:
198: vop_abortop {
199: IN struct vnode *dvp;
200: IN struct componentname *cnp;
201: };
202:
203: vop_inactive {
204: IN struct vnode *vp;
205: };
206:
207: vop_reclaim {
208: IN struct vnode *vp;
209: };
210:
211: vop_lock {
212: IN struct vnode *vp;
213: };
214:
215: vop_unlock {
216: IN struct vnode *vp;
217: };
218:
219: vop_bmap {
220: IN struct vnode *vp;
221: IN daddr_t bn;
222: OUT struct vnode **vpp;
223: IN daddr_t *bnp;
224: OUT int *runp;
225: };
226:
227: #vop_strategy {
228: # IN struct buf *bp;
229: #};
230:
231: vop_print {
232: IN struct vnode *vp;
233: };
234:
235: vop_islocked {
236: IN struct vnode *vp;
237: };
238:
239: vop_pathconf {
240: IN struct vnode *vp;
241: IN int name;
242: OUT int *retval;
243: };
244:
245: vop_advlock {
246: IN struct vnode *vp;
247: IN caddr_t id;
248: IN int op;
249: IN struct flock *fl;
250: IN int flags;
251: };
252:
253: vop_blkatoff {
254: IN struct vnode *vp;
255: IN off_t offset;
256: OUT char **res;
257: OUT struct buf **bpp;
258: };
259:
260: vop_valloc {
261: IN struct vnode *pvp;
262: IN int mode;
263: IN struct ucred *cred;
264: OUT struct vnode **vpp;
265: };
266:
267: vop_reallocblks {
268: IN struct vnode *vp;
269: IN struct cluster_save *buflist;
270: };
271:
272: vop_vfree {
273: IN struct vnode *pvp;
274: IN ino_t ino;
275: IN int mode;
276: };
277:
278: vop_truncate {
279: IN struct vnode *vp;
280: IN off_t length;
281: IN int flags;
282: IN struct ucred *cred;
283: IN struct proc *p;
284: };
285:
286: vop_update {
287: IN struct vnode *vp;
288: IN struct timeval *access;
289: IN struct timeval *modify;
290: IN int waitfor;
291: };
292:
293: # Needs work: no vp?
294: #vop_bwrite {
295: # IN struct buf *bp;
296: #};
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.