Metropoli BBS
VIEWER: e2_proto.h MODE: TEXT (ASCII)
//
// $Header: D:/ext2-os2/include/linux/RCS/e2_proto.h,v 1.3 1995/08/16 17:40:02 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.



#ifndef __E2_PROTO_H
#define __E2_PROTO_H

//
// ext2/super.c
//
extern void ext2_panic (struct super_block * sb, const char *function,
			    const char *fmt, ...);

extern void ext2_error (struct super_block * sb, const char *function,
			    const char *fmt, ...);

extern void ext2_warning (struct super_block * sb, const char *function,
		   const char *fmt, ...);

void ext2_put_super (struct super_block * sb);

//
// ext2/inode.c
//
extern void ext2_discard_prealloc (struct inode * inode);
extern pbuffer_head ext2_getblk (struct inode * inode, blk_t block, blk_t create, int _FS_PTR err);
extern pbuffer_head ext2_bread (struct inode * inode, blk_t block, 
				 blk_t create, int *err);
extern void ext2_write_inode (struct inode * inode);
extern void ext2_read_inode(struct inode *inode);
int ext2_sync_inode (struct inode *inode);
void ext2_put_inode (struct inode * inode);

//
// ext2/bitmap.c
//
extern unsigned long ext2_count_free (pbuffer_head map, unsigned long numchars);

//
// ext2/balloc.c
//
extern void ext2_free_blocks (struct super_block * sb, unsigned long block,
		       unsigned long count);
extern blk_t ext2_new_block (struct super_block * sb, unsigned long goal,
		    PUINT32 prealloc_count,
		    PUINT32 prealloc_block);
pbuffer_head ext2_getblk (struct inode * inode, blk_t block,
				  blk_t create, int _FS_PTR err);
void ext2_check_blocks_bitmap (struct super_block * sb);

//
// ext2/dir.c
//
int ext2_check_dir_entry (char * function, struct inode * dir,
			  struct ext2_dir_entry * de, struct buffer_head * bh,
			  unsigned long offset);

//
// ext2/ialloc.c
//
extern struct inode * ext2_new_inode (const struct inode * dir, int mode);
extern void ext2_free_inode (struct inode * inode);
extern void ext2_check_inodes_bitmap (struct super_block * sb);

//
// ext2/namei.c
//
int ext2_mkdir (struct inode * dir, const char * name, int len, int mode);
int ext2_rmdir (struct inode * dir, const char * name, int len);
int ext2_create (struct inode * dir,const char * name, int len, int mode,
		 struct inode ** result);
int ext2_unlink (struct inode * dir, const char * name, int len);
int ext2_rename (struct inode * old_dir, const char * old_name, int old_len,
		 struct inode * new_dir, const char * new_name, int new_len);

//
// ext2/truncate.c
//
void ext2_truncate (struct inode * inode);

//
// ext2/file.c
//
// extern void ext2_release_file(struct inode * inode, struct file * filp);

#endif

[ RETURN TO DIRECTORY ]