1 | /* $NetBSD: vnode_if.h,v 1.91 2016/01/26 23:30:10 pooka Exp $ */ |
2 | |
3 | /* |
4 | * Warning: DO NOT EDIT! This file is automatically generated! |
5 | * (Modifications made here may easily be lost!) |
6 | * |
7 | * Created from the file: |
8 | * NetBSD: vnode_if.src,v 1.69 2015/04/20 23:08:07 riastradh Exp |
9 | * by the script: |
10 | * NetBSD: vnode_if.sh,v 1.60 2014/01/13 12:07:55 hannken Exp |
11 | */ |
12 | |
13 | /* |
14 | * Copyright (c) 1992, 1993, 1994, 1995 |
15 | * The Regents of the University of California. All rights reserved. |
16 | * |
17 | * Redistribution and use in source and binary forms, with or without |
18 | * modification, are permitted provided that the following conditions |
19 | * are met: |
20 | * 1. Redistributions of source code must retain the above copyright |
21 | * notice, this list of conditions and the following disclaimer. |
22 | * 2. Redistributions in binary form must reproduce the above copyright |
23 | * notice, this list of conditions and the following disclaimer in the |
24 | * documentation and/or other materials provided with the distribution. |
25 | * 3. Neither the name of the University nor the names of its contributors |
26 | * may be used to endorse or promote products derived from this software |
27 | * without specific prior written permission. |
28 | * |
29 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
30 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
31 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
32 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
33 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
34 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
35 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
36 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
37 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
38 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
39 | * SUCH DAMAGE. |
40 | */ |
41 | |
42 | #ifndef _SYS_VNODE_IF_H_ |
43 | #define _SYS_VNODE_IF_H_ |
44 | |
45 | extern const struct vnodeop_desc vop_default_desc; |
46 | |
47 | struct buf; |
48 | |
49 | #ifndef _KERNEL |
50 | #include <stdbool.h> |
51 | #endif |
52 | |
53 | #define VOP_BWRITE_DESCOFFSET 1 |
54 | struct vop_bwrite_args { |
55 | const struct vnodeop_desc *a_desc; |
56 | struct vnode *a_vp; |
57 | struct buf *a_bp; |
58 | }; |
59 | extern const struct vnodeop_desc vop_bwrite_desc; |
60 | int VOP_BWRITE(struct vnode *, struct buf *); |
61 | |
62 | #define VOP_LOOKUP_DESCOFFSET 2 |
63 | struct vop_lookup_v2_args { |
64 | const struct vnodeop_desc *a_desc; |
65 | struct vnode *a_dvp; |
66 | struct vnode **a_vpp; |
67 | struct componentname *a_cnp; |
68 | }; |
69 | extern const struct vnodeop_desc vop_lookup_desc; |
70 | int VOP_LOOKUP(struct vnode *, struct vnode **, struct componentname *); |
71 | |
72 | #define VOP_CREATE_DESCOFFSET 3 |
73 | struct vop_create_v3_args { |
74 | const struct vnodeop_desc *a_desc; |
75 | struct vnode *a_dvp; |
76 | struct vnode **a_vpp; |
77 | struct componentname *a_cnp; |
78 | struct vattr *a_vap; |
79 | }; |
80 | extern const struct vnodeop_desc vop_create_desc; |
81 | int VOP_CREATE(struct vnode *, struct vnode **, struct componentname *, |
82 | struct vattr *); |
83 | |
84 | #define VOP_MKNOD_DESCOFFSET 4 |
85 | struct vop_mknod_v3_args { |
86 | const struct vnodeop_desc *a_desc; |
87 | struct vnode *a_dvp; |
88 | struct vnode **a_vpp; |
89 | struct componentname *a_cnp; |
90 | struct vattr *a_vap; |
91 | }; |
92 | extern const struct vnodeop_desc vop_mknod_desc; |
93 | int VOP_MKNOD(struct vnode *, struct vnode **, struct componentname *, |
94 | struct vattr *); |
95 | |
96 | #define VOP_OPEN_DESCOFFSET 5 |
97 | struct vop_open_args { |
98 | const struct vnodeop_desc *a_desc; |
99 | struct vnode *a_vp; |
100 | int a_mode; |
101 | kauth_cred_t a_cred; |
102 | }; |
103 | extern const struct vnodeop_desc vop_open_desc; |
104 | int VOP_OPEN(struct vnode *, int, kauth_cred_t); |
105 | |
106 | #define VOP_CLOSE_DESCOFFSET 6 |
107 | struct vop_close_args { |
108 | const struct vnodeop_desc *a_desc; |
109 | struct vnode *a_vp; |
110 | int a_fflag; |
111 | kauth_cred_t a_cred; |
112 | }; |
113 | extern const struct vnodeop_desc vop_close_desc; |
114 | int VOP_CLOSE(struct vnode *, int, kauth_cred_t); |
115 | |
116 | #define VOP_ACCESS_DESCOFFSET 7 |
117 | struct vop_access_args { |
118 | const struct vnodeop_desc *a_desc; |
119 | struct vnode *a_vp; |
120 | int a_mode; |
121 | kauth_cred_t a_cred; |
122 | }; |
123 | extern const struct vnodeop_desc vop_access_desc; |
124 | int VOP_ACCESS(struct vnode *, int, kauth_cred_t); |
125 | |
126 | #define VOP_GETATTR_DESCOFFSET 8 |
127 | struct vop_getattr_args { |
128 | const struct vnodeop_desc *a_desc; |
129 | struct vnode *a_vp; |
130 | struct vattr *a_vap; |
131 | kauth_cred_t a_cred; |
132 | }; |
133 | extern const struct vnodeop_desc vop_getattr_desc; |
134 | int VOP_GETATTR(struct vnode *, struct vattr *, kauth_cred_t); |
135 | |
136 | #define VOP_SETATTR_DESCOFFSET 9 |
137 | struct vop_setattr_args { |
138 | const struct vnodeop_desc *a_desc; |
139 | struct vnode *a_vp; |
140 | struct vattr *a_vap; |
141 | kauth_cred_t a_cred; |
142 | }; |
143 | extern const struct vnodeop_desc vop_setattr_desc; |
144 | int VOP_SETATTR(struct vnode *, struct vattr *, kauth_cred_t); |
145 | |
146 | #define VOP_READ_DESCOFFSET 10 |
147 | struct vop_read_args { |
148 | const struct vnodeop_desc *a_desc; |
149 | struct vnode *a_vp; |
150 | struct uio *a_uio; |
151 | int a_ioflag; |
152 | kauth_cred_t a_cred; |
153 | }; |
154 | extern const struct vnodeop_desc vop_read_desc; |
155 | int VOP_READ(struct vnode *, struct uio *, int, kauth_cred_t); |
156 | |
157 | #define VOP_WRITE_DESCOFFSET 11 |
158 | struct vop_write_args { |
159 | const struct vnodeop_desc *a_desc; |
160 | struct vnode *a_vp; |
161 | struct uio *a_uio; |
162 | int a_ioflag; |
163 | kauth_cred_t a_cred; |
164 | }; |
165 | extern const struct vnodeop_desc vop_write_desc; |
166 | int VOP_WRITE(struct vnode *, struct uio *, int, kauth_cred_t); |
167 | |
168 | #define VOP_FALLOCATE_DESCOFFSET 12 |
169 | struct vop_fallocate_args { |
170 | const struct vnodeop_desc *a_desc; |
171 | struct vnode *a_vp; |
172 | off_t a_pos; |
173 | off_t a_len; |
174 | }; |
175 | extern const struct vnodeop_desc vop_fallocate_desc; |
176 | int VOP_FALLOCATE(struct vnode *, off_t, off_t); |
177 | |
178 | #define VOP_FDISCARD_DESCOFFSET 13 |
179 | struct vop_fdiscard_args { |
180 | const struct vnodeop_desc *a_desc; |
181 | struct vnode *a_vp; |
182 | off_t a_pos; |
183 | off_t a_len; |
184 | }; |
185 | extern const struct vnodeop_desc vop_fdiscard_desc; |
186 | int VOP_FDISCARD(struct vnode *, off_t, off_t); |
187 | |
188 | #define VOP_IOCTL_DESCOFFSET 14 |
189 | struct vop_ioctl_args { |
190 | const struct vnodeop_desc *a_desc; |
191 | struct vnode *a_vp; |
192 | u_long a_command; |
193 | void *a_data; |
194 | int a_fflag; |
195 | kauth_cred_t a_cred; |
196 | }; |
197 | extern const struct vnodeop_desc vop_ioctl_desc; |
198 | int VOP_IOCTL(struct vnode *, u_long, void *, int, kauth_cred_t); |
199 | |
200 | #define VOP_FCNTL_DESCOFFSET 15 |
201 | struct vop_fcntl_args { |
202 | const struct vnodeop_desc *a_desc; |
203 | struct vnode *a_vp; |
204 | u_int a_command; |
205 | void *a_data; |
206 | int a_fflag; |
207 | kauth_cred_t a_cred; |
208 | }; |
209 | extern const struct vnodeop_desc vop_fcntl_desc; |
210 | int VOP_FCNTL(struct vnode *, u_int, void *, int, kauth_cred_t); |
211 | |
212 | #define VOP_POLL_DESCOFFSET 16 |
213 | struct vop_poll_args { |
214 | const struct vnodeop_desc *a_desc; |
215 | struct vnode *a_vp; |
216 | int a_events; |
217 | }; |
218 | extern const struct vnodeop_desc vop_poll_desc; |
219 | int VOP_POLL(struct vnode *, int); |
220 | |
221 | #define VOP_KQFILTER_DESCOFFSET 17 |
222 | struct vop_kqfilter_args { |
223 | const struct vnodeop_desc *a_desc; |
224 | struct vnode *a_vp; |
225 | struct knote *a_kn; |
226 | }; |
227 | extern const struct vnodeop_desc vop_kqfilter_desc; |
228 | int VOP_KQFILTER(struct vnode *, struct knote *); |
229 | |
230 | #define VOP_REVOKE_DESCOFFSET 18 |
231 | struct vop_revoke_args { |
232 | const struct vnodeop_desc *a_desc; |
233 | struct vnode *a_vp; |
234 | int a_flags; |
235 | }; |
236 | extern const struct vnodeop_desc vop_revoke_desc; |
237 | int VOP_REVOKE(struct vnode *, int); |
238 | |
239 | #define VOP_MMAP_DESCOFFSET 19 |
240 | struct vop_mmap_args { |
241 | const struct vnodeop_desc *a_desc; |
242 | struct vnode *a_vp; |
243 | vm_prot_t a_prot; |
244 | kauth_cred_t a_cred; |
245 | }; |
246 | extern const struct vnodeop_desc vop_mmap_desc; |
247 | int VOP_MMAP(struct vnode *, vm_prot_t, kauth_cred_t); |
248 | |
249 | #define VOP_FSYNC_DESCOFFSET 20 |
250 | struct vop_fsync_args { |
251 | const struct vnodeop_desc *a_desc; |
252 | struct vnode *a_vp; |
253 | kauth_cred_t a_cred; |
254 | int a_flags; |
255 | off_t a_offlo; |
256 | off_t a_offhi; |
257 | }; |
258 | extern const struct vnodeop_desc vop_fsync_desc; |
259 | int VOP_FSYNC(struct vnode *, kauth_cred_t, int, off_t, off_t); |
260 | |
261 | #define VOP_SEEK_DESCOFFSET 21 |
262 | struct vop_seek_args { |
263 | const struct vnodeop_desc *a_desc; |
264 | struct vnode *a_vp; |
265 | off_t a_oldoff; |
266 | off_t a_newoff; |
267 | kauth_cred_t a_cred; |
268 | }; |
269 | extern const struct vnodeop_desc vop_seek_desc; |
270 | int VOP_SEEK(struct vnode *, off_t, off_t, kauth_cred_t); |
271 | |
272 | #define VOP_REMOVE_DESCOFFSET 22 |
273 | struct vop_remove_args { |
274 | const struct vnodeop_desc *a_desc; |
275 | struct vnode *a_dvp; |
276 | struct vnode *a_vp; |
277 | struct componentname *a_cnp; |
278 | }; |
279 | extern const struct vnodeop_desc vop_remove_desc; |
280 | int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *); |
281 | |
282 | #define VOP_LINK_DESCOFFSET 23 |
283 | struct vop_link_v2_args { |
284 | const struct vnodeop_desc *a_desc; |
285 | struct vnode *a_dvp; |
286 | struct vnode *a_vp; |
287 | struct componentname *a_cnp; |
288 | }; |
289 | extern const struct vnodeop_desc vop_link_desc; |
290 | int VOP_LINK(struct vnode *, struct vnode *, struct componentname *); |
291 | |
292 | #define VOP_RENAME_DESCOFFSET 24 |
293 | struct vop_rename_args { |
294 | const struct vnodeop_desc *a_desc; |
295 | struct vnode *a_fdvp; |
296 | struct vnode *a_fvp; |
297 | struct componentname *a_fcnp; |
298 | struct vnode *a_tdvp; |
299 | struct vnode *a_tvp; |
300 | struct componentname *a_tcnp; |
301 | }; |
302 | extern const struct vnodeop_desc vop_rename_desc; |
303 | int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *, |
304 | struct vnode *, struct vnode *, struct componentname *); |
305 | |
306 | #define VOP_MKDIR_DESCOFFSET 25 |
307 | struct vop_mkdir_v3_args { |
308 | const struct vnodeop_desc *a_desc; |
309 | struct vnode *a_dvp; |
310 | struct vnode **a_vpp; |
311 | struct componentname *a_cnp; |
312 | struct vattr *a_vap; |
313 | }; |
314 | extern const struct vnodeop_desc vop_mkdir_desc; |
315 | int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *, |
316 | struct vattr *); |
317 | |
318 | #define VOP_RMDIR_DESCOFFSET 26 |
319 | struct vop_rmdir_args { |
320 | const struct vnodeop_desc *a_desc; |
321 | struct vnode *a_dvp; |
322 | struct vnode *a_vp; |
323 | struct componentname *a_cnp; |
324 | }; |
325 | extern const struct vnodeop_desc vop_rmdir_desc; |
326 | int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *); |
327 | |
328 | #define VOP_SYMLINK_DESCOFFSET 27 |
329 | struct vop_symlink_v3_args { |
330 | const struct vnodeop_desc *a_desc; |
331 | struct vnode *a_dvp; |
332 | struct vnode **a_vpp; |
333 | struct componentname *a_cnp; |
334 | struct vattr *a_vap; |
335 | char *a_target; |
336 | }; |
337 | extern const struct vnodeop_desc vop_symlink_desc; |
338 | int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *, |
339 | struct vattr *, char *); |
340 | |
341 | #define VOP_READDIR_DESCOFFSET 28 |
342 | struct vop_readdir_args { |
343 | const struct vnodeop_desc *a_desc; |
344 | struct vnode *a_vp; |
345 | struct uio *a_uio; |
346 | kauth_cred_t a_cred; |
347 | int *a_eofflag; |
348 | off_t **a_cookies; |
349 | int *a_ncookies; |
350 | }; |
351 | extern const struct vnodeop_desc vop_readdir_desc; |
352 | int VOP_READDIR(struct vnode *, struct uio *, kauth_cred_t, int *, off_t **, |
353 | int *); |
354 | |
355 | #define VOP_READLINK_DESCOFFSET 29 |
356 | struct vop_readlink_args { |
357 | const struct vnodeop_desc *a_desc; |
358 | struct vnode *a_vp; |
359 | struct uio *a_uio; |
360 | kauth_cred_t a_cred; |
361 | }; |
362 | extern const struct vnodeop_desc vop_readlink_desc; |
363 | int VOP_READLINK(struct vnode *, struct uio *, kauth_cred_t); |
364 | |
365 | #define VOP_ABORTOP_DESCOFFSET 30 |
366 | struct vop_abortop_args { |
367 | const struct vnodeop_desc *a_desc; |
368 | struct vnode *a_dvp; |
369 | struct componentname *a_cnp; |
370 | }; |
371 | extern const struct vnodeop_desc vop_abortop_desc; |
372 | int VOP_ABORTOP(struct vnode *, struct componentname *); |
373 | |
374 | #define VOP_INACTIVE_DESCOFFSET 31 |
375 | struct vop_inactive_args { |
376 | const struct vnodeop_desc *a_desc; |
377 | struct vnode *a_vp; |
378 | bool *a_recycle; |
379 | }; |
380 | extern const struct vnodeop_desc vop_inactive_desc; |
381 | int VOP_INACTIVE(struct vnode *, bool *); |
382 | |
383 | #define VOP_RECLAIM_DESCOFFSET 32 |
384 | struct vop_reclaim_args { |
385 | const struct vnodeop_desc *a_desc; |
386 | struct vnode *a_vp; |
387 | }; |
388 | extern const struct vnodeop_desc vop_reclaim_desc; |
389 | int VOP_RECLAIM(struct vnode *); |
390 | |
391 | #define VOP_LOCK_DESCOFFSET 33 |
392 | struct vop_lock_args { |
393 | const struct vnodeop_desc *a_desc; |
394 | struct vnode *a_vp; |
395 | int a_flags; |
396 | }; |
397 | extern const struct vnodeop_desc vop_lock_desc; |
398 | int VOP_LOCK(struct vnode *, int); |
399 | |
400 | #define VOP_UNLOCK_DESCOFFSET 34 |
401 | struct vop_unlock_args { |
402 | const struct vnodeop_desc *a_desc; |
403 | struct vnode *a_vp; |
404 | }; |
405 | extern const struct vnodeop_desc vop_unlock_desc; |
406 | int VOP_UNLOCK(struct vnode *); |
407 | |
408 | #define VOP_BMAP_DESCOFFSET 35 |
409 | struct vop_bmap_args { |
410 | const struct vnodeop_desc *a_desc; |
411 | struct vnode *a_vp; |
412 | daddr_t a_bn; |
413 | struct vnode **a_vpp; |
414 | daddr_t *a_bnp; |
415 | int *a_runp; |
416 | }; |
417 | extern const struct vnodeop_desc vop_bmap_desc; |
418 | int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *); |
419 | |
420 | #define VOP_STRATEGY_DESCOFFSET 36 |
421 | struct vop_strategy_args { |
422 | const struct vnodeop_desc *a_desc; |
423 | struct vnode *a_vp; |
424 | struct buf *a_bp; |
425 | }; |
426 | extern const struct vnodeop_desc vop_strategy_desc; |
427 | int VOP_STRATEGY(struct vnode *, struct buf *); |
428 | |
429 | #define VOP_PRINT_DESCOFFSET 37 |
430 | struct vop_print_args { |
431 | const struct vnodeop_desc *a_desc; |
432 | struct vnode *a_vp; |
433 | }; |
434 | extern const struct vnodeop_desc vop_print_desc; |
435 | int VOP_PRINT(struct vnode *); |
436 | |
437 | #define VOP_ISLOCKED_DESCOFFSET 38 |
438 | struct vop_islocked_args { |
439 | const struct vnodeop_desc *a_desc; |
440 | struct vnode *a_vp; |
441 | }; |
442 | extern const struct vnodeop_desc vop_islocked_desc; |
443 | int VOP_ISLOCKED(struct vnode *); |
444 | |
445 | #define VOP_PATHCONF_DESCOFFSET 39 |
446 | struct vop_pathconf_args { |
447 | const struct vnodeop_desc *a_desc; |
448 | struct vnode *a_vp; |
449 | int a_name; |
450 | register_t *a_retval; |
451 | }; |
452 | extern const struct vnodeop_desc vop_pathconf_desc; |
453 | int VOP_PATHCONF(struct vnode *, int, register_t *); |
454 | |
455 | #define VOP_ADVLOCK_DESCOFFSET 40 |
456 | struct vop_advlock_args { |
457 | const struct vnodeop_desc *a_desc; |
458 | struct vnode *a_vp; |
459 | void *a_id; |
460 | int a_op; |
461 | struct flock *a_fl; |
462 | int a_flags; |
463 | }; |
464 | extern const struct vnodeop_desc vop_advlock_desc; |
465 | int VOP_ADVLOCK(struct vnode *, void *, int, struct flock *, int); |
466 | |
467 | #define VOP_WHITEOUT_DESCOFFSET 41 |
468 | struct vop_whiteout_args { |
469 | const struct vnodeop_desc *a_desc; |
470 | struct vnode *a_dvp; |
471 | struct componentname *a_cnp; |
472 | int a_flags; |
473 | }; |
474 | extern const struct vnodeop_desc vop_whiteout_desc; |
475 | int VOP_WHITEOUT(struct vnode *, struct componentname *, int); |
476 | |
477 | #define VOP_GETPAGES_DESCOFFSET 42 |
478 | struct vop_getpages_args { |
479 | const struct vnodeop_desc *a_desc; |
480 | struct vnode *a_vp; |
481 | voff_t a_offset; |
482 | struct vm_page **a_m; |
483 | int *a_count; |
484 | int a_centeridx; |
485 | vm_prot_t a_access_type; |
486 | int a_advice; |
487 | int a_flags; |
488 | }; |
489 | extern const struct vnodeop_desc vop_getpages_desc; |
490 | int VOP_GETPAGES(struct vnode *, voff_t, struct vm_page **, int *, int, |
491 | vm_prot_t, int, int); |
492 | |
493 | #define VOP_PUTPAGES_DESCOFFSET 43 |
494 | struct vop_putpages_args { |
495 | const struct vnodeop_desc *a_desc; |
496 | struct vnode *a_vp; |
497 | voff_t a_offlo; |
498 | voff_t a_offhi; |
499 | int a_flags; |
500 | }; |
501 | extern const struct vnodeop_desc vop_putpages_desc; |
502 | int VOP_PUTPAGES(struct vnode *, voff_t, voff_t, int); |
503 | |
504 | #define VOP_CLOSEEXTATTR_DESCOFFSET 44 |
505 | struct vop_closeextattr_args { |
506 | const struct vnodeop_desc *a_desc; |
507 | struct vnode *a_vp; |
508 | int a_commit; |
509 | kauth_cred_t a_cred; |
510 | }; |
511 | extern const struct vnodeop_desc vop_closeextattr_desc; |
512 | int VOP_CLOSEEXTATTR(struct vnode *, int, kauth_cred_t); |
513 | |
514 | #define VOP_GETEXTATTR_DESCOFFSET 45 |
515 | struct vop_getextattr_args { |
516 | const struct vnodeop_desc *a_desc; |
517 | struct vnode *a_vp; |
518 | int a_attrnamespace; |
519 | const char *a_name; |
520 | struct uio *a_uio; |
521 | size_t *a_size; |
522 | kauth_cred_t a_cred; |
523 | }; |
524 | extern const struct vnodeop_desc vop_getextattr_desc; |
525 | int VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *, |
526 | size_t *, kauth_cred_t); |
527 | |
528 | #define VOP_LISTEXTATTR_DESCOFFSET 46 |
529 | struct vop_listextattr_args { |
530 | const struct vnodeop_desc *a_desc; |
531 | struct vnode *a_vp; |
532 | int a_attrnamespace; |
533 | struct uio *a_uio; |
534 | size_t *a_size; |
535 | int a_flag; |
536 | kauth_cred_t a_cred; |
537 | }; |
538 | extern const struct vnodeop_desc vop_listextattr_desc; |
539 | int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, int, |
540 | kauth_cred_t); |
541 | |
542 | #define VOP_OPENEXTATTR_DESCOFFSET 47 |
543 | struct vop_openextattr_args { |
544 | const struct vnodeop_desc *a_desc; |
545 | struct vnode *a_vp; |
546 | kauth_cred_t a_cred; |
547 | }; |
548 | extern const struct vnodeop_desc vop_openextattr_desc; |
549 | int VOP_OPENEXTATTR(struct vnode *, kauth_cred_t); |
550 | |
551 | #define VOP_DELETEEXTATTR_DESCOFFSET 48 |
552 | struct vop_deleteextattr_args { |
553 | const struct vnodeop_desc *a_desc; |
554 | struct vnode *a_vp; |
555 | int a_attrnamespace; |
556 | const char *a_name; |
557 | kauth_cred_t a_cred; |
558 | }; |
559 | extern const struct vnodeop_desc vop_deleteextattr_desc; |
560 | int VOP_DELETEEXTATTR(struct vnode *, int, const char *, kauth_cred_t); |
561 | |
562 | #define VOP_SETEXTATTR_DESCOFFSET 49 |
563 | struct vop_setextattr_args { |
564 | const struct vnodeop_desc *a_desc; |
565 | struct vnode *a_vp; |
566 | int a_attrnamespace; |
567 | const char *a_name; |
568 | struct uio *a_uio; |
569 | kauth_cred_t a_cred; |
570 | }; |
571 | extern const struct vnodeop_desc vop_setextattr_desc; |
572 | int VOP_SETEXTATTR(struct vnode *, int, const char *, struct uio *, |
573 | kauth_cred_t); |
574 | |
575 | #define VNODE_OPS_COUNT 50 |
576 | |
577 | #endif /* !_SYS_VNODE_IF_H_ */ |
578 | |