Annotation of src/sys/sys/vnode_if.h, Revision 1.91.2.1
1.91.2.1! pgoyette 1: /* $NetBSD: vnode_if.h,v 1.92 2017/02/22 09:47:18 hannken Exp $ */
1.9 thorpej 2:
1.1 cgd 3: /*
1.50 perry 4: * Warning: DO NOT EDIT! This file is automatically generated!
1.1 cgd 5: * (Modifications made here may easily be lost!)
6: *
7: * Created from the file:
1.91.2.1! pgoyette 8: * NetBSD: vnode_if.src,v 1.70 2017/02/22 09:45:51 hannken Exp
1.1 cgd 9: * by the script:
1.91.2.1! pgoyette 10: * NetBSD: vnode_if.sh,v 1.62 2017/02/22 09:45:51 hannken Exp
1.1 cgd 11: */
12:
13: /*
1.10 fvdl 14: * Copyright (c) 1992, 1993, 1994, 1995
1.1 cgd 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.
1.44 agc 25: * 3. Neither the name of the University nor the names of its contributors
1.1 cgd 26: * may be used to endorse or promote products derived from this software
27: * without specific prior written permission.
28: *
1.14 christos 29: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
1.1 cgd 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:
1.4 mikel 42: #ifndef _SYS_VNODE_IF_H_
43: #define _SYS_VNODE_IF_H_
1.24 thorpej 44:
1.33 jdolecek 45: extern const struct vnodeop_desc vop_default_desc;
1.1 cgd 46:
1.78 pooka 47: struct buf;
1.1 cgd 48:
1.71 ad 49: #ifndef _KERNEL
50: #include <stdbool.h>
51: #endif
52:
1.63 pooka 53: #define VOP_BWRITE_DESCOFFSET 1
54: struct vop_bwrite_args {
55: const struct vnodeop_desc *a_desc;
1.82 hannken 56: struct vnode *a_vp;
1.63 pooka 57: struct buf *a_bp;
58: };
59: extern const struct vnodeop_desc vop_bwrite_desc;
1.82 hannken 60: int VOP_BWRITE(struct vnode *, struct buf *);
1.63 pooka 61:
62: #define VOP_LOOKUP_DESCOFFSET 2
1.87 hannken 63: struct vop_lookup_v2_args {
1.33 jdolecek 64: const struct vnodeop_desc *a_desc;
1.1 cgd 65: struct vnode *a_dvp;
66: struct vnode **a_vpp;
67: struct componentname *a_cnp;
68: };
1.33 jdolecek 69: extern const struct vnodeop_desc vop_lookup_desc;
1.56 thorpej 70: int VOP_LOOKUP(struct vnode *, struct vnode **, struct componentname *);
1.1 cgd 71:
1.63 pooka 72: #define VOP_CREATE_DESCOFFSET 3
1.86 hannken 73: struct vop_create_v3_args {
1.33 jdolecek 74: const struct vnodeop_desc *a_desc;
1.1 cgd 75: struct vnode *a_dvp;
76: struct vnode **a_vpp;
77: struct componentname *a_cnp;
78: struct vattr *a_vap;
79: };
1.33 jdolecek 80: extern const struct vnodeop_desc vop_create_desc;
1.23 thorpej 81: int VOP_CREATE(struct vnode *, struct vnode **, struct componentname *,
1.56 thorpej 82: struct vattr *);
1.1 cgd 83:
1.63 pooka 84: #define VOP_MKNOD_DESCOFFSET 4
1.86 hannken 85: struct vop_mknod_v3_args {
1.33 jdolecek 86: const struct vnodeop_desc *a_desc;
1.1 cgd 87: struct vnode *a_dvp;
88: struct vnode **a_vpp;
89: struct componentname *a_cnp;
90: struct vattr *a_vap;
91: };
1.33 jdolecek 92: extern const struct vnodeop_desc vop_mknod_desc;
1.23 thorpej 93: int VOP_MKNOD(struct vnode *, struct vnode **, struct componentname *,
1.56 thorpej 94: struct vattr *);
1.1 cgd 95:
1.63 pooka 96: #define VOP_OPEN_DESCOFFSET 5
1.1 cgd 97: struct vop_open_args {
1.33 jdolecek 98: const struct vnodeop_desc *a_desc;
1.1 cgd 99: struct vnode *a_vp;
100: int a_mode;
1.61 elad 101: kauth_cred_t a_cred;
1.1 cgd 102: };
1.33 jdolecek 103: extern const struct vnodeop_desc vop_open_desc;
1.69 pooka 104: int VOP_OPEN(struct vnode *, int, kauth_cred_t);
1.1 cgd 105:
1.63 pooka 106: #define VOP_CLOSE_DESCOFFSET 6
1.1 cgd 107: struct vop_close_args {
1.33 jdolecek 108: const struct vnodeop_desc *a_desc;
1.1 cgd 109: struct vnode *a_vp;
110: int a_fflag;
1.61 elad 111: kauth_cred_t a_cred;
1.1 cgd 112: };
1.33 jdolecek 113: extern const struct vnodeop_desc vop_close_desc;
1.69 pooka 114: int VOP_CLOSE(struct vnode *, int, kauth_cred_t);
1.1 cgd 115:
1.63 pooka 116: #define VOP_ACCESS_DESCOFFSET 7
1.1 cgd 117: struct vop_access_args {
1.33 jdolecek 118: const struct vnodeop_desc *a_desc;
1.1 cgd 119: struct vnode *a_vp;
120: int a_mode;
1.61 elad 121: kauth_cred_t a_cred;
1.1 cgd 122: };
1.33 jdolecek 123: extern const struct vnodeop_desc vop_access_desc;
1.69 pooka 124: int VOP_ACCESS(struct vnode *, int, kauth_cred_t);
1.1 cgd 125:
1.63 pooka 126: #define VOP_GETATTR_DESCOFFSET 8
1.1 cgd 127: struct vop_getattr_args {
1.33 jdolecek 128: const struct vnodeop_desc *a_desc;
1.1 cgd 129: struct vnode *a_vp;
130: struct vattr *a_vap;
1.61 elad 131: kauth_cred_t a_cred;
1.1 cgd 132: };
1.33 jdolecek 133: extern const struct vnodeop_desc vop_getattr_desc;
1.69 pooka 134: int VOP_GETATTR(struct vnode *, struct vattr *, kauth_cred_t);
1.1 cgd 135:
1.63 pooka 136: #define VOP_SETATTR_DESCOFFSET 9
1.1 cgd 137: struct vop_setattr_args {
1.33 jdolecek 138: const struct vnodeop_desc *a_desc;
1.1 cgd 139: struct vnode *a_vp;
140: struct vattr *a_vap;
1.61 elad 141: kauth_cred_t a_cred;
1.1 cgd 142: };
1.33 jdolecek 143: extern const struct vnodeop_desc vop_setattr_desc;
1.69 pooka 144: int VOP_SETATTR(struct vnode *, struct vattr *, kauth_cred_t);
1.1 cgd 145:
1.63 pooka 146: #define VOP_READ_DESCOFFSET 10
1.1 cgd 147: struct vop_read_args {
1.33 jdolecek 148: const struct vnodeop_desc *a_desc;
1.1 cgd 149: struct vnode *a_vp;
150: struct uio *a_uio;
151: int a_ioflag;
1.61 elad 152: kauth_cred_t a_cred;
1.1 cgd 153: };
1.33 jdolecek 154: extern const struct vnodeop_desc vop_read_desc;
1.61 elad 155: int VOP_READ(struct vnode *, struct uio *, int, kauth_cred_t);
1.1 cgd 156:
1.63 pooka 157: #define VOP_WRITE_DESCOFFSET 11
1.1 cgd 158: struct vop_write_args {
1.33 jdolecek 159: const struct vnodeop_desc *a_desc;
1.1 cgd 160: struct vnode *a_vp;
161: struct uio *a_uio;
162: int a_ioflag;
1.61 elad 163: kauth_cred_t a_cred;
1.1 cgd 164: };
1.33 jdolecek 165: extern const struct vnodeop_desc vop_write_desc;
1.61 elad 166: int VOP_WRITE(struct vnode *, struct uio *, int, kauth_cred_t);
1.1 cgd 167:
1.88 dholland 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
1.1 cgd 189: struct vop_ioctl_args {
1.33 jdolecek 190: const struct vnodeop_desc *a_desc;
1.1 cgd 191: struct vnode *a_vp;
192: u_long a_command;
1.40 dsl 193: void *a_data;
1.1 cgd 194: int a_fflag;
1.61 elad 195: kauth_cred_t a_cred;
1.1 cgd 196: };
1.33 jdolecek 197: extern const struct vnodeop_desc vop_ioctl_desc;
1.69 pooka 198: int VOP_IOCTL(struct vnode *, u_long, void *, int, kauth_cred_t);
1.18 wrstuden 199:
1.88 dholland 200: #define VOP_FCNTL_DESCOFFSET 15
1.18 wrstuden 201: struct vop_fcntl_args {
1.33 jdolecek 202: const struct vnodeop_desc *a_desc;
1.18 wrstuden 203: struct vnode *a_vp;
204: u_int a_command;
1.40 dsl 205: void *a_data;
1.18 wrstuden 206: int a_fflag;
1.61 elad 207: kauth_cred_t a_cred;
1.18 wrstuden 208: };
1.33 jdolecek 209: extern const struct vnodeop_desc vop_fcntl_desc;
1.69 pooka 210: int VOP_FCNTL(struct vnode *, u_int, void *, int, kauth_cred_t);
1.1 cgd 211:
1.88 dholland 212: #define VOP_POLL_DESCOFFSET 16
1.3 mycroft 213: struct vop_poll_args {
1.33 jdolecek 214: const struct vnodeop_desc *a_desc;
1.1 cgd 215: struct vnode *a_vp;
1.3 mycroft 216: int a_events;
1.1 cgd 217: };
1.33 jdolecek 218: extern const struct vnodeop_desc vop_poll_desc;
1.69 pooka 219: int VOP_POLL(struct vnode *, int);
1.1 cgd 220:
1.88 dholland 221: #define VOP_KQFILTER_DESCOFFSET 17
1.39 jdolecek 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;
1.56 thorpej 228: int VOP_KQFILTER(struct vnode *, struct knote *);
1.39 jdolecek 229:
1.88 dholland 230: #define VOP_REVOKE_DESCOFFSET 18
1.10 fvdl 231: struct vop_revoke_args {
1.33 jdolecek 232: const struct vnodeop_desc *a_desc;
1.10 fvdl 233: struct vnode *a_vp;
234: int a_flags;
235: };
1.33 jdolecek 236: extern const struct vnodeop_desc vop_revoke_desc;
1.56 thorpej 237: int VOP_REVOKE(struct vnode *, int);
1.10 fvdl 238:
1.88 dholland 239: #define VOP_MMAP_DESCOFFSET 19
1.1 cgd 240: struct vop_mmap_args {
1.33 jdolecek 241: const struct vnodeop_desc *a_desc;
1.1 cgd 242: struct vnode *a_vp;
1.66 pooka 243: vm_prot_t a_prot;
1.61 elad 244: kauth_cred_t a_cred;
1.1 cgd 245: };
1.33 jdolecek 246: extern const struct vnodeop_desc vop_mmap_desc;
1.69 pooka 247: int VOP_MMAP(struct vnode *, vm_prot_t, kauth_cred_t);
1.1 cgd 248:
1.88 dholland 249: #define VOP_FSYNC_DESCOFFSET 20
1.1 cgd 250: struct vop_fsync_args {
1.33 jdolecek 251: const struct vnodeop_desc *a_desc;
1.1 cgd 252: struct vnode *a_vp;
1.61 elad 253: kauth_cred_t a_cred;
1.12 kleink 254: int a_flags;
1.25 fvdl 255: off_t a_offlo;
256: off_t a_offhi;
1.1 cgd 257: };
1.33 jdolecek 258: extern const struct vnodeop_desc vop_fsync_desc;
1.69 pooka 259: int VOP_FSYNC(struct vnode *, kauth_cred_t, int, off_t, off_t);
1.1 cgd 260:
1.88 dholland 261: #define VOP_SEEK_DESCOFFSET 21
1.1 cgd 262: struct vop_seek_args {
1.33 jdolecek 263: const struct vnodeop_desc *a_desc;
1.1 cgd 264: struct vnode *a_vp;
265: off_t a_oldoff;
266: off_t a_newoff;
1.61 elad 267: kauth_cred_t a_cred;
1.1 cgd 268: };
1.33 jdolecek 269: extern const struct vnodeop_desc vop_seek_desc;
1.61 elad 270: int VOP_SEEK(struct vnode *, off_t, off_t, kauth_cred_t);
1.1 cgd 271:
1.88 dholland 272: #define VOP_REMOVE_DESCOFFSET 22
1.1 cgd 273: struct vop_remove_args {
1.33 jdolecek 274: const struct vnodeop_desc *a_desc;
1.1 cgd 275: struct vnode *a_dvp;
276: struct vnode *a_vp;
277: struct componentname *a_cnp;
278: };
1.33 jdolecek 279: extern const struct vnodeop_desc vop_remove_desc;
1.56 thorpej 280: int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *);
1.1 cgd 281:
1.88 dholland 282: #define VOP_LINK_DESCOFFSET 23
1.89 riastrad 283: struct vop_link_v2_args {
1.33 jdolecek 284: const struct vnodeop_desc *a_desc;
1.1 cgd 285: struct vnode *a_dvp;
286: struct vnode *a_vp;
287: struct componentname *a_cnp;
288: };
1.33 jdolecek 289: extern const struct vnodeop_desc vop_link_desc;
1.56 thorpej 290: int VOP_LINK(struct vnode *, struct vnode *, struct componentname *);
1.1 cgd 291:
1.88 dholland 292: #define VOP_RENAME_DESCOFFSET 24
1.1 cgd 293: struct vop_rename_args {
1.33 jdolecek 294: const struct vnodeop_desc *a_desc;
1.1 cgd 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: };
1.33 jdolecek 302: extern const struct vnodeop_desc vop_rename_desc;
1.23 thorpej 303: int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *,
1.56 thorpej 304: struct vnode *, struct vnode *, struct componentname *);
1.1 cgd 305:
1.88 dholland 306: #define VOP_MKDIR_DESCOFFSET 25
1.86 hannken 307: struct vop_mkdir_v3_args {
1.33 jdolecek 308: const struct vnodeop_desc *a_desc;
1.1 cgd 309: struct vnode *a_dvp;
310: struct vnode **a_vpp;
311: struct componentname *a_cnp;
312: struct vattr *a_vap;
313: };
1.33 jdolecek 314: extern const struct vnodeop_desc vop_mkdir_desc;
1.23 thorpej 315: int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *,
1.56 thorpej 316: struct vattr *);
1.1 cgd 317:
1.88 dholland 318: #define VOP_RMDIR_DESCOFFSET 26
1.1 cgd 319: struct vop_rmdir_args {
1.33 jdolecek 320: const struct vnodeop_desc *a_desc;
1.1 cgd 321: struct vnode *a_dvp;
322: struct vnode *a_vp;
323: struct componentname *a_cnp;
324: };
1.33 jdolecek 325: extern const struct vnodeop_desc vop_rmdir_desc;
1.56 thorpej 326: int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *);
1.1 cgd 327:
1.88 dholland 328: #define VOP_SYMLINK_DESCOFFSET 27
1.86 hannken 329: struct vop_symlink_v3_args {
1.33 jdolecek 330: const struct vnodeop_desc *a_desc;
1.1 cgd 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: };
1.33 jdolecek 337: extern const struct vnodeop_desc vop_symlink_desc;
1.23 thorpej 338: int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *,
1.56 thorpej 339: struct vattr *, char *);
1.1 cgd 340:
1.88 dholland 341: #define VOP_READDIR_DESCOFFSET 28
1.1 cgd 342: struct vop_readdir_args {
1.33 jdolecek 343: const struct vnodeop_desc *a_desc;
1.1 cgd 344: struct vnode *a_vp;
345: struct uio *a_uio;
1.61 elad 346: kauth_cred_t a_cred;
1.1 cgd 347: int *a_eofflag;
1.10 fvdl 348: off_t **a_cookies;
349: int *a_ncookies;
1.1 cgd 350: };
1.33 jdolecek 351: extern const struct vnodeop_desc vop_readdir_desc;
1.61 elad 352: int VOP_READDIR(struct vnode *, struct uio *, kauth_cred_t, int *, off_t **,
353: int *);
1.1 cgd 354:
1.88 dholland 355: #define VOP_READLINK_DESCOFFSET 29
1.1 cgd 356: struct vop_readlink_args {
1.33 jdolecek 357: const struct vnodeop_desc *a_desc;
1.1 cgd 358: struct vnode *a_vp;
359: struct uio *a_uio;
1.61 elad 360: kauth_cred_t a_cred;
1.1 cgd 361: };
1.33 jdolecek 362: extern const struct vnodeop_desc vop_readlink_desc;
1.61 elad 363: int VOP_READLINK(struct vnode *, struct uio *, kauth_cred_t);
1.1 cgd 364:
1.88 dholland 365: #define VOP_ABORTOP_DESCOFFSET 30
1.1 cgd 366: struct vop_abortop_args {
1.33 jdolecek 367: const struct vnodeop_desc *a_desc;
1.1 cgd 368: struct vnode *a_dvp;
369: struct componentname *a_cnp;
370: };
1.33 jdolecek 371: extern const struct vnodeop_desc vop_abortop_desc;
1.56 thorpej 372: int VOP_ABORTOP(struct vnode *, struct componentname *);
1.1 cgd 373:
1.88 dholland 374: #define VOP_INACTIVE_DESCOFFSET 31
1.1 cgd 375: struct vop_inactive_args {
1.33 jdolecek 376: const struct vnodeop_desc *a_desc;
1.1 cgd 377: struct vnode *a_vp;
1.71 ad 378: bool *a_recycle;
1.1 cgd 379: };
1.33 jdolecek 380: extern const struct vnodeop_desc vop_inactive_desc;
1.71 ad 381: int VOP_INACTIVE(struct vnode *, bool *);
1.1 cgd 382:
1.88 dholland 383: #define VOP_RECLAIM_DESCOFFSET 32
1.1 cgd 384: struct vop_reclaim_args {
1.33 jdolecek 385: const struct vnodeop_desc *a_desc;
1.1 cgd 386: struct vnode *a_vp;
387: };
1.33 jdolecek 388: extern const struct vnodeop_desc vop_reclaim_desc;
1.69 pooka 389: int VOP_RECLAIM(struct vnode *);
1.1 cgd 390:
1.88 dholland 391: #define VOP_LOCK_DESCOFFSET 33
1.1 cgd 392: struct vop_lock_args {
1.33 jdolecek 393: const struct vnodeop_desc *a_desc;
1.1 cgd 394: struct vnode *a_vp;
1.10 fvdl 395: int a_flags;
1.1 cgd 396: };
1.33 jdolecek 397: extern const struct vnodeop_desc vop_lock_desc;
1.56 thorpej 398: int VOP_LOCK(struct vnode *, int);
1.1 cgd 399:
1.88 dholland 400: #define VOP_UNLOCK_DESCOFFSET 34
1.1 cgd 401: struct vop_unlock_args {
1.33 jdolecek 402: const struct vnodeop_desc *a_desc;
1.1 cgd 403: struct vnode *a_vp;
404: };
1.33 jdolecek 405: extern const struct vnodeop_desc vop_unlock_desc;
1.79 hannken 406: int VOP_UNLOCK(struct vnode *);
1.1 cgd 407:
1.88 dholland 408: #define VOP_BMAP_DESCOFFSET 35
1.1 cgd 409: struct vop_bmap_args {
1.33 jdolecek 410: const struct vnodeop_desc *a_desc;
1.1 cgd 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: };
1.33 jdolecek 417: extern const struct vnodeop_desc vop_bmap_desc;
1.56 thorpej 418: int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *);
1.1 cgd 419:
1.88 dholland 420: #define VOP_STRATEGY_DESCOFFSET 36
1.45 hannken 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;
1.56 thorpej 427: int VOP_STRATEGY(struct vnode *, struct buf *);
1.45 hannken 428:
1.88 dholland 429: #define VOP_PRINT_DESCOFFSET 37
1.1 cgd 430: struct vop_print_args {
1.33 jdolecek 431: const struct vnodeop_desc *a_desc;
1.1 cgd 432: struct vnode *a_vp;
433: };
1.33 jdolecek 434: extern const struct vnodeop_desc vop_print_desc;
1.56 thorpej 435: int VOP_PRINT(struct vnode *);
1.1 cgd 436:
1.88 dholland 437: #define VOP_ISLOCKED_DESCOFFSET 38
1.1 cgd 438: struct vop_islocked_args {
1.33 jdolecek 439: const struct vnodeop_desc *a_desc;
1.1 cgd 440: struct vnode *a_vp;
441: };
1.33 jdolecek 442: extern const struct vnodeop_desc vop_islocked_desc;
1.56 thorpej 443: int VOP_ISLOCKED(struct vnode *);
1.1 cgd 444:
1.88 dholland 445: #define VOP_PATHCONF_DESCOFFSET 39
1.1 cgd 446: struct vop_pathconf_args {
1.33 jdolecek 447: const struct vnodeop_desc *a_desc;
1.1 cgd 448: struct vnode *a_vp;
449: int a_name;
450: register_t *a_retval;
451: };
1.33 jdolecek 452: extern const struct vnodeop_desc vop_pathconf_desc;
1.56 thorpej 453: int VOP_PATHCONF(struct vnode *, int, register_t *);
1.1 cgd 454:
1.88 dholland 455: #define VOP_ADVLOCK_DESCOFFSET 40
1.1 cgd 456: struct vop_advlock_args {
1.33 jdolecek 457: const struct vnodeop_desc *a_desc;
1.1 cgd 458: struct vnode *a_vp;
1.40 dsl 459: void *a_id;
1.1 cgd 460: int a_op;
461: struct flock *a_fl;
462: int a_flags;
463: };
1.33 jdolecek 464: extern const struct vnodeop_desc vop_advlock_desc;
1.56 thorpej 465: int VOP_ADVLOCK(struct vnode *, void *, int, struct flock *, int);
1.1 cgd 466:
1.88 dholland 467: #define VOP_WHITEOUT_DESCOFFSET 41
1.1 cgd 468: struct vop_whiteout_args {
1.33 jdolecek 469: const struct vnodeop_desc *a_desc;
1.1 cgd 470: struct vnode *a_dvp;
471: struct componentname *a_cnp;
472: int a_flags;
473: };
1.33 jdolecek 474: extern const struct vnodeop_desc vop_whiteout_desc;
1.56 thorpej 475: int VOP_WHITEOUT(struct vnode *, struct componentname *, int);
1.26 chs 476:
1.88 dholland 477: #define VOP_GETPAGES_DESCOFFSET 42
1.26 chs 478: struct vop_getpages_args {
1.33 jdolecek 479: const struct vnodeop_desc *a_desc;
1.26 chs 480: struct vnode *a_vp;
481: voff_t a_offset;
1.35 chs 482: struct vm_page **a_m;
1.26 chs 483: int *a_count;
484: int a_centeridx;
485: vm_prot_t a_access_type;
486: int a_advice;
487: int a_flags;
488: };
1.33 jdolecek 489: extern const struct vnodeop_desc vop_getpages_desc;
1.36 chs 490: int VOP_GETPAGES(struct vnode *, voff_t, struct vm_page **, int *, int,
1.56 thorpej 491: vm_prot_t, int, int);
1.26 chs 492:
1.88 dholland 493: #define VOP_PUTPAGES_DESCOFFSET 43
1.26 chs 494: struct vop_putpages_args {
1.33 jdolecek 495: const struct vnodeop_desc *a_desc;
1.26 chs 496: struct vnode *a_vp;
1.37 chs 497: voff_t a_offlo;
498: voff_t a_offhi;
1.26 chs 499: int a_flags;
500: };
1.33 jdolecek 501: extern const struct vnodeop_desc vop_putpages_desc;
1.56 thorpej 502: int VOP_PUTPAGES(struct vnode *, voff_t, voff_t, int);
1.26 chs 503:
1.88 dholland 504: #define VOP_CLOSEEXTATTR_DESCOFFSET 44
1.49 thorpej 505: struct vop_closeextattr_args {
506: const struct vnodeop_desc *a_desc;
507: struct vnode *a_vp;
508: int a_commit;
1.61 elad 509: kauth_cred_t a_cred;
1.49 thorpej 510: };
511: extern const struct vnodeop_desc vop_closeextattr_desc;
1.69 pooka 512: int VOP_CLOSEEXTATTR(struct vnode *, int, kauth_cred_t);
1.49 thorpej 513:
1.88 dholland 514: #define VOP_GETEXTATTR_DESCOFFSET 45
1.49 thorpej 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;
1.61 elad 522: kauth_cred_t a_cred;
1.49 thorpej 523: };
524: extern const struct vnodeop_desc vop_getextattr_desc;
525: int VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *,
1.69 pooka 526: size_t *, kauth_cred_t);
1.49 thorpej 527:
1.88 dholland 528: #define VOP_LISTEXTATTR_DESCOFFSET 46
1.49 thorpej 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;
1.81 manu 535: int a_flag;
1.61 elad 536: kauth_cred_t a_cred;
1.49 thorpej 537: };
538: extern const struct vnodeop_desc vop_listextattr_desc;
1.82 hannken 539: int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, int,
540: kauth_cred_t);
1.49 thorpej 541:
1.88 dholland 542: #define VOP_OPENEXTATTR_DESCOFFSET 47
1.49 thorpej 543: struct vop_openextattr_args {
544: const struct vnodeop_desc *a_desc;
545: struct vnode *a_vp;
1.61 elad 546: kauth_cred_t a_cred;
1.49 thorpej 547: };
548: extern const struct vnodeop_desc vop_openextattr_desc;
1.69 pooka 549: int VOP_OPENEXTATTR(struct vnode *, kauth_cred_t);
1.49 thorpej 550:
1.88 dholland 551: #define VOP_DELETEEXTATTR_DESCOFFSET 48
1.49 thorpej 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;
1.61 elad 557: kauth_cred_t a_cred;
1.49 thorpej 558: };
559: extern const struct vnodeop_desc vop_deleteextattr_desc;
1.69 pooka 560: int VOP_DELETEEXTATTR(struct vnode *, int, const char *, kauth_cred_t);
1.49 thorpej 561:
1.88 dholland 562: #define VOP_SETEXTATTR_DESCOFFSET 49
1.49 thorpej 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;
1.61 elad 569: kauth_cred_t a_cred;
1.49 thorpej 570: };
571: extern const struct vnodeop_desc vop_setextattr_desc;
572: int VOP_SETEXTATTR(struct vnode *, int, const char *, struct uio *,
1.69 pooka 573: kauth_cred_t);
1.49 thorpej 574:
1.88 dholland 575: #define VNODE_OPS_COUNT 50
1.1 cgd 576:
1.4 mikel 577: #endif /* !_SYS_VNODE_IF_H_ */
CVSweb <webmaster@jp.NetBSD.org>