📄 mount.h
字号:
int (*vfs_init) __P((void));};#define VFS_MOUNT(MP, PATH, DATA, NDP, P) \ (*(MP)->mnt_op->vfs_mount)(MP, PATH, DATA, NDP, P)#define VFS_START(MP, FLAGS, P) (*(MP)->mnt_op->vfs_start)(MP, FLAGS, P)#define VFS_UNMOUNT(MP, FORCE, P) (*(MP)->mnt_op->vfs_unmount)(MP, FORCE, P)#define VFS_ROOT(MP, VPP) (*(MP)->mnt_op->vfs_root)(MP, VPP)#define VFS_QUOTACTL(MP,C,U,A,P) (*(MP)->mnt_op->vfs_quotactl)(MP, C, U, A, P)#define VFS_STATFS(MP, SBP, P) (*(MP)->mnt_op->vfs_statfs)(MP, SBP, P)#define VFS_SYNC(MP, WAIT, C, P) (*(MP)->mnt_op->vfs_sync)(MP, WAIT, C, P)#define VFS_VGET(MP, INO, VPP) (*(MP)->mnt_op->vfs_vget)(MP, INO, VPP)#define VFS_FHTOVP(MP, FIDP, NAM, VPP, EXFLG, CRED) \ (*(MP)->mnt_op->vfs_fhtovp)(MP, FIDP, NAM, VPP, EXFLG, CRED)#define VFS_VPTOFH(VP, FIDP) (*(VP)->v_mount->mnt_op->vfs_vptofh)(VP, FIDP)#ifdef VFS_LKM#include <sys/conf.h>#include <sys/exec.h>#include <sys/sysent.h>#include <sys/lkm.h>#define VFS_SET(vfsops, fsname, index, flags) \ static struct vfsconf _fs_vfsconf = { \ &vfsops, \ #fsname, \ index, \ 0, \ flags \ }; \ extern struct linker_set MODVNOPS; \ MOD_VFS(#fsname,index,&MODVNOPS,&_fs_vfsconf); \ int \ fsname ## _mod(struct lkm_table *lkmtp, int cmd, int ver) { \ DISPATCH(lkmtp, cmd, ver, lkm_nullcmd, lkm_nullcmd, lkm_nullcmd); }#else#define VFS_SET(vfsops, fsname, index, flags) \ static struct vfsconf _fs_vfsconf = { \ &vfsops, \ #fsname, \ index, \ 0, \ flags | VFCF_STATIC \ }; \ DATA_SET(vfs_set,_fs_vfsconf)#endif /* VFS_LKM */#endif /* KERNEL *//* * Flags for various system call interfaces. * * waitfor flags to vfs_sync() and getfsstat() */#define MNT_WAIT 1#define MNT_NOWAIT 2/* * Generic file handle */struct fhandle { fsid_t fh_fsid; /* File system id of mount point */ struct fid fh_fid; /* File sys specific id */};typedef struct fhandle fhandle_t;#ifdef KERNEL#include <net/radix.h>#include <sys/socket.h> /* XXX for AF_MAX *//* * Network address lookup element */struct netcred { struct radix_node netc_rnodes[2]; int netc_exflags; struct ucred netc_anon;};/* * Network export information */struct netexport { struct netcred ne_defexported; /* Default export */ struct radix_node_head *ne_rtable[AF_MAX+1]; /* Individual exports */};#endif /* KERNEL *//* * Export arguments for local filesystem mount calls. */struct export_args { int ex_flags; /* export related flags */ uid_t ex_root; /* mapping for root uid */ struct ucred ex_anon; /* mapping for anonymous user */ struct sockaddr *ex_addr; /* net address to which exported */ int ex_addrlen; /* and the net address length */ struct sockaddr *ex_mask; /* mask of valid bits in saddr */ int ex_masklen; /* and the smask length */};/* * Arguments to mount UFS-based filesystems */struct ufs_args { char *fspec; /* block special device to mount */ struct export_args export; /* network export information */};#ifdef MFS/* * Arguments to mount MFS */struct mfs_args { char *fspec; /* name to export for statfs */ struct export_args export; /* if exported MFSes are supported */ caddr_t base; /* base of file system in memory */ u_long size; /* size of file system */};#endif /* MFS */#ifdef MSDOSFS/* * Arguments to mount MSDOS filesystems. */struct msdosfs_args { char *fspec; /* blocks special holding the fs to mount */ struct export_args export; /* network export information */ uid_t uid; /* uid that owns msdosfs files */ gid_t gid; /* gid that owns msdosfs files */ mode_t mask; /* mask to be applied for msdosfs perms */};#endif#ifdef CD9660/* * Arguments to mount ISO 9660 filesystems. */struct iso_args { char *fspec; /* block special device to mount */ struct export_args export; /* network export info */ int flags; /* mounting flags, see below */ int ssector; /* starting sector */};#define ISOFSMNT_NORRIP 0x00000001 /* disable Rock Ridge Ext.*/#define ISOFSMNT_GENS 0x00000002 /* enable generation numbers */#define ISOFSMNT_EXTATT 0x00000004 /* enable extended attributes */#endif /* CD9660 */#ifdef NFS/* * Arguments to mount NFS */struct nfs_args { struct sockaddr *addr; /* file server address */ int addrlen; /* length of address */ int sotype; /* Socket type */ int proto; /* and Protocol */ u_char *fh; /* File handle to be mounted */ int fhsize; /* Size, in bytes, of fh */ int flags; /* flags */ int wsize; /* write size in bytes */ int rsize; /* read size in bytes */ int readdirsize; /* readdir size in bytes */ int timeo; /* initial timeout in .1 secs */ int retrans; /* times to retry send */ int maxgrouplist; /* Max. size of group list */ int readahead; /* # of blocks to readahead */ int leaseterm; /* Term (sec) of lease */ int deadthresh; /* Retrans threshold */ char *hostname; /* server's name */};/* * NFS mount option flags */#define NFSMNT_SOFT 0x00000001 /* soft mount (hard is default) */#define NFSMNT_WSIZE 0x00000002 /* set write size */#define NFSMNT_RSIZE 0x00000004 /* set read size */#define NFSMNT_TIMEO 0x00000008 /* set initial timeout */#define NFSMNT_RETRANS 0x00000010 /* set number of request retrys */#define NFSMNT_MAXGRPS 0x00000020 /* set maximum grouplist size */#define NFSMNT_INT 0x00000040 /* allow interrupts on hard mount */#define NFSMNT_NOCONN 0x00000080 /* Don't Connect the socket */#define NFSMNT_NQNFS 0x00000100 /* Use Nqnfs protocol */#define NFSMNT_NFSV3 0x00000200 /* Use NFS Version 3 protocol */#define NFSMNT_KERB 0x00000400 /* Use Kerberos authentication */#define NFSMNT_DUMBTIMR 0x00000800 /* Don't estimate rtt dynamically */#define NFSMNT_LEASETERM 0x00001000 /* set lease term (nqnfs) */#define NFSMNT_READAHEAD 0x00002000 /* set read ahead */#define NFSMNT_DEADTHRESH 0x00004000 /* set dead server retry thresh */#define NFSMNT_RESVPORT 0x00008000 /* Allocate a reserved port */#define NFSMNT_RDIRPLUS 0x00010000 /* Use Readdirplus for V3 */#define NFSMNT_READDIRSIZE 0x00020000 /* Set readdir size */#define NFSMNT_INTERNAL 0xfffc0000 /* Bits set internally */#define NFSMNT_HASWRITEVERF 0x00040000 /* Has write verifier for V3 */#define NFSMNT_GOTPATHCONF 0x00080000 /* Got the V3 pathconf info */#define NFSMNT_GOTFSINFO 0x00100000 /* Got the V3 fsinfo */#define NFSMNT_MNTD 0x00200000 /* Mnt server for mnt point */#define NFSMNT_DISMINPROG 0x00400000 /* Dismount in progress */#define NFSMNT_DISMNT 0x00800000 /* Dismounted */#define NFSMNT_SNDLOCK 0x01000000 /* Send socket lock */#define NFSMNT_WANTSND 0x02000000 /* Want above */#define NFSMNT_RCVLOCK 0x04000000 /* Rcv socket lock */#define NFSMNT_WANTRCV 0x08000000 /* Want above */#define NFSMNT_WAITAUTH 0x10000000 /* Wait for authentication */#define NFSMNT_HASAUTH 0x20000000 /* Has authenticator */#define NFSMNT_WANTAUTH 0x40000000 /* Wants an authenticator */#define NFSMNT_AUTHERR 0x80000000 /* Authentication error */#endif /* NFS */#ifdef KERNELextern int (*mountroot) __P((void *));extern struct vfsops *mountrootvfsops;/* * exported vnode operations */int dounmount __P((struct mount *, int, struct proc *));struct mount *getvfs __P((fsid_t *)); /* return vfs given fsid */void getnewfsid __P((struct mount *, int));int vflush __P((struct mount *, struct vnode *, int));int vfs_export /* process mount export info */ __P((struct mount *, struct netexport *, struct export_args *));struct netcred *vfs_export_lookup /* lookup host in fs export list */ __P((struct mount *, struct netexport *, struct mbuf *));int vfs_lock __P((struct mount *)); /* lock a vfs */int vfs_mountedon __P((struct vnode *)); /* is a vfs mounted on vp */int vfs_mountroot __P((void *)); /* XXX goes away? */void vfs_msync __P((struct mount *, int));void vfs_unlock __P((struct mount *)); /* unlock a vfs */void vfs_unmountall __P((void));int vfs_busy __P((struct mount *)); /* mark a vfs busy */void vfs_unbusy __P((struct mount *)); /* mark a vfs not busy */extern CIRCLEQ_HEAD(mntlist, mount) mountlist; /* mounted filesystem list */extern struct vfsops *vfssw[]; /* filesystem type table */#else /* KERNEL */#include <sys/cdefs.h>__BEGIN_DECLSint fstatfs __P((int, struct statfs *));int getfh __P((const char *, fhandle_t *));int getfsstat __P((struct statfs *, long, int));int getmntinfo __P((struct statfs **, int));int mount __P((int, const char *, int, void *));int statfs __P((const char *, struct statfs *));int unmount __P((const char *, int));/* C library stuff */struct vfsconf *getvfsbyname __P((const char *));struct vfsconf *getvfsbytype __P((int));struct vfsconf *getvfsent __P((void));void setvfsent __P((int));void endvfsent __P((void));int vfsisloadable __P((const char *));int vfsload __P((const char *));__END_DECLS#endif /* KERNEL */#endif /* !_SYS_MOUNT_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -