version 1.137, 2006/02/12 06:18:25 |
version 1.137.2.4, 2006/08/11 15:47:26 |
|
|
#define VFS_MAGICLINKS 4 /* expand 'magic' symlinks */ |
#define VFS_MAGICLINKS 4 /* expand 'magic' symlinks */ |
#define VFSGEN_MAXID 5 /* number of valid vfs.generic ids */ |
#define VFSGEN_MAXID 5 /* number of valid vfs.generic ids */ |
|
|
|
#ifndef _STANDALONE |
/* |
/* |
* USE THE SAME NAMES AS MOUNT_*! |
* USE THE SAME NAMES AS MOUNT_*! |
* |
* |
|
|
struct nameidata; |
struct nameidata; |
struct mbuf; |
struct mbuf; |
struct vnodeopv_desc; |
struct vnodeopv_desc; |
|
struct kauth_cred; |
#endif |
#endif |
|
|
struct vfsops { |
struct vfsops { |
|
|
struct lwp *); |
struct lwp *); |
int (*vfs_statvfs) (struct mount *, struct statvfs *, |
int (*vfs_statvfs) (struct mount *, struct statvfs *, |
struct lwp *); |
struct lwp *); |
int (*vfs_sync) (struct mount *, int, struct ucred *, |
int (*vfs_sync) (struct mount *, int, struct kauth_cred *, |
struct lwp *); |
struct lwp *); |
int (*vfs_vget) (struct mount *, ino_t, struct vnode **); |
int (*vfs_vget) (struct mount *, ino_t, struct vnode **); |
int (*vfs_fhtovp) (struct mount *, struct fid *, |
int (*vfs_fhtovp) (struct mount *, struct fid *, |
struct vnode **); |
struct vnode **); |
int (*vfs_vptofh) (struct vnode *, struct fid *); |
int (*vfs_vptofh) (struct vnode *, struct fid *, size_t *); |
void (*vfs_init) (void); |
void (*vfs_init) (void); |
void (*vfs_reinit) (void); |
void (*vfs_reinit) (void); |
void (*vfs_done) (void); |
void (*vfs_done) (void); |
|
|
#define VFS_SYNC(MP, WAIT, C, L) (*(MP)->mnt_op->vfs_sync)(MP, WAIT, C, L) |
#define VFS_SYNC(MP, WAIT, C, L) (*(MP)->mnt_op->vfs_sync)(MP, WAIT, C, L) |
#define VFS_VGET(MP, INO, VPP) (*(MP)->mnt_op->vfs_vget)(MP, INO, VPP) |
#define VFS_VGET(MP, INO, VPP) (*(MP)->mnt_op->vfs_vget)(MP, INO, VPP) |
#define VFS_FHTOVP(MP, FIDP, VPP) (*(MP)->mnt_op->vfs_fhtovp)(MP, FIDP, VPP) |
#define VFS_FHTOVP(MP, FIDP, VPP) (*(MP)->mnt_op->vfs_fhtovp)(MP, FIDP, VPP) |
#define VFS_VPTOFH(VP, FIDP) (*(VP)->v_mount->mnt_op->vfs_vptofh)(VP, FIDP) |
#define VFS_VPTOFH(VP, FIDP, FIDSZP) (*(VP)->v_mount->mnt_op->vfs_vptofh)(VP, FIDP, FIDSZP) |
#define VFS_SNAPSHOT(MP, VP, TS) (*(MP)->mnt_op->vfs_snapshot)(MP, VP, TS) |
#define VFS_SNAPSHOT(MP, VP, TS) (*(MP)->mnt_op->vfs_snapshot)(MP, VP, TS) |
#define VFS_EXTATTRCTL(MP, C, VP, AS, AN, L) \ |
#define VFS_EXTATTRCTL(MP, C, VP, AS, AN, L) \ |
(*(MP)->mnt_op->vfs_extattrctl)(MP, C, VP, AS, AN, L) |
(*(MP)->mnt_op->vfs_extattrctl)(MP, C, VP, AS, AN, L) |
|
|
struct vfs_hooks { |
struct vfs_hooks { |
void (*vh_unmount)(struct mount *); |
void (*vh_unmount)(struct mount *); |
}; |
}; |
#define VFS_HOOKS_ATTACH(hooks) __link_set_add_rodata(vfs_hooks, hooks) |
#define VFS_HOOKS_ATTACH(hooks) __link_set_add_data(vfs_hooks, hooks) |
|
|
void vfs_hooks_unmount(struct mount *); |
void vfs_hooks_unmount(struct mount *); |
|
|
Line 270 MALLOC_DECLARE(M_MOUNT); |
|
Line 272 MALLOC_DECLARE(M_MOUNT); |
|
* exported VFS interface (see vfssubr(9)) |
* exported VFS interface (see vfssubr(9)) |
*/ |
*/ |
struct mount *vfs_getvfs(fsid_t *); /* return vfs given fsid */ |
struct mount *vfs_getvfs(fsid_t *); /* return vfs given fsid */ |
|
int vfs_composefh(struct vnode *, fhandle_t *, size_t *); |
|
int vfs_composefh_alloc(struct vnode *, fhandle_t **); |
|
void vfs_composefh_free(fhandle_t *); |
|
int vfs_fhtovp(fhandle_t *, struct vnode **); |
int vfs_mountedon(struct vnode *);/* is a vfs mounted on vp */ |
int vfs_mountedon(struct vnode *);/* is a vfs mounted on vp */ |
int vfs_mountroot(void); |
int vfs_mountroot(void); |
void vfs_shutdown(void); /* unmount and sync file systems */ |
void vfs_shutdown(void); /* unmount and sync file systems */ |
Line 299 void vfs_opv_free(const struct vnodeopv_ |
|
Line 305 void vfs_opv_free(const struct vnodeopv_ |
|
void vfs_bufstats(void); |
void vfs_bufstats(void); |
#endif |
#endif |
|
|
|
/* |
|
* syscall helpers |
|
*/ |
|
|
|
int vfs_copyinfh_alloc(const void *, size_t, fhandle_t **); |
|
void vfs_copyinfh_free(fhandle_t *); |
|
|
|
struct stat; |
|
int dofhopen(struct lwp *, const void *, size_t, int, register_t *); |
|
int dofhstat(struct lwp *, const void *, size_t, struct stat *, register_t *); |
|
int dofhstatvfs(struct lwp *, const void *, size_t, struct statvfs *, int, |
|
register_t *); |
|
|
LIST_HEAD(vfs_list_head, vfsops); |
LIST_HEAD(vfs_list_head, vfsops); |
extern struct vfs_list_head vfs_list; |
extern struct vfs_list_head vfs_list; |
|
|
Line 307 extern struct vfs_list_head vfs_list; |
|
Line 326 extern struct vfs_list_head vfs_list; |
|
#include <sys/cdefs.h> |
#include <sys/cdefs.h> |
|
|
__BEGIN_DECLS |
__BEGIN_DECLS |
int getfh(const char *, fhandle_t *); |
#if !defined(__LIBC12_SOURCE__) && !defined(_STANDALONE) |
|
int getfh(const char *, void *, size_t *) |
|
__RENAME(__getfh30); |
|
#endif |
|
|
int mount(const char *, const char *, int, void *); |
int mount(const char *, const char *, int, void *); |
int unmount(const char *, int); |
int unmount(const char *, int); |
#if defined(_NETBSD_SOURCE) |
#if defined(_NETBSD_SOURCE) |
int fhopen(const fhandle_t *, int); |
#ifndef __LIBC12_SOURCE__ |
int fhstat(const fhandle_t *, struct stat *); |
int fhopen(const void *, size_t, int) __RENAME(__fhopen40); |
|
int fhstat(const void *, size_t, struct stat *) __RENAME(__fhstat40); |
|
#endif |
#endif /* _NETBSD_SOURCE */ |
#endif /* _NETBSD_SOURCE */ |
__END_DECLS |
__END_DECLS |
|
|
#endif /* _KERNEL */ |
#endif /* _KERNEL */ |
|
#endif /* !_STANDALONE */ |
|
|
#endif /* !_SYS_MOUNT_H_ */ |
#endif /* !_SYS_MOUNT_H_ */ |