[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.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>