[BACK]Return to vnode_if.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / sys

Annotation of src/sys/sys/vnode_if.h, Revision 1.66.6.1

1.66.6.1! matt        1: /*     $NetBSD: vnode_if.h,v 1.67 2007/10/10 20:42:32 ad 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.66      pooka       8:  *     NetBSD: vnode_if.src,v 1.54 2007/07/27 08:26:38 pooka Exp
1.1       cgd         9:  * by the script:
1.65      pooka      10:  *     NetBSD: vnode_if.sh,v 1.44 2007/07/22 21:26:53 pooka 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.48      thorpej    45: #ifdef _KERNEL_OPT
                     46: #include "opt_vnode_lockdebug.h"
                     47: #endif /* _KERNEL_OPT */
1.4       mikel      48:
1.33      jdolecek   49: extern const struct vnodeop_desc vop_default_desc;
1.1       cgd        50:
                     51:
1.63      pooka      52: /* Special cases: */
                     53: #include <sys/buf.h>
                     54:
                     55: #define VOP_BWRITE_DESCOFFSET 1
                     56: struct vop_bwrite_args {
                     57:        const struct vnodeop_desc *a_desc;
                     58:        struct buf *a_bp;
                     59: };
                     60: extern const struct vnodeop_desc vop_bwrite_desc;
                     61: int VOP_BWRITE(struct buf *);
                     62: /* End of special cases */
                     63:
                     64: #define VOP_LOOKUP_DESCOFFSET 2
1.1       cgd        65: struct vop_lookup_args {
1.33      jdolecek   66:        const struct vnodeop_desc *a_desc;
1.1       cgd        67:        struct vnode *a_dvp;
                     68:        struct vnode **a_vpp;
                     69:        struct componentname *a_cnp;
                     70: };
1.33      jdolecek   71: extern const struct vnodeop_desc vop_lookup_desc;
1.56      thorpej    72: int VOP_LOOKUP(struct vnode *, struct vnode **, struct componentname *);
1.1       cgd        73:
1.63      pooka      74: #define VOP_CREATE_DESCOFFSET 3
1.1       cgd        75: struct vop_create_args {
1.33      jdolecek   76:        const struct vnodeop_desc *a_desc;
1.1       cgd        77:        struct vnode *a_dvp;
                     78:        struct vnode **a_vpp;
                     79:        struct componentname *a_cnp;
                     80:        struct vattr *a_vap;
                     81: };
1.33      jdolecek   82: extern const struct vnodeop_desc vop_create_desc;
1.23      thorpej    83: int VOP_CREATE(struct vnode *, struct vnode **, struct componentname *,
1.56      thorpej    84:     struct vattr *);
1.1       cgd        85:
1.63      pooka      86: #define VOP_MKNOD_DESCOFFSET 4
1.1       cgd        87: struct vop_mknod_args {
1.33      jdolecek   88:        const struct vnodeop_desc *a_desc;
1.1       cgd        89:        struct vnode *a_dvp;
                     90:        struct vnode **a_vpp;
                     91:        struct componentname *a_cnp;
                     92:        struct vattr *a_vap;
                     93: };
1.33      jdolecek   94: extern const struct vnodeop_desc vop_mknod_desc;
1.23      thorpej    95: int VOP_MKNOD(struct vnode *, struct vnode **, struct componentname *,
1.56      thorpej    96:     struct vattr *);
1.1       cgd        97:
1.63      pooka      98: #define VOP_OPEN_DESCOFFSET 5
1.1       cgd        99: struct vop_open_args {
1.33      jdolecek  100:        const struct vnodeop_desc *a_desc;
1.1       cgd       101:        struct vnode *a_vp;
                    102:        int a_mode;
1.61      elad      103:        kauth_cred_t a_cred;
1.58      christos  104:        struct lwp *a_l;
1.1       cgd       105: };
1.33      jdolecek  106: extern const struct vnodeop_desc vop_open_desc;
1.61      elad      107: int VOP_OPEN(struct vnode *, int, kauth_cred_t, struct lwp *);
1.1       cgd       108:
1.63      pooka     109: #define VOP_CLOSE_DESCOFFSET 6
1.1       cgd       110: struct vop_close_args {
1.33      jdolecek  111:        const struct vnodeop_desc *a_desc;
1.1       cgd       112:        struct vnode *a_vp;
                    113:        int a_fflag;
1.61      elad      114:        kauth_cred_t a_cred;
1.58      christos  115:        struct lwp *a_l;
1.1       cgd       116: };
1.33      jdolecek  117: extern const struct vnodeop_desc vop_close_desc;
1.61      elad      118: int VOP_CLOSE(struct vnode *, int, kauth_cred_t, struct lwp *);
1.1       cgd       119:
1.63      pooka     120: #define VOP_ACCESS_DESCOFFSET 7
1.1       cgd       121: struct vop_access_args {
1.33      jdolecek  122:        const struct vnodeop_desc *a_desc;
1.1       cgd       123:        struct vnode *a_vp;
                    124:        int a_mode;
1.61      elad      125:        kauth_cred_t a_cred;
1.58      christos  126:        struct lwp *a_l;
1.1       cgd       127: };
1.33      jdolecek  128: extern const struct vnodeop_desc vop_access_desc;
1.61      elad      129: int VOP_ACCESS(struct vnode *, int, kauth_cred_t, struct lwp *);
1.1       cgd       130:
1.63      pooka     131: #define VOP_GETATTR_DESCOFFSET 8
1.1       cgd       132: struct vop_getattr_args {
1.33      jdolecek  133:        const struct vnodeop_desc *a_desc;
1.1       cgd       134:        struct vnode *a_vp;
                    135:        struct vattr *a_vap;
1.61      elad      136:        kauth_cred_t a_cred;
1.58      christos  137:        struct lwp *a_l;
1.1       cgd       138: };
1.33      jdolecek  139: extern const struct vnodeop_desc vop_getattr_desc;
1.61      elad      140: int VOP_GETATTR(struct vnode *, struct vattr *, kauth_cred_t, struct lwp *);
1.1       cgd       141:
1.63      pooka     142: #define VOP_SETATTR_DESCOFFSET 9
1.1       cgd       143: struct vop_setattr_args {
1.33      jdolecek  144:        const struct vnodeop_desc *a_desc;
1.1       cgd       145:        struct vnode *a_vp;
                    146:        struct vattr *a_vap;
1.61      elad      147:        kauth_cred_t a_cred;
1.58      christos  148:        struct lwp *a_l;
1.1       cgd       149: };
1.33      jdolecek  150: extern const struct vnodeop_desc vop_setattr_desc;
1.61      elad      151: int VOP_SETATTR(struct vnode *, struct vattr *, kauth_cred_t, struct lwp *);
1.1       cgd       152:
1.63      pooka     153: #define VOP_READ_DESCOFFSET 10
1.1       cgd       154: struct vop_read_args {
1.33      jdolecek  155:        const struct vnodeop_desc *a_desc;
1.1       cgd       156:        struct vnode *a_vp;
                    157:        struct uio *a_uio;
                    158:        int a_ioflag;
1.61      elad      159:        kauth_cred_t a_cred;
1.1       cgd       160: };
1.33      jdolecek  161: extern const struct vnodeop_desc vop_read_desc;
1.61      elad      162: int VOP_READ(struct vnode *, struct uio *, int, kauth_cred_t);
1.1       cgd       163:
1.63      pooka     164: #define VOP_WRITE_DESCOFFSET 11
1.1       cgd       165: struct vop_write_args {
1.33      jdolecek  166:        const struct vnodeop_desc *a_desc;
1.1       cgd       167:        struct vnode *a_vp;
                    168:        struct uio *a_uio;
                    169:        int a_ioflag;
1.61      elad      170:        kauth_cred_t a_cred;
1.1       cgd       171: };
1.33      jdolecek  172: extern const struct vnodeop_desc vop_write_desc;
1.61      elad      173: int VOP_WRITE(struct vnode *, struct uio *, int, kauth_cred_t);
1.1       cgd       174:
1.63      pooka     175: #define VOP_IOCTL_DESCOFFSET 12
1.1       cgd       176: struct vop_ioctl_args {
1.33      jdolecek  177:        const struct vnodeop_desc *a_desc;
1.1       cgd       178:        struct vnode *a_vp;
                    179:        u_long a_command;
1.40      dsl       180:        void *a_data;
1.1       cgd       181:        int a_fflag;
1.61      elad      182:        kauth_cred_t a_cred;
1.58      christos  183:        struct lwp *a_l;
1.1       cgd       184: };
1.33      jdolecek  185: extern const struct vnodeop_desc vop_ioctl_desc;
1.61      elad      186: int VOP_IOCTL(struct vnode *, u_long, void *, int, kauth_cred_t, struct lwp *);
1.18      wrstuden  187:
1.63      pooka     188: #define VOP_FCNTL_DESCOFFSET 13
1.18      wrstuden  189: struct vop_fcntl_args {
1.33      jdolecek  190:        const struct vnodeop_desc *a_desc;
1.18      wrstuden  191:        struct vnode *a_vp;
                    192:        u_int a_command;
1.40      dsl       193:        void *a_data;
1.18      wrstuden  194:        int a_fflag;
1.61      elad      195:        kauth_cred_t a_cred;
1.58      christos  196:        struct lwp *a_l;
1.18      wrstuden  197: };
1.33      jdolecek  198: extern const struct vnodeop_desc vop_fcntl_desc;
1.61      elad      199: int VOP_FCNTL(struct vnode *, u_int, void *, int, kauth_cred_t, struct lwp *);
1.1       cgd       200:
1.63      pooka     201: #define VOP_POLL_DESCOFFSET 14
1.3       mycroft   202: struct vop_poll_args {
1.33      jdolecek  203:        const struct vnodeop_desc *a_desc;
1.1       cgd       204:        struct vnode *a_vp;
1.3       mycroft   205:        int a_events;
1.58      christos  206:        struct lwp *a_l;
1.1       cgd       207: };
1.33      jdolecek  208: extern const struct vnodeop_desc vop_poll_desc;
1.58      christos  209: int VOP_POLL(struct vnode *, int, struct lwp *);
1.1       cgd       210:
1.63      pooka     211: #define VOP_KQFILTER_DESCOFFSET 15
1.39      jdolecek  212: struct vop_kqfilter_args {
                    213:        const struct vnodeop_desc *a_desc;
                    214:        struct vnode *a_vp;
                    215:        struct knote *a_kn;
                    216: };
                    217: extern const struct vnodeop_desc vop_kqfilter_desc;
1.56      thorpej   218: int VOP_KQFILTER(struct vnode *, struct knote *);
1.39      jdolecek  219:
1.63      pooka     220: #define VOP_REVOKE_DESCOFFSET 16
1.10      fvdl      221: struct vop_revoke_args {
1.33      jdolecek  222:        const struct vnodeop_desc *a_desc;
1.10      fvdl      223:        struct vnode *a_vp;
                    224:        int a_flags;
                    225: };
1.33      jdolecek  226: extern const struct vnodeop_desc vop_revoke_desc;
1.56      thorpej   227: int VOP_REVOKE(struct vnode *, int);
1.10      fvdl      228:
1.63      pooka     229: #define VOP_MMAP_DESCOFFSET 17
1.1       cgd       230: struct vop_mmap_args {
1.33      jdolecek  231:        const struct vnodeop_desc *a_desc;
1.1       cgd       232:        struct vnode *a_vp;
1.66      pooka     233:        vm_prot_t a_prot;
1.61      elad      234:        kauth_cred_t a_cred;
1.58      christos  235:        struct lwp *a_l;
1.1       cgd       236: };
1.33      jdolecek  237: extern const struct vnodeop_desc vop_mmap_desc;
1.66      pooka     238: int VOP_MMAP(struct vnode *, vm_prot_t, kauth_cred_t, struct lwp *);
1.1       cgd       239:
1.63      pooka     240: #define VOP_FSYNC_DESCOFFSET 18
1.1       cgd       241: struct vop_fsync_args {
1.33      jdolecek  242:        const struct vnodeop_desc *a_desc;
1.1       cgd       243:        struct vnode *a_vp;
1.61      elad      244:        kauth_cred_t a_cred;
1.12      kleink    245:        int a_flags;
1.25      fvdl      246:        off_t a_offlo;
                    247:        off_t a_offhi;
1.58      christos  248:        struct lwp *a_l;
1.1       cgd       249: };
1.33      jdolecek  250: extern const struct vnodeop_desc vop_fsync_desc;
1.61      elad      251: int VOP_FSYNC(struct vnode *, kauth_cred_t, int, off_t, off_t, struct lwp *);
1.1       cgd       252:
1.63      pooka     253: #define VOP_SEEK_DESCOFFSET 19
1.1       cgd       254: struct vop_seek_args {
1.33      jdolecek  255:        const struct vnodeop_desc *a_desc;
1.1       cgd       256:        struct vnode *a_vp;
                    257:        off_t a_oldoff;
                    258:        off_t a_newoff;
1.61      elad      259:        kauth_cred_t a_cred;
1.1       cgd       260: };
1.33      jdolecek  261: extern const struct vnodeop_desc vop_seek_desc;
1.61      elad      262: int VOP_SEEK(struct vnode *, off_t, off_t, kauth_cred_t);
1.1       cgd       263:
1.63      pooka     264: #define VOP_REMOVE_DESCOFFSET 20
1.1       cgd       265: struct vop_remove_args {
1.33      jdolecek  266:        const struct vnodeop_desc *a_desc;
1.1       cgd       267:        struct vnode *a_dvp;
                    268:        struct vnode *a_vp;
                    269:        struct componentname *a_cnp;
                    270: };
1.33      jdolecek  271: extern const struct vnodeop_desc vop_remove_desc;
1.56      thorpej   272: int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *);
1.1       cgd       273:
1.63      pooka     274: #define VOP_LINK_DESCOFFSET 21
1.1       cgd       275: struct vop_link_args {
1.33      jdolecek  276:        const struct vnodeop_desc *a_desc;
1.1       cgd       277:        struct vnode *a_dvp;
                    278:        struct vnode *a_vp;
                    279:        struct componentname *a_cnp;
                    280: };
1.33      jdolecek  281: extern const struct vnodeop_desc vop_link_desc;
1.56      thorpej   282: int VOP_LINK(struct vnode *, struct vnode *, struct componentname *);
1.1       cgd       283:
1.63      pooka     284: #define VOP_RENAME_DESCOFFSET 22
1.1       cgd       285: struct vop_rename_args {
1.33      jdolecek  286:        const struct vnodeop_desc *a_desc;
1.1       cgd       287:        struct vnode *a_fdvp;
                    288:        struct vnode *a_fvp;
                    289:        struct componentname *a_fcnp;
                    290:        struct vnode *a_tdvp;
                    291:        struct vnode *a_tvp;
                    292:        struct componentname *a_tcnp;
                    293: };
1.33      jdolecek  294: extern const struct vnodeop_desc vop_rename_desc;
1.23      thorpej   295: int VOP_RENAME(struct vnode *, struct vnode *, struct componentname *,
1.56      thorpej   296:     struct vnode *, struct vnode *, struct componentname *);
1.1       cgd       297:
1.63      pooka     298: #define VOP_MKDIR_DESCOFFSET 23
1.1       cgd       299: struct vop_mkdir_args {
1.33      jdolecek  300:        const struct vnodeop_desc *a_desc;
1.1       cgd       301:        struct vnode *a_dvp;
                    302:        struct vnode **a_vpp;
                    303:        struct componentname *a_cnp;
                    304:        struct vattr *a_vap;
                    305: };
1.33      jdolecek  306: extern const struct vnodeop_desc vop_mkdir_desc;
1.23      thorpej   307: int VOP_MKDIR(struct vnode *, struct vnode **, struct componentname *,
1.56      thorpej   308:     struct vattr *);
1.1       cgd       309:
1.63      pooka     310: #define VOP_RMDIR_DESCOFFSET 24
1.1       cgd       311: struct vop_rmdir_args {
1.33      jdolecek  312:        const struct vnodeop_desc *a_desc;
1.1       cgd       313:        struct vnode *a_dvp;
                    314:        struct vnode *a_vp;
                    315:        struct componentname *a_cnp;
                    316: };
1.33      jdolecek  317: extern const struct vnodeop_desc vop_rmdir_desc;
1.56      thorpej   318: int VOP_RMDIR(struct vnode *, struct vnode *, struct componentname *);
1.1       cgd       319:
1.63      pooka     320: #define VOP_SYMLINK_DESCOFFSET 25
1.1       cgd       321: struct vop_symlink_args {
1.33      jdolecek  322:        const struct vnodeop_desc *a_desc;
1.1       cgd       323:        struct vnode *a_dvp;
                    324:        struct vnode **a_vpp;
                    325:        struct componentname *a_cnp;
                    326:        struct vattr *a_vap;
                    327:        char *a_target;
                    328: };
1.33      jdolecek  329: extern const struct vnodeop_desc vop_symlink_desc;
1.23      thorpej   330: int VOP_SYMLINK(struct vnode *, struct vnode **, struct componentname *,
1.56      thorpej   331:     struct vattr *, char *);
1.1       cgd       332:
1.63      pooka     333: #define VOP_READDIR_DESCOFFSET 26
1.1       cgd       334: struct vop_readdir_args {
1.33      jdolecek  335:        const struct vnodeop_desc *a_desc;
1.1       cgd       336:        struct vnode *a_vp;
                    337:        struct uio *a_uio;
1.61      elad      338:        kauth_cred_t a_cred;
1.1       cgd       339:        int *a_eofflag;
1.10      fvdl      340:        off_t **a_cookies;
                    341:        int *a_ncookies;
1.1       cgd       342: };
1.33      jdolecek  343: extern const struct vnodeop_desc vop_readdir_desc;
1.61      elad      344: int VOP_READDIR(struct vnode *, struct uio *, kauth_cred_t, int *, off_t **,
                    345:     int *);
1.1       cgd       346:
1.63      pooka     347: #define VOP_READLINK_DESCOFFSET 27
1.1       cgd       348: struct vop_readlink_args {
1.33      jdolecek  349:        const struct vnodeop_desc *a_desc;
1.1       cgd       350:        struct vnode *a_vp;
                    351:        struct uio *a_uio;
1.61      elad      352:        kauth_cred_t a_cred;
1.1       cgd       353: };
1.33      jdolecek  354: extern const struct vnodeop_desc vop_readlink_desc;
1.61      elad      355: int VOP_READLINK(struct vnode *, struct uio *, kauth_cred_t);
1.1       cgd       356:
1.63      pooka     357: #define VOP_ABORTOP_DESCOFFSET 28
1.1       cgd       358: struct vop_abortop_args {
1.33      jdolecek  359:        const struct vnodeop_desc *a_desc;
1.1       cgd       360:        struct vnode *a_dvp;
                    361:        struct componentname *a_cnp;
                    362: };
1.33      jdolecek  363: extern const struct vnodeop_desc vop_abortop_desc;
1.56      thorpej   364: int VOP_ABORTOP(struct vnode *, struct componentname *);
1.1       cgd       365:
1.63      pooka     366: #define VOP_INACTIVE_DESCOFFSET 29
1.1       cgd       367: struct vop_inactive_args {
1.33      jdolecek  368:        const struct vnodeop_desc *a_desc;
1.1       cgd       369:        struct vnode *a_vp;
1.58      christos  370:        struct lwp *a_l;
1.1       cgd       371: };
1.33      jdolecek  372: extern const struct vnodeop_desc vop_inactive_desc;
1.58      christos  373: int VOP_INACTIVE(struct vnode *, struct lwp *);
1.1       cgd       374:
1.63      pooka     375: #define VOP_RECLAIM_DESCOFFSET 30
1.1       cgd       376: struct vop_reclaim_args {
1.33      jdolecek  377:        const struct vnodeop_desc *a_desc;
1.1       cgd       378:        struct vnode *a_vp;
1.58      christos  379:        struct lwp *a_l;
1.1       cgd       380: };
1.33      jdolecek  381: extern const struct vnodeop_desc vop_reclaim_desc;
1.58      christos  382: int VOP_RECLAIM(struct vnode *, struct lwp *);
1.1       cgd       383:
1.63      pooka     384: #define VOP_LOCK_DESCOFFSET 31
1.1       cgd       385: struct vop_lock_args {
1.33      jdolecek  386:        const struct vnodeop_desc *a_desc;
1.1       cgd       387:        struct vnode *a_vp;
1.10      fvdl      388:        int a_flags;
1.1       cgd       389: };
1.33      jdolecek  390: extern const struct vnodeop_desc vop_lock_desc;
1.56      thorpej   391: int VOP_LOCK(struct vnode *, int);
1.1       cgd       392:
1.63      pooka     393: #define VOP_UNLOCK_DESCOFFSET 32
1.1       cgd       394: struct vop_unlock_args {
1.33      jdolecek  395:        const struct vnodeop_desc *a_desc;
1.1       cgd       396:        struct vnode *a_vp;
1.10      fvdl      397:        int a_flags;
1.1       cgd       398: };
1.33      jdolecek  399: extern const struct vnodeop_desc vop_unlock_desc;
1.56      thorpej   400: int VOP_UNLOCK(struct vnode *, int);
1.1       cgd       401:
1.63      pooka     402: #define VOP_BMAP_DESCOFFSET 33
1.1       cgd       403: struct vop_bmap_args {
1.33      jdolecek  404:        const struct vnodeop_desc *a_desc;
1.1       cgd       405:        struct vnode *a_vp;
                    406:        daddr_t a_bn;
                    407:        struct vnode **a_vpp;
                    408:        daddr_t *a_bnp;
                    409:        int *a_runp;
                    410: };
1.33      jdolecek  411: extern const struct vnodeop_desc vop_bmap_desc;
1.56      thorpej   412: int VOP_BMAP(struct vnode *, daddr_t, struct vnode **, daddr_t *, int *);
1.1       cgd       413:
1.63      pooka     414: #define VOP_STRATEGY_DESCOFFSET 34
1.45      hannken   415: struct vop_strategy_args {
                    416:        const struct vnodeop_desc *a_desc;
                    417:        struct vnode *a_vp;
                    418:        struct buf *a_bp;
                    419: };
                    420: extern const struct vnodeop_desc vop_strategy_desc;
1.56      thorpej   421: int VOP_STRATEGY(struct vnode *, struct buf *);
1.45      hannken   422:
1.63      pooka     423: #define VOP_PRINT_DESCOFFSET 35
1.1       cgd       424: struct vop_print_args {
1.33      jdolecek  425:        const struct vnodeop_desc *a_desc;
1.1       cgd       426:        struct vnode *a_vp;
                    427: };
1.33      jdolecek  428: extern const struct vnodeop_desc vop_print_desc;
1.56      thorpej   429: int VOP_PRINT(struct vnode *);
1.1       cgd       430:
1.63      pooka     431: #define VOP_ISLOCKED_DESCOFFSET 36
1.1       cgd       432: struct vop_islocked_args {
1.33      jdolecek  433:        const struct vnodeop_desc *a_desc;
1.1       cgd       434:        struct vnode *a_vp;
                    435: };
1.33      jdolecek  436: extern const struct vnodeop_desc vop_islocked_desc;
1.56      thorpej   437: int VOP_ISLOCKED(struct vnode *);
1.1       cgd       438:
1.63      pooka     439: #define VOP_PATHCONF_DESCOFFSET 37
1.1       cgd       440: struct vop_pathconf_args {
1.33      jdolecek  441:        const struct vnodeop_desc *a_desc;
1.1       cgd       442:        struct vnode *a_vp;
                    443:        int a_name;
                    444:        register_t *a_retval;
                    445: };
1.33      jdolecek  446: extern const struct vnodeop_desc vop_pathconf_desc;
1.56      thorpej   447: int VOP_PATHCONF(struct vnode *, int, register_t *);
1.1       cgd       448:
1.63      pooka     449: #define VOP_ADVLOCK_DESCOFFSET 38
1.1       cgd       450: struct vop_advlock_args {
1.33      jdolecek  451:        const struct vnodeop_desc *a_desc;
1.1       cgd       452:        struct vnode *a_vp;
1.40      dsl       453:        void *a_id;
1.1       cgd       454:        int a_op;
                    455:        struct flock *a_fl;
                    456:        int a_flags;
                    457: };
1.33      jdolecek  458: extern const struct vnodeop_desc vop_advlock_desc;
1.56      thorpej   459: int VOP_ADVLOCK(struct vnode *, void *, int, struct flock *, int);
1.1       cgd       460:
1.63      pooka     461: #define VOP_LEASE_DESCOFFSET 39
1.1       cgd       462: struct vop_lease_args {
1.33      jdolecek  463:        const struct vnodeop_desc *a_desc;
1.1       cgd       464:        struct vnode *a_vp;
1.58      christos  465:        struct lwp *a_l;
1.61      elad      466:        kauth_cred_t a_cred;
1.1       cgd       467:        int a_flag;
                    468: };
1.33      jdolecek  469: extern const struct vnodeop_desc vop_lease_desc;
1.61      elad      470: int VOP_LEASE(struct vnode *, struct lwp *, kauth_cred_t, int);
1.1       cgd       471:
1.63      pooka     472: #define VOP_WHITEOUT_DESCOFFSET 40
1.1       cgd       473: struct vop_whiteout_args {
1.33      jdolecek  474:        const struct vnodeop_desc *a_desc;
1.1       cgd       475:        struct vnode *a_dvp;
                    476:        struct componentname *a_cnp;
                    477:        int a_flags;
                    478: };
1.33      jdolecek  479: extern const struct vnodeop_desc vop_whiteout_desc;
1.56      thorpej   480: int VOP_WHITEOUT(struct vnode *, struct componentname *, int);
1.26      chs       481:
1.63      pooka     482: #define VOP_GETPAGES_DESCOFFSET 41
1.26      chs       483: struct vop_getpages_args {
1.33      jdolecek  484:        const struct vnodeop_desc *a_desc;
1.26      chs       485:        struct vnode *a_vp;
                    486:        voff_t a_offset;
1.35      chs       487:        struct vm_page **a_m;
1.26      chs       488:        int *a_count;
                    489:        int a_centeridx;
                    490:        vm_prot_t a_access_type;
                    491:        int a_advice;
                    492:        int a_flags;
                    493: };
1.33      jdolecek  494: extern const struct vnodeop_desc vop_getpages_desc;
1.36      chs       495: int VOP_GETPAGES(struct vnode *, voff_t, struct vm_page **, int *, int,
1.56      thorpej   496:     vm_prot_t, int, int);
1.26      chs       497:
1.63      pooka     498: #define VOP_PUTPAGES_DESCOFFSET 42
1.26      chs       499: struct vop_putpages_args {
1.33      jdolecek  500:        const struct vnodeop_desc *a_desc;
1.26      chs       501:        struct vnode *a_vp;
1.37      chs       502:        voff_t a_offlo;
                    503:        voff_t a_offhi;
1.26      chs       504:        int a_flags;
                    505: };
1.33      jdolecek  506: extern const struct vnodeop_desc vop_putpages_desc;
1.56      thorpej   507: int VOP_PUTPAGES(struct vnode *, voff_t, voff_t, int);
1.26      chs       508:
1.63      pooka     509: #define VOP_CLOSEEXTATTR_DESCOFFSET 43
1.49      thorpej   510: struct vop_closeextattr_args {
                    511:        const struct vnodeop_desc *a_desc;
                    512:        struct vnode *a_vp;
                    513:        int a_commit;
1.61      elad      514:        kauth_cred_t a_cred;
1.58      christos  515:        struct lwp *a_l;
1.49      thorpej   516: };
                    517: extern const struct vnodeop_desc vop_closeextattr_desc;
1.61      elad      518: int VOP_CLOSEEXTATTR(struct vnode *, int, kauth_cred_t, struct lwp *);
1.49      thorpej   519:
1.63      pooka     520: #define VOP_GETEXTATTR_DESCOFFSET 44
1.49      thorpej   521: struct vop_getextattr_args {
                    522:        const struct vnodeop_desc *a_desc;
                    523:        struct vnode *a_vp;
                    524:        int a_attrnamespace;
                    525:        const char *a_name;
                    526:        struct uio *a_uio;
                    527:        size_t *a_size;
1.61      elad      528:        kauth_cred_t a_cred;
1.58      christos  529:        struct lwp *a_l;
1.49      thorpej   530: };
                    531: extern const struct vnodeop_desc vop_getextattr_desc;
                    532: int VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *,
1.61      elad      533:     size_t *, kauth_cred_t, struct lwp *);
1.49      thorpej   534:
1.63      pooka     535: #define VOP_LISTEXTATTR_DESCOFFSET 45
1.49      thorpej   536: struct vop_listextattr_args {
                    537:        const struct vnodeop_desc *a_desc;
                    538:        struct vnode *a_vp;
                    539:        int a_attrnamespace;
                    540:        struct uio *a_uio;
                    541:        size_t *a_size;
1.61      elad      542:        kauth_cred_t a_cred;
1.58      christos  543:        struct lwp *a_l;
1.49      thorpej   544: };
                    545: extern const struct vnodeop_desc vop_listextattr_desc;
                    546: int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *,
1.61      elad      547:     kauth_cred_t, struct lwp *);
1.49      thorpej   548:
1.63      pooka     549: #define VOP_OPENEXTATTR_DESCOFFSET 46
1.49      thorpej   550: struct vop_openextattr_args {
                    551:        const struct vnodeop_desc *a_desc;
                    552:        struct vnode *a_vp;
1.61      elad      553:        kauth_cred_t a_cred;
1.58      christos  554:        struct lwp *a_l;
1.49      thorpej   555: };
                    556: extern const struct vnodeop_desc vop_openextattr_desc;
1.61      elad      557: int VOP_OPENEXTATTR(struct vnode *, kauth_cred_t, struct lwp *);
1.49      thorpej   558:
1.63      pooka     559: #define VOP_DELETEEXTATTR_DESCOFFSET 47
1.49      thorpej   560: struct vop_deleteextattr_args {
                    561:        const struct vnodeop_desc *a_desc;
                    562:        struct vnode *a_vp;
                    563:        int a_attrnamespace;
                    564:        const char *a_name;
1.61      elad      565:        kauth_cred_t a_cred;
1.58      christos  566:        struct lwp *a_l;
1.49      thorpej   567: };
                    568: extern const struct vnodeop_desc vop_deleteextattr_desc;
1.61      elad      569: int VOP_DELETEEXTATTR(struct vnode *, int, const char *, kauth_cred_t,
1.58      christos  570:     struct lwp *);
1.49      thorpej   571:
1.63      pooka     572: #define VOP_SETEXTATTR_DESCOFFSET 48
1.49      thorpej   573: struct vop_setextattr_args {
                    574:        const struct vnodeop_desc *a_desc;
                    575:        struct vnode *a_vp;
                    576:        int a_attrnamespace;
                    577:        const char *a_name;
                    578:        struct uio *a_uio;
1.61      elad      579:        kauth_cred_t a_cred;
1.58      christos  580:        struct lwp *a_l;
1.49      thorpej   581: };
                    582: extern const struct vnodeop_desc vop_setextattr_desc;
                    583: int VOP_SETEXTATTR(struct vnode *, int, const char *, struct uio *,
1.61      elad      584:     kauth_cred_t, struct lwp *);
1.49      thorpej   585:
1.52      yamt      586: #define VNODE_OPS_COUNT        49
1.1       cgd       587:
                    588: /* End of special cases. */
1.4       mikel     589:
                    590: #endif /* !_SYS_VNODE_IF_H_ */

CVSweb <webmaster@jp.NetBSD.org>