Metropoli BBS
VIEWER: e2_fs_sb.h MODE: TEXT (ASCII)
//
// $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 */
[ RETURN TO DIRECTORY ]