]>
Commit | Line | Data |
---|---|---|
1b002d7b BC |
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 */ | |
47 | extern struct file_operations omfs_dir_operations; | |
6e1d5dcc | 48 | extern const struct inode_operations omfs_dir_inops; |
1b002d7b BC |
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 */ | |
54 | extern struct file_operations omfs_file_operations; | |
6e1d5dcc | 55 | extern const struct inode_operations omfs_file_inops; |
7f09410b | 56 | extern const struct address_space_operations omfs_aops; |
1b002d7b BC |
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 */ | |
61 | extern struct inode *omfs_iget(struct super_block *sb, ino_t inode); | |
62 | extern struct inode *omfs_new_inode(struct inode *dir, int mode); | |
63 | extern int omfs_reserve_block(struct super_block *sb, sector_t block); | |
64 | extern int omfs_find_empty_block(struct super_block *sb, int mode, ino_t *ino); | |
65 | extern int omfs_sync_inode(struct inode *inode); | |
66 | ||
67 | #endif |