Import 2.3.13
[davej-history.git] / include / linux / fat_cvf.h
blob6349e45cf9bcc16cd3394062cd53efe60f7e8875
1 #ifndef _FAT_CVF
2 #define _FAT_CVF
4 #define CVF_USE_READPAGE 0x0001
6 struct cvf_format
7 { int cvf_version;
8 char* cvf_version_text;
9 unsigned long flags;
10 int (*detect_cvf) (struct super_block*sb);
11 int (*mount_cvf) (struct super_block*sb,char*options);
12 int (*unmount_cvf) (struct super_block*sb);
13 struct buffer_head* (*cvf_bread) (struct super_block*sb,int block);
14 struct buffer_head* (*cvf_getblk) (struct super_block*sb,int block);
15 void (*cvf_brelse) (struct super_block *sb,struct buffer_head *bh);
16 void (*cvf_mark_buffer_dirty) (struct super_block *sb,
17 struct buffer_head *bh,
18 int dirty_val);
19 void (*cvf_set_uptodate) (struct super_block *sb,
20 struct buffer_head *bh,
21 int val);
22 int (*cvf_is_uptodate) (struct super_block *sb,struct buffer_head *bh);
23 void (*cvf_ll_rw_block) (struct super_block *sb,
24 int opr,
25 int nbreq,
26 struct buffer_head *bh[32]);
27 int (*fat_access) (struct super_block *sb,int nr,int new_value);
28 int (*cvf_statfs) (struct super_block *sb,struct statfs *buf, int bufsiz);
29 int (*cvf_bmap) (struct inode *inode,int block);
30 ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *);
31 ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, loff_t *);
32 int (*cvf_mmap) (struct file *, struct vm_area_struct *);
33 int (*cvf_readpage) (struct inode *, struct page *);
34 int (*cvf_writepage) (struct inode *, struct page *);
35 int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp,
36 unsigned int cmd, unsigned long arg);
37 void (*zero_out_cluster) (struct inode*, int clusternr);
40 int register_cvf_format(struct cvf_format*cvf_format);
41 int unregister_cvf_format(struct cvf_format*cvf_format);
42 void dec_cvf_format_use_count_by_version(int version);
43 int detect_cvf(struct super_block*sb,char*force);
45 extern struct cvf_format *cvf_formats[];
46 extern int cvf_format_use_count[];
48 #endif