//
// $Header: D:/ext2-os2/include/linux/RCS/e2_fs_sb.h,v 1.3 1995/08/08 21:17:16 Willm Exp Willm $
//
// Linux ext2 file system driver for OS/2 2.x and WARP - Allows OS/2 to
// access your Linux ext2fs partitions as normal drive letters.
// OS/2 implementation : Copyright (C) 1995 Matthieu WILLM
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// This file is a OS/2 "port" of /usr/src/linux-1.2.1/include/linux/ext2_fs_sb.h
// It contains the ext2 specific superblock structure definition
//
#ifndef __EXT2_FS_SB_H
#define __EXT2_FS_SB_H
#include <linux/e2_fs.h>
/*
* The following is not needed anymore since the descriptors buffer
* heads are now dynamically allocated
*/
// Not yet for OS/2 ......
#define EXT2_MAX_GROUP_DESC 8
#define EXT2_MAX_GROUP_LOADED 8
/*
* second extended-fs super-block data in memory
*/
struct ext2_sb_info {
unsigned long s_frag_size; /* Size of a fragment in bytes */
unsigned long s_frags_per_block;/* Number of fragments per block */
unsigned long s_inodes_per_block;/* Number of inodes per block */
unsigned long s_frags_per_group;/* Number of fragments in a group */
unsigned long s_blocks_per_group;/* Number of blocks in a group */
unsigned long s_inodes_per_group;/* Number of inodes in a group */
unsigned long s_itb_per_group; /* Number of inode table blocks per group */
unsigned long s_db_per_group; /* Number of descriptor blocks per group */
unsigned long s_desc_per_block; /* Number of group descriptors per block */
unsigned long s_groups_count; /* Number of groups in the fs */
pbuffer_head s_sbh; /* Buffer containing the super block */
pext2_super_block s_es; /* Pointer to the super block in the buffer */
#if 0
ppbuffer_head s_group_desc;
#else
pbuffer_head s_group_desc[EXT2_MAX_GROUP_DESC];
#endif
unsigned short s_loaded_inode_bitmaps;
unsigned short s_loaded_block_bitmaps;
unsigned long s_inode_bitmap_number[EXT2_MAX_GROUP_LOADED];
pbuffer_head s_inode_bitmap[EXT2_MAX_GROUP_LOADED];
unsigned long s_block_bitmap_number[EXT2_MAX_GROUP_LOADED];
pbuffer_head s_block_bitmap[EXT2_MAX_GROUP_LOADED];
#ifndef OS2
int s_rename_lock;
struct wait_queue * s_rename_wait;
#else
int s_rename_lock;
unsigned long s_rename_wait;
#endif
unsigned long s_mount_opt;
unsigned short s_resuid;
unsigned short s_resgid;
unsigned short s_mount_state;
};
#endif /* __EXT2_FS_SB_H */