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

Annotation of src/sys/miscfs/genfs/genfs.h, Revision 1.38

1.38    ! thorpej     1: /*     $NetBSD: genfs.h,v 1.37 2021/06/29 22:34:08 dholland Exp $      */
1.24      elad        2:
                      3: #ifndef        _MISCFS_GENFS_GENFS_H_
                      4: #define        _MISCFS_GENFS_GENFS_H_
                      5:
                      6: #include <sys/vnode.h>
1.30      riastrad    7: #include <sys/types.h>
                      8:
                      9: struct componentname;
                     10: struct mount;
1.34      christos   11: struct acl;
1.4       perry      12:
1.34      christos   13: int    genfs_access(void *);
                     14: int    genfs_accessx(void *);
1.18      xtraeme    15: int    genfs_badop(void *);
                     16: int    genfs_nullop(void *);
                     17: int    genfs_enoioctl(void *);
                     18: int    genfs_enoextops(void *);
                     19: int    genfs_einval(void *);
                     20: int    genfs_eopnotsupp(void *);
                     21: int    genfs_ebadf(void *);
                     22: int    genfs_nolock(void *);
                     23: int    genfs_noislocked(void *);
                     24: int    genfs_nounlock(void *);
1.1       mycroft    25:
1.32      hannken    26: int    genfs_deadlock(void *);
                     27: #define        genfs_deadislocked genfs_islocked
                     28: int    genfs_deadunlock(void *);
                     29:
1.37      dholland   30: int    genfs_parsepath(void *);
1.18      xtraeme    31: int    genfs_poll(void *);
                     32: int    genfs_kqfilter(void *);
                     33: int    genfs_fcntl(void *);
                     34: int    genfs_seek(void *);
                     35: int    genfs_abortop(void *);
                     36: int    genfs_revoke(void *);
                     37: int    genfs_lock(void *);
                     38: int    genfs_islocked(void *);
                     39: int    genfs_unlock(void *);
                     40: int    genfs_mmap(void *);
                     41: int    genfs_getpages(void *);
                     42: int    genfs_putpages(void *);
                     43: int    genfs_null_putpages(void *);
                     44: int    genfs_compat_getpages(void *);
1.35      christos   45: int    genfs_pathconf(void *v);
1.21      perseant   46:
                     47: int    genfs_do_putpages(struct vnode *, off_t, off_t, int, struct vm_page **);
1.23      dholland   48:
1.28      pooka      49: int    genfs_statvfs(struct mount *, struct statvfs *);
                     50:
1.23      dholland   51: int    genfs_renamelock_enter(struct mount *);
                     52: void   genfs_renamelock_exit(struct mount *);
1.24      elad       53:
1.33      hannken    54: int    genfs_suspendctl(struct mount *, int);
                     55:
1.34      christos   56: int    genfs_can_access(struct vnode *, kauth_cred_t, uid_t, gid_t, mode_t,
                     57:     struct acl *, accmode_t);
                     58: int    genfs_can_access_acl_posix1e(struct vnode *, kauth_cred_t, uid_t,
                     59:     gid_t, mode_t, struct acl *, accmode_t);
                     60: int    genfs_can_access_acl_nfs4(struct vnode *, kauth_cred_t, uid_t, gid_t,
                     61:     mode_t, struct acl *, accmode_t);
                     62: int    genfs_can_chmod(struct vnode *, kauth_cred_t, uid_t, gid_t, mode_t);
                     63: int    genfs_can_chown(struct vnode *, kauth_cred_t, uid_t, gid_t, uid_t,
                     64:     gid_t);
                     65: int    genfs_can_chtimes(struct vnode *, kauth_cred_t, uid_t, u_int);
                     66: int    genfs_can_chflags(struct vnode *, kauth_cred_t, uid_t, bool);
                     67: int    genfs_can_sticky(struct vnode *, kauth_cred_t, uid_t, uid_t);
1.36      christos   68: int    genfs_can_extattr(struct vnode *, kauth_cred_t, accmode_t, int);
1.24      elad       69:
1.30      riastrad   70: /*
                     71:  * Rename is complicated.  Sorry.
                     72:  */
                     73:
                     74: struct genfs_rename_ops;
                     75:
                     76:
                     77: int    genfs_insane_rename(void *,
                     78:            int (*)(struct vnode *, struct componentname *,
                     79:                struct vnode *, struct componentname *,
                     80:                kauth_cred_t, bool));
                     81: int    genfs_sane_rename(const struct genfs_rename_ops *,
                     82:            struct vnode *, struct componentname *, void *,
                     83:            struct vnode *, struct componentname *, void *,
                     84:            kauth_cred_t, bool);
                     85:
                     86: void   genfs_rename_knote(struct vnode *, struct vnode *, struct vnode *,
1.38    ! thorpej    87:            struct vnode *, nlink_t);
1.30      riastrad   88: void   genfs_rename_cache_purge(struct vnode *, struct vnode *, struct vnode *,
                     89:            struct vnode *);
                     90:
                     91: int    genfs_ufslike_rename_check_possible(unsigned long, unsigned long,
                     92:            unsigned long, unsigned long, bool,
                     93:            unsigned long, unsigned long);
                     94: int    genfs_ufslike_rename_check_permitted(kauth_cred_t,
                     95:            struct vnode *, mode_t, uid_t,
                     96:            struct vnode *, uid_t,
                     97:            struct vnode *, mode_t, uid_t,
                     98:            struct vnode *, uid_t);
                     99: int    genfs_ufslike_remove_check_possible(unsigned long, unsigned long,
                    100:            unsigned long, unsigned long);
                    101: int    genfs_ufslike_remove_check_permitted(kauth_cred_t,
                    102:            struct vnode *, mode_t, uid_t,
                    103:            struct vnode *, uid_t);
                    104:
                    105: struct genfs_rename_ops {
                    106:        bool (*gro_directory_empty_p)(struct mount *mp, kauth_cred_t cred,
                    107:            struct vnode *vp, struct vnode *dvp);
                    108:        int (*gro_rename_check_possible)(struct mount *mp,
                    109:            struct vnode *fdvp, struct vnode *fvp,
                    110:            struct vnode *tdvp, struct vnode *tvp);
                    111:        int (*gro_rename_check_permitted)(struct mount *mp, kauth_cred_t cred,
                    112:            struct vnode *fdvp, struct vnode *fvp,
                    113:            struct vnode *tdvp, struct vnode *tvp);
                    114:        int (*gro_remove_check_possible)(struct mount *mp,
                    115:            struct vnode *dvp, struct vnode *vp);
                    116:        int (*gro_remove_check_permitted)(struct mount *mp, kauth_cred_t cred,
                    117:            struct vnode *dvp, struct vnode *vp);
                    118:        int (*gro_rename)(struct mount *mp, kauth_cred_t cred,
                    119:            struct vnode *fdvp, struct componentname *fcnp,
                    120:            void *fde, struct vnode *fvp,
                    121:            struct vnode *tdvp, struct componentname *tcnp,
1.38    ! thorpej   122:            void *tde, struct vnode *tvp, nlink_t *tvp_nlinkp);
1.30      riastrad  123:        int (*gro_remove)(struct mount *mp, kauth_cred_t cred,
                    124:            struct vnode *dvp, struct componentname *cnp, void *de,
1.38    ! thorpej   125:            struct vnode *vp, nlink_t *tvp_nlinkp);
1.30      riastrad  126:        int (*gro_lookup)(struct mount *mp, struct vnode *dvp,
1.31      riastrad  127:            struct componentname *cnp, void *de_ret, struct vnode **vp_ret);
1.30      riastrad  128:        int (*gro_genealogy)(struct mount *mp, kauth_cred_t cred,
                    129:            struct vnode *fdvp, struct vnode *tdvp,
                    130:            struct vnode **intermediate_node_ret);
                    131:        int (*gro_lock_directory)(struct mount *mp, struct vnode *vp);
                    132: };
                    133:
1.24      elad      134: #endif /* !_MISCFS_GENFS_GENFS_H_ */

CVSweb <webmaster@jp.NetBSD.org>