94 lines
2.6 KiB
C
94 lines
2.6 KiB
C
/* @(#)rfs_mnt.h 1.1 94/10/31 SMI */
|
|
|
|
#ifndef _rfs_rfs_mnt_h
|
|
#define _rfs_rfs_mnt_h
|
|
|
|
/*
|
|
* RFS client-side mount structure.
|
|
* One allocated on every mount.
|
|
* Private part of vfs structure.
|
|
*/
|
|
struct rfsmnt
|
|
{
|
|
struct vfs *rm_vfsp; /* vfs structure for this filesystem */
|
|
struct vnode *rm_rootvp; /* root vnode for this filesystem */
|
|
int rm_refcnt; /* Number of references to mount */
|
|
char rm_name[MAXDNAME]; /* name of remote resource */
|
|
u_short rm_flags; /* flags */
|
|
short rm_fstyp; /* File system type */
|
|
int rm_mntno; /* Major device # of this mount */
|
|
long rm_bsize; /* Block size */
|
|
long rm_frsize; /* Fragment size (if supported) */
|
|
long rm_blocks; /* Total # blocks on file system */
|
|
long rm_files; /* Total # of file nodes (inodes) */
|
|
int rm_bcount; /* Number of references to mount */
|
|
char rm_fname[6]; /* Volume name */
|
|
char rm_fpack[6]; /* Pack name */
|
|
};
|
|
|
|
#ifdef KERNEL
|
|
extern struct rfsmnt *rfsmount;
|
|
extern int nrfsmount;
|
|
#endif
|
|
|
|
#define MFREE 0x0 /* Unused - free */
|
|
#define MINUSE 0x1 /* In use - fs mounted on this entry */
|
|
#define RINUSE MINUSE
|
|
#define MINTER 0x2 /* Mount system call is using this entry */
|
|
#define MRDONLY 0x4 /* File system is mounted read only */
|
|
|
|
|
|
/* remoteness flags (rm_flags) */
|
|
/* (or'ed with m_flags in srmount, so must use different bits) */
|
|
|
|
#define MLBIN 0x10
|
|
#define MDOTDOT 0x20
|
|
#define MFUMOUNT 0x40
|
|
#define MLINKDOWN 0x80
|
|
#define MCACHE 0x100 /* mount files are cacheable */
|
|
|
|
/*
|
|
* Convert vfs ptr to private mount data ptr.
|
|
*/
|
|
#define VFSTORFSM(VFSP) ((struct rfsmnt *)(VFSP->vfs_data))
|
|
|
|
|
|
/* Flag bits passed to the mount system call--values are part of RFS protocol
|
|
and thus cannot be changed */
|
|
#define MS_RDONLY 0x1 /* read only bit */
|
|
#define MS_FSS 0x2 /* FSS (4-argument) mount */
|
|
#define MS_CACHE 0x8 /* RFS client caching */
|
|
|
|
|
|
/* Server mount table stuff */
|
|
/* #ident "@(#)kern-port:sys/mount.h 10.10" */
|
|
|
|
|
|
/*
|
|
* Server mount structure.
|
|
* Search the table looking for (sysid, rootvnode) pair.
|
|
*/
|
|
|
|
struct srmnt {
|
|
sysid_t sr_sysid;
|
|
char sr_flags;
|
|
struct vnode *sr_rootvnode; /* vnode on server's machine */
|
|
int sr_mntindx; /* mount index of requestor */
|
|
int sr_refcnt; /* number of open files */
|
|
int sr_dotdot; /* for lbin mount, so .. works */
|
|
long sr_bcount; /* Server i/o count */
|
|
int sr_slpcnt;
|
|
} ;
|
|
|
|
/* sr_bcount unit size */
|
|
#define RFS_BKSIZE 1024
|
|
#ifdef KERNEL
|
|
extern struct srmnt *srmount;
|
|
extern int nsrmount;
|
|
#endif
|
|
|
|
/* Return values if crossing mount point */
|
|
#define DOT_DOT 0x1
|
|
|
|
#endif /*!_rfs_rfs_mnt_h*/
|