| Bob Copeland | 1b002d7 | 2008-07-25 19:45:15 -0700 | [diff] [blame] | 1 | #ifndef _OMFS_H | 
|  | 2 | #define _OMFS_H | 
|  | 3 |  | 
|  | 4 | #include <linux/module.h> | 
|  | 5 | #include <linux/fs.h> | 
|  | 6 |  | 
|  | 7 | #include "omfs_fs.h" | 
|  | 8 |  | 
|  | 9 | /* In-memory structures */ | 
|  | 10 | struct omfs_sb_info { | 
|  | 11 | u64 s_num_blocks; | 
|  | 12 | u64 s_bitmap_ino; | 
|  | 13 | u64 s_root_ino; | 
|  | 14 | u32 s_blocksize; | 
|  | 15 | u32 s_mirrors; | 
|  | 16 | u32 s_sys_blocksize; | 
|  | 17 | u32 s_clustersize; | 
|  | 18 | int s_block_shift; | 
|  | 19 | unsigned long **s_imap; | 
|  | 20 | int s_imap_size; | 
|  | 21 | struct mutex s_bitmap_lock; | 
|  | 22 | int s_uid; | 
|  | 23 | int s_gid; | 
|  | 24 | int s_dmask; | 
|  | 25 | int s_fmask; | 
|  | 26 | }; | 
|  | 27 |  | 
|  | 28 | /* convert a cluster number to a scaled block number */ | 
|  | 29 | static inline sector_t clus_to_blk(struct omfs_sb_info *sbi, sector_t block) | 
|  | 30 | { | 
|  | 31 | return block << sbi->s_block_shift; | 
|  | 32 | } | 
|  | 33 |  | 
|  | 34 | static inline struct omfs_sb_info *OMFS_SB(struct super_block *sb) | 
|  | 35 | { | 
|  | 36 | return sb->s_fs_info; | 
|  | 37 | } | 
|  | 38 |  | 
|  | 39 | /* bitmap.c */ | 
|  | 40 | extern unsigned long omfs_count_free(struct super_block *sb); | 
|  | 41 | extern int omfs_allocate_block(struct super_block *sb, u64 block); | 
|  | 42 | extern int omfs_allocate_range(struct super_block *sb, int min_request, | 
|  | 43 | int max_request, u64 *return_block, int *return_size); | 
|  | 44 | extern int omfs_clear_range(struct super_block *sb, u64 block, int count); | 
|  | 45 |  | 
|  | 46 | /* dir.c */ | 
| Alexey Dobriyan | 828c095 | 2009-10-01 15:43:56 -0700 | [diff] [blame] | 47 | extern const struct file_operations omfs_dir_operations; | 
| Alexey Dobriyan | 6e1d5dc | 2009-09-21 17:01:11 -0700 | [diff] [blame] | 48 | extern const struct inode_operations omfs_dir_inops; | 
| Bob Copeland | 1b002d7 | 2008-07-25 19:45:15 -0700 | [diff] [blame] | 49 | extern int omfs_make_empty(struct inode *inode, struct super_block *sb); | 
|  | 50 | extern int omfs_is_bad(struct omfs_sb_info *sbi, struct omfs_header *header, | 
|  | 51 | u64 fsblock); | 
|  | 52 |  | 
|  | 53 | /* file.c */ | 
| Alexey Dobriyan | 828c095 | 2009-10-01 15:43:56 -0700 | [diff] [blame] | 54 | extern const struct file_operations omfs_file_operations; | 
| Alexey Dobriyan | 6e1d5dc | 2009-09-21 17:01:11 -0700 | [diff] [blame] | 55 | extern const struct inode_operations omfs_file_inops; | 
| Alexey Dobriyan | 7f09410 | 2009-09-21 17:01:10 -0700 | [diff] [blame] | 56 | extern const struct address_space_operations omfs_aops; | 
| Bob Copeland | 1b002d7 | 2008-07-25 19:45:15 -0700 | [diff] [blame] | 57 | extern void omfs_make_empty_table(struct buffer_head *bh, int offset); | 
|  | 58 | extern int omfs_shrink_inode(struct inode *inode); | 
|  | 59 |  | 
|  | 60 | /* inode.c */ | 
| Bob Copeland | f068272 | 2008-09-06 17:51:53 -0400 | [diff] [blame] | 61 | extern struct buffer_head *omfs_bread(struct super_block *sb, sector_t block); | 
| Bob Copeland | 1b002d7 | 2008-07-25 19:45:15 -0700 | [diff] [blame] | 62 | extern struct inode *omfs_iget(struct super_block *sb, ino_t inode); | 
|  | 63 | extern struct inode *omfs_new_inode(struct inode *dir, int mode); | 
|  | 64 | extern int omfs_reserve_block(struct super_block *sb, sector_t block); | 
|  | 65 | extern int omfs_find_empty_block(struct super_block *sb, int mode, ino_t *ino); | 
|  | 66 | extern int omfs_sync_inode(struct inode *inode); | 
|  | 67 |  | 
|  | 68 | #endif |