xref: /aosp_15_r20/external/squashfs-tools/kernel-2.4/fs/squashfs/squashfs.h (revision 79398b2563bcbbbab54656397863972d8fa68df1)
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