diff options
Diffstat (limited to 'include/linux/fat_cvf.h')
-rw-r--r-- | include/linux/fat_cvf.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/include/linux/fat_cvf.h b/include/linux/fat_cvf.h new file mode 100644 index 000000000..1c4df58f6 --- /dev/null +++ b/include/linux/fat_cvf.h @@ -0,0 +1,49 @@ +#ifndef _FAT_CVF +#define _FAT_CVF + +#define CVF_USE_READPAGE 0x0001 + +struct cvf_format +{ int cvf_version; + char* cvf_version_text; + unsigned long flags; + int (*detect_cvf) (struct super_block*sb); + int (*mount_cvf) (struct super_block*sb,char*options); + int (*unmount_cvf) (struct super_block*sb); + struct buffer_head* (*cvf_bread) (struct super_block*sb,int block); + struct buffer_head* (*cvf_getblk) (struct super_block*sb,int block); + void (*cvf_brelse) (struct super_block *sb,struct buffer_head *bh); + void (*cvf_mark_buffer_dirty) (struct super_block *sb, + struct buffer_head *bh, + int dirty_val); + void (*cvf_set_uptodate) (struct super_block *sb, + struct buffer_head *bh, + int val); + int (*cvf_is_uptodate) (struct super_block *sb,struct buffer_head *bh); + void (*cvf_ll_rw_block) (struct super_block *sb, + int opr, + int nbreq, + struct buffer_head *bh[32]); + int (*fat_access) (struct super_block *sb,int nr,int new_value); + int (*cvf_statfs) (struct super_block *sb,struct statfs *buf, int bufsiz); + int (*cvf_bmap) (struct inode *inode,int block); + int (*cvf_smap) (struct inode *inode,int sector); + ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *); + ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, loff_t *); + int (*cvf_mmap) (struct file *, struct vm_area_struct *); + int (*cvf_readpage) (struct inode *, struct page *); + int (*cvf_writepage) (struct inode *, struct page *); + int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp, + unsigned int cmd, unsigned long arg); + void (*zero_out_cluster) (struct inode*, int clusternr); +}; + +int register_cvf_format(struct cvf_format*cvf_format); +int unregister_cvf_format(struct cvf_format*cvf_format); +void dec_cvf_format_use_count_by_version(int version); +int detect_cvf(struct super_block*sb,char*force); + +extern struct cvf_format *cvf_formats[]; +extern int cvf_format_use_count[]; + +#endif |