linux/fs/omfs/omfs.h
<<
>>
Prefs
   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 */
  10struct 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        kuid_t s_uid;
  23        kgid_t s_gid;
  24        int s_dmask;
  25        int s_fmask;
  26};
  27
  28/* convert a cluster number to a scaled block number */
  29static inline sector_t clus_to_blk(struct omfs_sb_info *sbi, sector_t block)
  30{
  31        return block << sbi->s_block_shift;
  32}
  33
  34static inline struct omfs_sb_info *OMFS_SB(struct super_block *sb)
  35{
  36        return sb->s_fs_info;
  37}
  38
  39/* bitmap.c */
  40extern unsigned long omfs_count_free(struct super_block *sb);
  41extern int omfs_allocate_block(struct super_block *sb, u64 block);
  42extern int omfs_allocate_range(struct super_block *sb, int min_request,
  43                        int max_request, u64 *return_block, int *return_size);
  44extern int omfs_clear_range(struct super_block *sb, u64 block, int count);
  45
  46/* dir.c */
  47extern const struct file_operations omfs_dir_operations;
  48extern const struct inode_operations omfs_dir_inops;
  49extern int omfs_make_empty(struct inode *inode, struct super_block *sb);
  50extern int omfs_is_bad(struct omfs_sb_info *sbi, struct omfs_header *header,
  51                        u64 fsblock);
  52
  53/* file.c */
  54extern const struct file_operations omfs_file_operations;
  55extern const struct inode_operations omfs_file_inops;
  56extern const struct address_space_operations omfs_aops;
  57extern void omfs_make_empty_table(struct buffer_head *bh, int offset);
  58extern int omfs_shrink_inode(struct inode *inode);
  59
  60/* inode.c */
  61extern struct buffer_head *omfs_bread(struct super_block *sb, sector_t block);
  62extern struct inode *omfs_iget(struct super_block *sb, ino_t inode);
  63extern struct inode *omfs_new_inode(struct inode *dir, umode_t mode);
  64extern int omfs_reserve_block(struct super_block *sb, sector_t block);
  65extern int omfs_find_empty_block(struct super_block *sb, int mode, ino_t *ino);
  66extern int omfs_sync_inode(struct inode *inode);
  67
  68#endif
  69