Annotation of sys/ufs/ufs/ufsmount.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: ufsmount.h,v 1.12 2006/10/29 00:53:37 thib Exp $ */
! 2: /* $NetBSD: ufsmount.h,v 1.4 1994/12/21 20:00:23 mycroft Exp $ */
! 3:
! 4: /*
! 5: * Copyright (c) 1982, 1986, 1989, 1993
! 6: * The Regents of the University of California. All rights reserved.
! 7: *
! 8: * Redistribution and use in source and binary forms, with or without
! 9: * modification, are permitted provided that the following conditions
! 10: * are met:
! 11: * 1. Redistributions of source code must retain the above copyright
! 12: * notice, this list of conditions and the following disclaimer.
! 13: * 2. Redistributions in binary form must reproduce the above copyright
! 14: * notice, this list of conditions and the following disclaimer in the
! 15: * documentation and/or other materials provided with the distribution.
! 16: * 3. Neither the name of the University nor the names of its contributors
! 17: * may be used to endorse or promote products derived from this software
! 18: * without specific prior written permission.
! 19: *
! 20: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
! 21: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 22: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! 23: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
! 24: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
! 25: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
! 26: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 27: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 28: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 29: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 30: * SUCH DAMAGE.
! 31: *
! 32: * @(#)ufsmount.h 8.4 (Berkeley) 10/27/94
! 33: */
! 34:
! 35: struct buf;
! 36: struct inode;
! 37: struct nameidata;
! 38: struct timeval;
! 39: struct ucred;
! 40: struct uio;
! 41: struct vnode;
! 42: struct netexport;
! 43:
! 44: /* This structure describes the UFS specific mount structure data. */
! 45: struct ufsmount {
! 46: struct mount *um_mountp; /* filesystem vfs structure */
! 47: dev_t um_dev; /* device mounted */
! 48: struct vnode *um_devvp; /* block device mounted vnode */
! 49: u_long um_fstype; /* type of file system */
! 50:
! 51: union { /* pointer to superblock */
! 52: struct fs *fs; /* FFS */
! 53: struct m_ext2fs *e2fs; /* EXT2FS */
! 54: } ufsmount_u;
! 55: #define um_fs ufsmount_u.fs
! 56: #define um_e2fs ufsmount_u.e2fs
! 57: #define um_e2fsb ufsmount_u.e2fs->s_es
! 58:
! 59: struct vnode *um_quotas[MAXQUOTAS]; /* pointer to quota files */
! 60: struct ucred *um_cred[MAXQUOTAS]; /* quota file access cred */
! 61: u_long um_nindir; /* indirect ptrs per block */
! 62: u_long um_bptrtodb; /* indir ptr to disk block */
! 63: u_long um_seqinc; /* inc between seq blocks */
! 64: time_t um_btime[MAXQUOTAS]; /* block quota time limit */
! 65: time_t um_itime[MAXQUOTAS]; /* inode quota time limit */
! 66: char um_qflags[MAXQUOTAS]; /* quota specific flags */
! 67: struct netexport um_export; /* export information */
! 68: u_int64_t um_savedmaxfilesize; /* XXX - limit maxfilesize */
! 69: };
! 70:
! 71: /*
! 72: * Filesystem types
! 73: */
! 74: #define UM_UFS1 1
! 75: #define UM_UFS2 2
! 76: #define UM_EXT2FS 3
! 77:
! 78: /*
! 79: * Flags describing the state of quotas.
! 80: */
! 81: #define QTF_OPENING 0x01 /* Q_QUOTAON in progress */
! 82: #define QTF_CLOSING 0x02 /* Q_QUOTAOFF in progress */
! 83:
! 84: /* Convert mount ptr to ufsmount ptr. */
! 85: #define VFSTOUFS(mp) ((struct ufsmount *)((mp)->mnt_data))
! 86:
! 87: /*
! 88: * Macros to access file system parameters in the ufsmount structure.
! 89: * Used by ufs_bmap.
! 90: */
! 91: #define MNINDIR(ump) ((ump)->um_nindir)
! 92: #define blkptrtodb(ump, b) ((b) << (ump)->um_bptrtodb)
! 93: #define is_sequential(ump, a, b) ((b) == (a) + ump->um_seqinc)
CVSweb