| 
									
										
										
										
											2008-07-25 19:45:15 -07:00
										 |  |  | #ifndef _OMFS_H
 | 
					
						
							|  |  |  | #define _OMFS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/module.h>
 | 
					
						
							|  |  |  | #include <linux/fs.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "omfs_fs.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* In-memory structures */ | 
					
						
							|  |  |  | struct omfs_sb_info { | 
					
						
							|  |  |  | 	u64 s_num_blocks; | 
					
						
							|  |  |  | 	u64 s_bitmap_ino; | 
					
						
							|  |  |  | 	u64 s_root_ino; | 
					
						
							|  |  |  | 	u32 s_blocksize; | 
					
						
							|  |  |  | 	u32 s_mirrors; | 
					
						
							|  |  |  | 	u32 s_sys_blocksize; | 
					
						
							|  |  |  | 	u32 s_clustersize; | 
					
						
							|  |  |  | 	int s_block_shift; | 
					
						
							|  |  |  | 	unsigned long **s_imap; | 
					
						
							|  |  |  | 	int s_imap_size; | 
					
						
							|  |  |  | 	struct mutex s_bitmap_lock; | 
					
						
							| 
									
										
										
										
											2012-02-07 16:29:49 -08:00
										 |  |  | 	kuid_t s_uid; | 
					
						
							|  |  |  | 	kgid_t s_gid; | 
					
						
							| 
									
										
										
										
											2008-07-25 19:45:15 -07:00
										 |  |  | 	int s_dmask; | 
					
						
							|  |  |  | 	int s_fmask; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* convert a cluster number to a scaled block number */ | 
					
						
							|  |  |  | static inline sector_t clus_to_blk(struct omfs_sb_info *sbi, sector_t block) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return block << sbi->s_block_shift; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline struct omfs_sb_info *OMFS_SB(struct super_block *sb) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return sb->s_fs_info; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* bitmap.c */ | 
					
						
							|  |  |  | extern unsigned long omfs_count_free(struct super_block *sb); | 
					
						
							|  |  |  | extern int omfs_allocate_block(struct super_block *sb, u64 block); | 
					
						
							|  |  |  | extern int omfs_allocate_range(struct super_block *sb, int min_request, | 
					
						
							|  |  |  | 			int max_request, u64 *return_block, int *return_size); | 
					
						
							|  |  |  | extern int omfs_clear_range(struct super_block *sb, u64 block, int count); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* dir.c */ | 
					
						
							| 
									
										
										
										
											2009-10-01 15:43:56 -07:00
										 |  |  | extern const struct file_operations omfs_dir_operations; | 
					
						
							| 
									
										
										
										
											2009-09-21 17:01:11 -07:00
										 |  |  | extern const struct inode_operations omfs_dir_inops; | 
					
						
							| 
									
										
										
										
											2008-07-25 19:45:15 -07:00
										 |  |  | extern int omfs_make_empty(struct inode *inode, struct super_block *sb); | 
					
						
							|  |  |  | extern int omfs_is_bad(struct omfs_sb_info *sbi, struct omfs_header *header, | 
					
						
							|  |  |  | 			u64 fsblock); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* file.c */ | 
					
						
							| 
									
										
										
										
											2009-10-01 15:43:56 -07:00
										 |  |  | extern const struct file_operations omfs_file_operations; | 
					
						
							| 
									
										
										
										
											2009-09-21 17:01:11 -07:00
										 |  |  | extern const struct inode_operations omfs_file_inops; | 
					
						
							| 
									
										
										
										
											2009-09-21 17:01:10 -07:00
										 |  |  | extern const struct address_space_operations omfs_aops; | 
					
						
							| 
									
										
										
										
											2008-07-25 19:45:15 -07:00
										 |  |  | extern void omfs_make_empty_table(struct buffer_head *bh, int offset); | 
					
						
							|  |  |  | extern int omfs_shrink_inode(struct inode *inode); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* inode.c */ | 
					
						
							| 
									
										
										
										
											2008-09-06 17:51:53 -04:00
										 |  |  | extern struct buffer_head *omfs_bread(struct super_block *sb, sector_t block); | 
					
						
							| 
									
										
										
										
											2008-07-25 19:45:15 -07:00
										 |  |  | extern struct inode *omfs_iget(struct super_block *sb, ino_t inode); | 
					
						
							| 
									
										
										
										
											2011-07-24 22:58:10 -04:00
										 |  |  | extern struct inode *omfs_new_inode(struct inode *dir, umode_t mode); | 
					
						
							| 
									
										
										
										
											2008-07-25 19:45:15 -07:00
										 |  |  | extern int omfs_reserve_block(struct super_block *sb, sector_t block); | 
					
						
							|  |  |  | extern int omfs_find_empty_block(struct super_block *sb, int mode, ino_t *ino); | 
					
						
							|  |  |  | extern int omfs_sync_inode(struct inode *inode); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |