Deleted Added
full compact
vnode_if.src (159080) vnode_if.src (159082)
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

--- 13 unchanged lines hidden (view full) ---

22# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27# SUCH DAMAGE.
28#
29# @(#)vnode_if.src 8.12 (Berkeley) 5/14/95
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

--- 13 unchanged lines hidden (view full) ---

22# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27# SUCH DAMAGE.
28#
29# @(#)vnode_if.src 8.12 (Berkeley) 5/14/95
30# $FreeBSD: head/sys/kern/vnode_if.src 159080 2006-05-30 20:21:51Z dds $
30# $FreeBSD: head/sys/kern/vnode_if.src 159082 2006-05-30 20:49:54Z dds $
31#
32
33#
31#
32
33#
34# Above each of the vop descriptors is a specification of the locking
35# protocol used by each vop call. The first column is the name of
36# the variable, the remaining three columns are in, out and error
37# respectively. The "in" column defines the lock state on input,
38# the "out" column defines the state on succesful return, and the
39# "error" column defines the locking state on error exit.
34# Above each of the vop descriptors in lines starting with %%
35# is a specification of the locking protocol used by each vop call.
36# The first column is the name of the variable, the remaining three
37# columns are in, out and error respectively. The "in" column defines
38# the lock state on input, the "out" column defines the state on succesful
39# return, and the "error" column defines the locking state on error exit.
40#
41# The locking value can take the following values:
42# L: locked; not converted to type of lock.
43# A: any lock type.
44# S: locked with shared lock.
45# E: locked with exclusive lock for this process.
46# O: locked with exclusive lock for other process.
47# U: unlocked.
48# -: not applicable. vnode does not yet (or no longer) exists.
49# =: the same on input and output, may be either L or U.
50# X: locked if not nil.
51#
52# The paramater named "vpp" is assumed to be always used with double
53# indirection (**vpp) and that name is hard-codeed in vnode_if.awk !
54#
40#
41# The locking value can take the following values:
42# L: locked; not converted to type of lock.
43# A: any lock type.
44# S: locked with shared lock.
45# E: locked with exclusive lock for this process.
46# O: locked with exclusive lock for other process.
47# U: unlocked.
48# -: not applicable. vnode does not yet (or no longer) exists.
49# =: the same on input and output, may be either L or U.
50# X: locked if not nil.
51#
52# The paramater named "vpp" is assumed to be always used with double
53# indirection (**vpp) and that name is hard-codeed in vnode_if.awk !
54#
55# Lines starting with %! specify a pre or post-condition function
56# to call before/after the vop call.
57#
55# If other such parameters are introduced, they have to be added to
56# the AWK script at the head of the definition of "add_debug_code()".
57#
58
59vop_islocked {
60 IN struct vnode *vp;
61 IN struct thread *td;
62};
63
58# If other such parameters are introduced, they have to be added to
59# the AWK script at the head of the definition of "add_debug_code()".
60#
61
62vop_islocked {
63 IN struct vnode *vp;
64 IN struct thread *td;
65};
66
64#
65#% lookup dvp L ? ?
66#% lookup vpp - L -
67#! lookup pre vop_lookup_pre
68#! lookup post vop_lookup_post
69#
67%% lookup dvp L ? ?
68%% lookup vpp - L -
69%! lookup pre vop_lookup_pre
70%! lookup post vop_lookup_post
71
70# XXX - the lookup locking protocol defies simple description and depends
71# on the flags and operation fields in the (cnp) structure. Note
72# especially that *vpp may equal dvp and both may be locked.
72# XXX - the lookup locking protocol defies simple description and depends
73# on the flags and operation fields in the (cnp) structure. Note
74# especially that *vpp may equal dvp and both may be locked.
73#
75
74vop_lookup {
75 IN struct vnode *dvp;
76 INOUT struct vnode **vpp;
77 IN struct componentname *cnp;
78};
79
76vop_lookup {
77 IN struct vnode *dvp;
78 INOUT struct vnode **vpp;
79 IN struct componentname *cnp;
80};
81
80#
81#% cachedlookup dvp L ? ?
82#% cachedlookup vpp - L -
83#
82%% cachedlookup dvp L ? ?
83%% cachedlookup vpp - L -
84
84# This must be an exact copy of lookup. See kern/vfs_cache.c for details.
85# This must be an exact copy of lookup. See kern/vfs_cache.c for details.
85#
86
86vop_cachedlookup {
87 IN struct vnode *dvp;
88 INOUT struct vnode **vpp;
89 IN struct componentname *cnp;
90};
91
87vop_cachedlookup {
88 IN struct vnode *dvp;
89 INOUT struct vnode **vpp;
90 IN struct componentname *cnp;
91};
92
92#
93#% create dvp E E E
94#% create vpp - L -
95#! create post vop_create_post
96#
93%% create dvp E E E
94%% create vpp - L -
95%! create post vop_create_post
96
97vop_create {
98 IN struct vnode *dvp;
99 OUT struct vnode **vpp;
100 IN struct componentname *cnp;
101 IN struct vattr *vap;
102};
103
97vop_create {
98 IN struct vnode *dvp;
99 OUT struct vnode **vpp;
100 IN struct componentname *cnp;
101 IN struct vattr *vap;
102};
103
104#
105#% whiteout dvp E E E
106#
104
105%% whiteout dvp E E E
106
107vop_whiteout {
108 IN struct vnode *dvp;
109 IN struct componentname *cnp;
110 IN int flags;
111};
112
107vop_whiteout {
108 IN struct vnode *dvp;
109 IN struct componentname *cnp;
110 IN int flags;
111};
112
113#
114#% mknod dvp E E E
115#% mknod vpp - L -
116#! mknod post vop_mknod_post
117#
113
114%% mknod dvp E E E
115%% mknod vpp - L -
116%! mknod post vop_mknod_post
117
118vop_mknod {
119 IN struct vnode *dvp;
120 OUT struct vnode **vpp;
121 IN struct componentname *cnp;
122 IN struct vattr *vap;
123};
124
118vop_mknod {
119 IN struct vnode *dvp;
120 OUT struct vnode **vpp;
121 IN struct componentname *cnp;
122 IN struct vattr *vap;
123};
124
125#
126#% open vp L L L
127#
125
126%% open vp L L L
127
128vop_open {
129 IN struct vnode *vp;
130 IN int mode;
131 IN struct ucred *cred;
132 IN struct thread *td;
133 IN int fdidx;
134};
135
128vop_open {
129 IN struct vnode *vp;
130 IN int mode;
131 IN struct ucred *cred;
132 IN struct thread *td;
133 IN int fdidx;
134};
135
136#
137#% close vp E E E
138#
136
137%% close vp E E E
138
139vop_close {
140 IN struct vnode *vp;
141 IN int fflag;
142 IN struct ucred *cred;
143 IN struct thread *td;
144};
145
139vop_close {
140 IN struct vnode *vp;
141 IN int fflag;
142 IN struct ucred *cred;
143 IN struct thread *td;
144};
145
146#
147#% access vp L L L
148#
146
147%% access vp L L L
148
149vop_access {
150 IN struct vnode *vp;
151 IN int mode;
152 IN struct ucred *cred;
153 IN struct thread *td;
154};
155
149vop_access {
150 IN struct vnode *vp;
151 IN int mode;
152 IN struct ucred *cred;
153 IN struct thread *td;
154};
155
156#
157#% getattr vp L L L
158#
156
157%% getattr vp L L L
158
159vop_getattr {
160 IN struct vnode *vp;
161 OUT struct vattr *vap;
162 IN struct ucred *cred;
163 IN struct thread *td;
164};
165
159vop_getattr {
160 IN struct vnode *vp;
161 OUT struct vattr *vap;
162 IN struct ucred *cred;
163 IN struct thread *td;
164};
165
166#
167#% setattr vp E E E
168#! setattr post vop_setattr_post
169#
166
167%% setattr vp E E E
168%! setattr post vop_setattr_post
169
170vop_setattr {
171 IN struct vnode *vp;
172 IN struct vattr *vap;
173 IN struct ucred *cred;
174 IN struct thread *td;
175};
176
170vop_setattr {
171 IN struct vnode *vp;
172 IN struct vattr *vap;
173 IN struct ucred *cred;
174 IN struct thread *td;
175};
176
177#
178#% read vp L L L
179#
177
178%% read vp L L L
179
180vop_read {
181 IN struct vnode *vp;
182 INOUT struct uio *uio;
183 IN int ioflag;
184 IN struct ucred *cred;
185};
186
180vop_read {
181 IN struct vnode *vp;
182 INOUT struct uio *uio;
183 IN int ioflag;
184 IN struct ucred *cred;
185};
186
187#
188#% write vp E E E
189#! write pre VOP_WRITE_PRE
190#! write post VOP_WRITE_POST
191#
187
188%% write vp E E E
189%! write pre VOP_WRITE_PRE
190%! write post VOP_WRITE_POST
191
192vop_write {
193 IN struct vnode *vp;
194 INOUT struct uio *uio;
195 IN int ioflag;
196 IN struct ucred *cred;
197};
198
192vop_write {
193 IN struct vnode *vp;
194 INOUT struct uio *uio;
195 IN int ioflag;
196 IN struct ucred *cred;
197};
198
199#
200#% lease vp = = =
201#
199
200%% lease vp = = =
201
202vop_lease {
203 IN struct vnode *vp;
204 IN struct thread *td;
205 IN struct ucred *cred;
206 IN int flag;
207};
208
202vop_lease {
203 IN struct vnode *vp;
204 IN struct thread *td;
205 IN struct ucred *cred;
206 IN int flag;
207};
208
209#
210#% ioctl vp U U U
211#
209
210%% ioctl vp U U U
211
212vop_ioctl {
213 IN struct vnode *vp;
214 IN u_long command;
215 IN void *data;
216 IN int fflag;
217 IN struct ucred *cred;
218 IN struct thread *td;
219};
220
212vop_ioctl {
213 IN struct vnode *vp;
214 IN u_long command;
215 IN void *data;
216 IN int fflag;
217 IN struct ucred *cred;
218 IN struct thread *td;
219};
220
221#
222#% poll vp U U U
223#
221
222%% poll vp U U U
223
224vop_poll {
225 IN struct vnode *vp;
226 IN int events;
227 IN struct ucred *cred;
228 IN struct thread *td;
229};
230
224vop_poll {
225 IN struct vnode *vp;
226 IN int events;
227 IN struct ucred *cred;
228 IN struct thread *td;
229};
230
231#
232#% kqfilter vp U U U
233#
231
232%% kqfilter vp U U U
233
234vop_kqfilter {
235 IN struct vnode *vp;
236 IN struct knote *kn;
237};
238
234vop_kqfilter {
235 IN struct vnode *vp;
236 IN struct knote *kn;
237};
238
239#
240#% revoke vp L L L
241#
239
240%% revoke vp L L L
241
242vop_revoke {
243 IN struct vnode *vp;
244 IN int flags;
245};
246
242vop_revoke {
243 IN struct vnode *vp;
244 IN int flags;
245};
246
247#
248#% fsync vp E E E
249#
247
248%% fsync vp E E E
249
250vop_fsync {
251 IN struct vnode *vp;
252 IN int waitfor;
253 IN struct thread *td;
254};
255
250vop_fsync {
251 IN struct vnode *vp;
252 IN int waitfor;
253 IN struct thread *td;
254};
255
256#
257#% remove dvp E E E
258#% remove vp E E E
259#! remove post vop_remove_post
260#
256
257%% remove dvp E E E
258%% remove vp E E E
259%! remove post vop_remove_post
260
261vop_remove {
262 IN struct vnode *dvp;
263 IN struct vnode *vp;
264 IN struct componentname *cnp;
265};
266
261vop_remove {
262 IN struct vnode *dvp;
263 IN struct vnode *vp;
264 IN struct componentname *cnp;
265};
266
267#
268#% link tdvp E E E
269#% link vp E E E
270#! link post vop_link_post
271#
267
268%% link tdvp E E E
269%% link vp E E E
270%! link post vop_link_post
271
272vop_link {
273 IN struct vnode *tdvp;
274 IN struct vnode *vp;
275 IN struct componentname *cnp;
276};
277
272vop_link {
273 IN struct vnode *tdvp;
274 IN struct vnode *vp;
275 IN struct componentname *cnp;
276};
277
278#
279#! rename pre vop_rename_pre
280#! rename post vop_rename_post
281#
278
279%! rename pre vop_rename_pre
280%! rename post vop_rename_post
281
282vop_rename {
283 IN WILLRELE struct vnode *fdvp;
284 IN WILLRELE struct vnode *fvp;
285 IN struct componentname *fcnp;
286 IN WILLRELE struct vnode *tdvp;
287 IN WILLRELE struct vnode *tvp;
288 IN struct componentname *tcnp;
289};
290
282vop_rename {
283 IN WILLRELE struct vnode *fdvp;
284 IN WILLRELE struct vnode *fvp;
285 IN struct componentname *fcnp;
286 IN WILLRELE struct vnode *tdvp;
287 IN WILLRELE struct vnode *tvp;
288 IN struct componentname *tcnp;
289};
290
291#
292#% mkdir dvp E E E
293#% mkdir vpp - E -
294#! mkdir post vop_mkdir_post
295#
291
292%% mkdir dvp E E E
293%% mkdir vpp - E -
294%! mkdir post vop_mkdir_post
295
296vop_mkdir {
297 IN struct vnode *dvp;
298 OUT struct vnode **vpp;
299 IN struct componentname *cnp;
300 IN struct vattr *vap;
301};
302
296vop_mkdir {
297 IN struct vnode *dvp;
298 OUT struct vnode **vpp;
299 IN struct componentname *cnp;
300 IN struct vattr *vap;
301};
302
303#
304#% rmdir dvp E E E
305#% rmdir vp E E E
306#! rmdir post vop_rmdir_post
307#
303
304%% rmdir dvp E E E
305%% rmdir vp E E E
306%! rmdir post vop_rmdir_post
307
308vop_rmdir {
309 IN struct vnode *dvp;
310 IN struct vnode *vp;
311 IN struct componentname *cnp;
312};
313
308vop_rmdir {
309 IN struct vnode *dvp;
310 IN struct vnode *vp;
311 IN struct componentname *cnp;
312};
313
314#
315#% symlink dvp E E E
316#% symlink vpp - E -
317#! symlink post vop_symlink_post
318#
314
315%% symlink dvp E E E
316%% symlink vpp - E -
317%! symlink post vop_symlink_post
318
319vop_symlink {
320 IN struct vnode *dvp;
321 OUT struct vnode **vpp;
322 IN struct componentname *cnp;
323 IN struct vattr *vap;
324 IN char *target;
325};
326
319vop_symlink {
320 IN struct vnode *dvp;
321 OUT struct vnode **vpp;
322 IN struct componentname *cnp;
323 IN struct vattr *vap;
324 IN char *target;
325};
326
327#
328#% readdir vp L L L
329#
327
328%% readdir vp L L L
329
330vop_readdir {
331 IN struct vnode *vp;
332 INOUT struct uio *uio;
333 IN struct ucred *cred;
334 INOUT int *eofflag;
335 OUT int *ncookies;
336 INOUT u_long **cookies;
337};
338
330vop_readdir {
331 IN struct vnode *vp;
332 INOUT struct uio *uio;
333 IN struct ucred *cred;
334 INOUT int *eofflag;
335 OUT int *ncookies;
336 INOUT u_long **cookies;
337};
338
339#
340#% readlink vp L L L
341#
339
340%% readlink vp L L L
341
342vop_readlink {
343 IN struct vnode *vp;
344 INOUT struct uio *uio;
345 IN struct ucred *cred;
346};
347
342vop_readlink {
343 IN struct vnode *vp;
344 INOUT struct uio *uio;
345 IN struct ucred *cred;
346};
347
348#
349#% inactive vp E E E
350#
348
349%% inactive vp E E E
350
351vop_inactive {
352 IN struct vnode *vp;
353 IN struct thread *td;
354};
355
351vop_inactive {
352 IN struct vnode *vp;
353 IN struct thread *td;
354};
355
356#
357#% reclaim vp E E E
358#
356
357%% reclaim vp E E E
358
359vop_reclaim {
360 IN struct vnode *vp;
361 IN struct thread *td;
362};
363
359vop_reclaim {
360 IN struct vnode *vp;
361 IN struct thread *td;
362};
363
364#
365#lock vp ? ? ?
366#! lock pre vop_lock_pre
367#! lock post vop_lock_post
368#
364
365#XXX lock vp ? ? ?
366%! lock pre vop_lock_pre
367%! lock post vop_lock_post
368
369vop_lock {
370 IN struct vnode *vp;
371 IN int flags;
372 IN struct thread *td;
373};
374
369vop_lock {
370 IN struct vnode *vp;
371 IN int flags;
372 IN struct thread *td;
373};
374
375#
376#unlock vp L ? L
377#! unlock pre vop_unlock_pre
378#! unlock post vop_unlock_post
379#
375
376#XXX unlock vp L ? L
377%! unlock pre vop_unlock_pre
378%! unlock post vop_unlock_post
379
380vop_unlock {
381 IN struct vnode *vp;
382 IN int flags;
383 IN struct thread *td;
384};
385
380vop_unlock {
381 IN struct vnode *vp;
382 IN int flags;
383 IN struct thread *td;
384};
385
386#
387#% bmap vp L L L
388#
386
387%% bmap vp L L L
388
389vop_bmap {
390 IN struct vnode *vp;
391 IN daddr_t bn;
392 OUT struct bufobj **bop;
393 IN daddr_t *bnp;
394 OUT int *runp;
395 OUT int *runb;
396};
397
389vop_bmap {
390 IN struct vnode *vp;
391 IN daddr_t bn;
392 OUT struct bufobj **bop;
393 IN daddr_t *bnp;
394 OUT int *runp;
395 OUT int *runb;
396};
397
398#
399#% strategy vp L L L
400#! strategy pre vop_strategy_pre
401#
398
399%% strategy vp L L L
400%! strategy pre vop_strategy_pre
401
402vop_strategy {
403 IN struct vnode *vp;
404 IN struct buf *bp;
405};
406
402vop_strategy {
403 IN struct vnode *vp;
404 IN struct buf *bp;
405};
406
407#
408#% getwritemount vp = = =
409#
407
408%% getwritemount vp = = =
409
410vop_getwritemount {
411 IN struct vnode *vp;
412 OUT struct mount **mpp;
413};
414
410vop_getwritemount {
411 IN struct vnode *vp;
412 OUT struct mount **mpp;
413};
414
415#
416#% print vp = = =
417#
415
416%% print vp = = =
417
418vop_print {
419 IN struct vnode *vp;
420};
421
418vop_print {
419 IN struct vnode *vp;
420};
421
422#
423#% pathconf vp L L L
424#
422
423%% pathconf vp L L L
424
425vop_pathconf {
426 IN struct vnode *vp;
427 IN int name;
428 OUT register_t *retval;
429};
430
425vop_pathconf {
426 IN struct vnode *vp;
427 IN int name;
428 OUT register_t *retval;
429};
430
431#
432#% advlock vp U U U
433#
431
432%% advlock vp U U U
433
434vop_advlock {
435 IN struct vnode *vp;
436 IN void *id;
437 IN int op;
438 IN struct flock *fl;
439 IN int flags;
440};
441
434vop_advlock {
435 IN struct vnode *vp;
436 IN void *id;
437 IN int op;
438 IN struct flock *fl;
439 IN int flags;
440};
441
442#
443#% reallocblks vp E E E
444#
442
443%% reallocblks vp E E E
444
445vop_reallocblks {
446 IN struct vnode *vp;
447 IN struct cluster_save *buflist;
448};
449
445vop_reallocblks {
446 IN struct vnode *vp;
447 IN struct cluster_save *buflist;
448};
449
450#
451#% getpages vp L L L
452#
450
451%% getpages vp L L L
452
453vop_getpages {
454 IN struct vnode *vp;
455 IN vm_page_t *m;
456 IN int count;
457 IN int reqpage;
458 IN vm_ooffset_t offset;
459};
460
453vop_getpages {
454 IN struct vnode *vp;
455 IN vm_page_t *m;
456 IN int count;
457 IN int reqpage;
458 IN vm_ooffset_t offset;
459};
460
461#
462#% putpages vp E E E
463#
461
462%% putpages vp E E E
463
464vop_putpages {
465 IN struct vnode *vp;
466 IN vm_page_t *m;
467 IN int count;
468 IN int sync;
469 IN int *rtvals;
470 IN vm_ooffset_t offset;
471};
472
464vop_putpages {
465 IN struct vnode *vp;
466 IN vm_page_t *m;
467 IN int count;
468 IN int sync;
469 IN int *rtvals;
470 IN vm_ooffset_t offset;
471};
472
473#
474#% getacl vp L L L
475#
473
474%% getacl vp L L L
475
476vop_getacl {
477 IN struct vnode *vp;
478 IN acl_type_t type;
479 OUT struct acl *aclp;
480 IN struct ucred *cred;
481 IN struct thread *td;
482};
483
476vop_getacl {
477 IN struct vnode *vp;
478 IN acl_type_t type;
479 OUT struct acl *aclp;
480 IN struct ucred *cred;
481 IN struct thread *td;
482};
483
484#
485#% setacl vp E E E
486#
484
485%% setacl vp E E E
486
487vop_setacl {
488 IN struct vnode *vp;
489 IN acl_type_t type;
490 IN struct acl *aclp;
491 IN struct ucred *cred;
492 IN struct thread *td;
493};
494
487vop_setacl {
488 IN struct vnode *vp;
489 IN acl_type_t type;
490 IN struct acl *aclp;
491 IN struct ucred *cred;
492 IN struct thread *td;
493};
494
495#
496#% aclcheck vp = = =
497#
495
496%% aclcheck vp = = =
497
498vop_aclcheck {
499 IN struct vnode *vp;
500 IN acl_type_t type;
501 IN struct acl *aclp;
502 IN struct ucred *cred;
503 IN struct thread *td;
504};
505
498vop_aclcheck {
499 IN struct vnode *vp;
500 IN acl_type_t type;
501 IN struct acl *aclp;
502 IN struct ucred *cred;
503 IN struct thread *td;
504};
505
506#
507#% closeextattr vp L L L
508#
506
507%% closeextattr vp L L L
508
509vop_closeextattr {
510 IN struct vnode *vp;
511 IN int commit;
512 IN struct ucred *cred;
513 IN struct thread *td;
514};
515
509vop_closeextattr {
510 IN struct vnode *vp;
511 IN int commit;
512 IN struct ucred *cred;
513 IN struct thread *td;
514};
515
516#
517#% getextattr vp L L L
518#
516
517%% getextattr vp L L L
518
519vop_getextattr {
520 IN struct vnode *vp;
521 IN int attrnamespace;
522 IN const char *name;
523 INOUT struct uio *uio;
524 OUT size_t *size;
525 IN struct ucred *cred;
526 IN struct thread *td;
527};
528
519vop_getextattr {
520 IN struct vnode *vp;
521 IN int attrnamespace;
522 IN const char *name;
523 INOUT struct uio *uio;
524 OUT size_t *size;
525 IN struct ucred *cred;
526 IN struct thread *td;
527};
528
529#
530#% listextattr vp L L L
531#
529
530%% listextattr vp L L L
531
532vop_listextattr {
533 IN struct vnode *vp;
534 IN int attrnamespace;
535 INOUT struct uio *uio;
536 OUT size_t *size;
537 IN struct ucred *cred;
538 IN struct thread *td;
539};
540
532vop_listextattr {
533 IN struct vnode *vp;
534 IN int attrnamespace;
535 INOUT struct uio *uio;
536 OUT size_t *size;
537 IN struct ucred *cred;
538 IN struct thread *td;
539};
540
541#
542#% openextattr vp L L L
543#
541
542%% openextattr vp L L L
543
544vop_openextattr {
545 IN struct vnode *vp;
546 IN struct ucred *cred;
547 IN struct thread *td;
548};
549
544vop_openextattr {
545 IN struct vnode *vp;
546 IN struct ucred *cred;
547 IN struct thread *td;
548};
549
550#
551#% deleteextattr vp E E E
552#
550
551%% deleteextattr vp E E E
552
553vop_deleteextattr {
554 IN struct vnode *vp;
555 IN int attrnamespace;
556 IN const char *name;
557 IN struct ucred *cred;
558 IN struct thread *td;
559};
560
553vop_deleteextattr {
554 IN struct vnode *vp;
555 IN int attrnamespace;
556 IN const char *name;
557 IN struct ucred *cred;
558 IN struct thread *td;
559};
560
561#
562#% setextattr vp E E E
563#
561
562%% setextattr vp E E E
563
564vop_setextattr {
565 IN struct vnode *vp;
566 IN int attrnamespace;
567 IN const char *name;
568 INOUT struct uio *uio;
569 IN struct ucred *cred;
570 IN struct thread *td;
571};
572
564vop_setextattr {
565 IN struct vnode *vp;
566 IN int attrnamespace;
567 IN const char *name;
568 INOUT struct uio *uio;
569 IN struct ucred *cred;
570 IN struct thread *td;
571};
572
573#
574#% setlabel vp E E E
575#
573
574%% setlabel vp E E E
575
576vop_setlabel {
577 IN struct vnode *vp;
578 IN struct label *label;
579 IN struct ucred *cred;
580 IN struct thread *td;
581};
576vop_setlabel {
577 IN struct vnode *vp;
578 IN struct label *label;
579 IN struct ucred *cred;
580 IN struct thread *td;
581};