ext_fs.h

Go to the documentation of this file.
00001 #ifndef _LINUX_EXT_FS_H
00002 #define _LINUX_EXT_FS_H
00003 
00004 /**
00005 *
00006 
00007  * The ext filesystem constants/structures
00008 
00009 
00010 */
00011 
00012 #define EXT_NAME_LEN 255
00013 #define EXT_ROOT_INO 1
00014 
00015 #define EXT_SUPER_MAGIC 0x137D
00016 
00017 #define EXT_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct ext_inode)))
00018 
00019 struct ext_inode {
00020         unsigned short i_mode;
00021         unsigned short i_uid;
00022         unsigned long i_size;
00023         unsigned long i_time;
00024         unsigned short i_gid;
00025         unsigned short i_nlinks;
00026         unsigned long i_zone[12];
00027 };
00028 
00029 struct ext_free_inode {
00030         unsigned long count;
00031         unsigned long free[14];
00032         unsigned long next;
00033 };
00034 
00035 struct ext_free_block {
00036         unsigned long count;
00037         unsigned long free[254];
00038         unsigned long next;
00039 };
00040 
00041 struct ext_super_block {
00042         unsigned long s_ninodes;
00043         unsigned long s_nzones;
00044         unsigned long s_firstfreeblock;
00045         unsigned long s_freeblockscount;
00046         unsigned long s_firstfreeinode;
00047         unsigned long s_freeinodescount;
00048         unsigned long s_firstdatazone;
00049         unsigned long s_log_zone_size;
00050         unsigned long s_max_size;
00051         unsigned long s_reserved1;
00052         unsigned long s_reserved2;
00053         unsigned long s_reserved3;
00054         unsigned long s_reserved4;
00055         unsigned long s_reserved5;
00056         unsigned short s_magic;
00057 };
00058 
00059 struct ext_dir_entry {
00060         unsigned long inode;
00061         unsigned short rec_len;
00062         unsigned short name_len;
00063         char name[EXT_NAME_LEN];
00064 };
00065 
00066 extern int ext_open(struct inode * inode, struct file * filp);
00067 extern void ext_release(struct inode * inode, struct file * filp);
00068 extern int ext_lookup(struct inode * dir,const char * name, int len,
00069         struct inode ** result);
00070 extern int ext_create(struct inode * dir,const char * name, int len, int mode,
00071         struct inode ** result);
00072 extern int ext_mkdir(struct inode * dir, const char * name, int len, int mode);
00073 extern int ext_rmdir(struct inode * dir, const char * name, int len);
00074 extern int ext_unlink(struct inode * dir, const char * name, int len);
00075 extern int ext_symlink(struct inode * inode, const char * name, int len,
00076         const char * symname);
00077 extern int ext_link(struct inode * oldinode, struct inode * dir, const char * name, int len);
00078 extern int ext_mknod(struct inode * dir, const char * name, int len, int mode, int rdev);
00079 extern int ext_rename(struct inode * old_dir, const char * old_name, int old_len,
00080         struct inode * new_dir, const char * new_name, int new_len);
00081 extern struct inode * ext_new_inode(const struct inode * dir);
00082 extern void ext_free_inode(struct inode * inode);
00083 extern unsigned long ext_count_free_inodes(struct super_block *sb);
00084 extern int ext_new_block(struct super_block * sb);
00085 extern void ext_free_block(struct super_block * sb, int block);
00086 extern unsigned long ext_count_free_blocks(struct super_block *sb);
00087 
00088 extern int ext_bmap(struct inode *,int);
00089 
00090 extern struct buffer_head * ext_getblk(struct inode *, int, int);
00091 extern struct buffer_head * ext_bread(struct inode *, int, int);
00092 
00093 extern void ext_truncate(struct inode *);
00094 extern void ext_put_super(struct super_block *);
00095 extern void ext_write_super(struct super_block *);
00096 extern struct super_block *ext_read_super(struct super_block *,void *,int);
00097 extern void ext_read_inode(struct inode *);
00098 extern void ext_write_inode(struct inode *);
00099 extern void ext_put_inode(struct inode *);
00100 extern void ext_statfs(struct super_block *, struct statfs *);
00101 extern int ext_sync_inode(struct inode *);
00102 extern int ext_sync_file(struct inode *, struct file *);
00103 
00104 extern int ext_lseek(struct inode *, struct file *, off_t, int);
00105 extern int ext_read(struct inode *, struct file *, char *, int);
00106 extern int ext_write(struct inode *, struct file *, char *, int);
00107 
00108 extern struct inode_operations ext_file_inode_operations;
00109 extern struct inode_operations ext_dir_inode_operations;
00110 extern struct inode_operations ext_symlink_inode_operations;
00111 
00112 #endif

Generated on Mon May 1 21:47:00 2006 for KernelAPI by  doxygen 1.4.6-5