1*79398b25SAndroid Build Coastguard Worker /*
2*79398b25SAndroid Build Coastguard Worker * Squashfs - a compressed read only filesystem for Linux
3*79398b25SAndroid Build Coastguard Worker *
4*79398b25SAndroid Build Coastguard Worker * Copyright (c) 2002, 2003, 2004, 2005, 2006
5*79398b25SAndroid Build Coastguard Worker * Phillip Lougher <[email protected]>
6*79398b25SAndroid Build Coastguard Worker *
7*79398b25SAndroid Build Coastguard Worker * This program is free software; you can redistribute it and/or
8*79398b25SAndroid Build Coastguard Worker * modify it under the terms of the GNU General Public License
9*79398b25SAndroid Build Coastguard Worker * as published by the Free Software Foundation; either version 2,
10*79398b25SAndroid Build Coastguard Worker * or (at your option) any later version.
11*79398b25SAndroid Build Coastguard Worker *
12*79398b25SAndroid Build Coastguard Worker * This program is distributed in the hope that it will be useful,
13*79398b25SAndroid Build Coastguard Worker * but WITHOUT ANY WARRANTY; without even the implied warranty of
14*79398b25SAndroid Build Coastguard Worker * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15*79398b25SAndroid Build Coastguard Worker * GNU General Public License for more details.
16*79398b25SAndroid Build Coastguard Worker *
17*79398b25SAndroid Build Coastguard Worker * You should have received a copy of the GNU General Public License
18*79398b25SAndroid Build Coastguard Worker * along with this program; if not, write to the Free Software
19*79398b25SAndroid Build Coastguard Worker * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20*79398b25SAndroid Build Coastguard Worker *
21*79398b25SAndroid Build Coastguard Worker * squashfs.h
22*79398b25SAndroid Build Coastguard Worker */
23*79398b25SAndroid Build Coastguard Worker
24*79398b25SAndroid Build Coastguard Worker #ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
25*79398b25SAndroid Build Coastguard Worker #undef CONFIG_SQUASHFS_1_0_COMPATIBILITY
26*79398b25SAndroid Build Coastguard Worker #endif
27*79398b25SAndroid Build Coastguard Worker #ifdef SQUASHFS_TRACE
28*79398b25SAndroid Build Coastguard Worker #define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args)
29*79398b25SAndroid Build Coastguard Worker #else
30*79398b25SAndroid Build Coastguard Worker #define TRACE(s, args...) {}
31*79398b25SAndroid Build Coastguard Worker #endif
32*79398b25SAndroid Build Coastguard Worker
33*79398b25SAndroid Build Coastguard Worker #define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args)
34*79398b25SAndroid Build Coastguard Worker
35*79398b25SAndroid Build Coastguard Worker #define SERROR(s, args...) do { \
36*79398b25SAndroid Build Coastguard Worker if (!silent) \
37*79398b25SAndroid Build Coastguard Worker printk(KERN_ERR "SQUASHFS error: "s, ## args);\
38*79398b25SAndroid Build Coastguard Worker } while(0)
39*79398b25SAndroid Build Coastguard Worker
40*79398b25SAndroid Build Coastguard Worker #define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args)
41*79398b25SAndroid Build Coastguard Worker
42*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_I(INO) (&INO->u.squashfs_i)
43*79398b25SAndroid Build Coastguard Worker
44*79398b25SAndroid Build Coastguard Worker #define i_size_read(INO) (INO->i_size)
45*79398b25SAndroid Build Coastguard Worker
46*79398b25SAndroid Build Coastguard Worker #if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY)
47*79398b25SAndroid Build Coastguard Worker #define SQSH_EXTERN
48*79398b25SAndroid Build Coastguard Worker extern unsigned int squashfs_read_data(struct super_block *s, char *buffer,
49*79398b25SAndroid Build Coastguard Worker long long index, unsigned int length,
50*79398b25SAndroid Build Coastguard Worker long long *next_index);
51*79398b25SAndroid Build Coastguard Worker extern int squashfs_get_cached_block(struct super_block *s, char *buffer,
52*79398b25SAndroid Build Coastguard Worker long long block, unsigned int offset,
53*79398b25SAndroid Build Coastguard Worker int length, long long *next_block,
54*79398b25SAndroid Build Coastguard Worker unsigned int *next_offset);
55*79398b25SAndroid Build Coastguard Worker extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct
56*79398b25SAndroid Build Coastguard Worker squashfs_fragment_cache *fragment);
57*79398b25SAndroid Build Coastguard Worker extern struct squashfs_fragment_cache *get_cached_fragment(struct super_block
58*79398b25SAndroid Build Coastguard Worker *s, long long start_block,
59*79398b25SAndroid Build Coastguard Worker int length);
60*79398b25SAndroid Build Coastguard Worker extern struct address_space_operations squashfs_symlink_aops;
61*79398b25SAndroid Build Coastguard Worker extern struct address_space_operations squashfs_aops;
62*79398b25SAndroid Build Coastguard Worker extern struct address_space_operations squashfs_aops_4K;
63*79398b25SAndroid Build Coastguard Worker extern struct file_operations squashfs_dir_ops;
64*79398b25SAndroid Build Coastguard Worker extern struct inode_operations squashfs_dir_inode_ops;
65*79398b25SAndroid Build Coastguard Worker #else
66*79398b25SAndroid Build Coastguard Worker #define SQSH_EXTERN static
67*79398b25SAndroid Build Coastguard Worker #endif
68*79398b25SAndroid Build Coastguard Worker
69*79398b25SAndroid Build Coastguard Worker #ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
70*79398b25SAndroid Build Coastguard Worker extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk);
71*79398b25SAndroid Build Coastguard Worker #else
squashfs_1_0_supported(struct squashfs_sb_info * msblk)72*79398b25SAndroid Build Coastguard Worker static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk)
73*79398b25SAndroid Build Coastguard Worker {
74*79398b25SAndroid Build Coastguard Worker return 0;
75*79398b25SAndroid Build Coastguard Worker }
76*79398b25SAndroid Build Coastguard Worker #endif
77*79398b25SAndroid Build Coastguard Worker
78*79398b25SAndroid Build Coastguard Worker #ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY
79*79398b25SAndroid Build Coastguard Worker extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk);
80*79398b25SAndroid Build Coastguard Worker #else
squashfs_2_0_supported(struct squashfs_sb_info * msblk)81*79398b25SAndroid Build Coastguard Worker static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk)
82*79398b25SAndroid Build Coastguard Worker {
83*79398b25SAndroid Build Coastguard Worker return 0;
84*79398b25SAndroid Build Coastguard Worker }
85*79398b25SAndroid Build Coastguard Worker #endif
86