]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - sys/gnu/fs/ext2fs/ext2_fs_sb.h
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / sys / gnu / fs / ext2fs / ext2_fs_sb.h
1 /*-
2  *  modified for EXT2FS support in Lites 1.1
3  *
4  *  Aug 1995, Godmar Back (gback@cs.utah.edu)
5  *  University of Utah, Department of Computer Science
6  *
7  * $FreeBSD$
8  */
9 /*-
10  *  linux/include/linux/ext2_fs_sb.h
11  *
12  * Copyright (C) 1992, 1993, 1994, 1995
13  * Remy Card (card@masi.ibp.fr)
14  * Laboratoire MASI - Institut Blaise Pascal
15  * Universite Pierre et Marie Curie (Paris VI)
16  *
17  *  from
18  *
19  *  linux/include/linux/minix_fs_sb.h
20  *
21  *  Copyright (C) 1991, 1992  Linus Torvalds
22  *
23  *      This program is free software; you can redistribute it and/or modify
24  *      it under the terms of the GNU General Public License as published by
25  *      the Free Software Foundation; either version 2 of the License.
26  *
27  *      This program is distributed in the hope that it will be useful,
28  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
29  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
30  *      GNU General Public License for more details.
31  *
32  *      You should have received a copy of the GNU General Public License
33  *      along with this program; if not, write to the Free Software
34  *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
35  *
36  */
37
38 #ifndef _LINUX_EXT2_FS_SB
39 #define _LINUX_EXT2_FS_SB
40
41 /*
42  * The following is not needed anymore since the descriptors buffer
43  * heads are now dynamically allocated
44  */
45 /* #define EXT2_MAX_GROUP_DESC  8 */
46
47 #define EXT2_MAX_GROUP_LOADED   8
48
49 #define buffer_head buf
50 #define MAXMNTLEN       512
51
52 /*
53  * second extended-fs super-block data in memory
54  */
55 struct ext2_sb_info {
56         unsigned long s_frag_size;      /* Size of a fragment in bytes */
57         unsigned long s_frags_per_block;/* Number of fragments per block */
58         unsigned long s_inodes_per_block;/* Number of inodes per block */
59         unsigned long s_frags_per_group;/* Number of fragments in a group */
60         unsigned long s_blocks_per_group;/* Number of blocks in a group */
61         unsigned long s_inodes_per_group;/* Number of inodes in a group */
62         unsigned long s_itb_per_group;  /* Number of inode table blocks per group */
63         unsigned long s_gdb_count;      /* Number of group descriptor blocks */
64         unsigned long s_desc_per_block; /* Number of group descriptors per block */
65         unsigned long s_groups_count;   /* Number of groups in the fs */
66         struct buffer_head * s_sbh;     /* Buffer containing the super block */
67         struct ext2_super_block * s_es; /* Pointer to the super block in the buffer */
68         struct buffer_head ** s_group_desc;
69         unsigned short s_loaded_inode_bitmaps;
70         unsigned short s_loaded_block_bitmaps;
71         unsigned long s_inode_bitmap_number[EXT2_MAX_GROUP_LOADED];
72         struct buffer_head * s_inode_bitmap[EXT2_MAX_GROUP_LOADED];
73         unsigned long s_block_bitmap_number[EXT2_MAX_GROUP_LOADED];
74         struct buffer_head * s_block_bitmap[EXT2_MAX_GROUP_LOADED];
75         unsigned long  s_mount_opt;
76 #ifdef notyet
77         uid_t s_resuid;
78         gid_t s_resgid;
79 #endif
80         unsigned short s_inode_size;
81         unsigned int s_first_ino;
82         unsigned short s_mount_state;
83         /* 
84            stuff that FFS keeps in its super block or that linux
85            has in its non-ext2 specific super block and which is
86            generally considered useful 
87         */
88         unsigned long s_blocksize;
89         unsigned long s_blocksize_bits;
90         unsigned int  s_bshift;                 /* = log2(s_blocksize) */
91         quad_t   s_qbmask;                      /* = s_blocksize - 1 */
92         unsigned int  s_fsbtodb;                /* shift to get disk block */
93         char    s_rd_only;                      /* read-only            */
94         char    s_dirt;                         /* fs modified flag */
95         char    s_wasvalid;                     /* valid at mount time */
96         off_t   fs_maxfilesize;
97         char    fs_fsmnt[MAXMNTLEN];            /* name mounted on */
98 };
99
100 #endif  /* _LINUX_EXT2_FS_SB */