2009-01-05 11:46:27 +03:00
/*
* Squashfs - a compressed read only filesystem for Linux
*
* Copyright ( c ) 2002 , 2003 , 2004 , 2005 , 2006 , 2007 , 2008
2011-05-26 13:39:56 +04:00
* Phillip Lougher < phillip @ squashfs . org . uk >
2009-01-05 11:46:27 +03:00
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version 2 ,
* or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 , USA .
*
* squashfs . h
*/
# define TRACE(s, args...) pr_debug("SQUASHFS: "s, ## args)
# define ERROR(s, args...) pr_err("SQUASHFS error: "s, ## args)
# define WARNING(s, args...) pr_warning("SQUASHFS: "s, ## args)
/* block.c */
2013-11-18 06:59:12 +04:00
extern int squashfs_read_data ( struct super_block * , u64 , int , u64 * ,
struct squashfs_page_actor * ) ;
2009-01-05 11:46:27 +03:00
/* cache.c */
extern struct squashfs_cache * squashfs_cache_init ( char * , int , int ) ;
extern void squashfs_cache_delete ( struct squashfs_cache * ) ;
extern struct squashfs_cache_entry * squashfs_cache_get ( struct super_block * ,
struct squashfs_cache * , u64 , int ) ;
extern void squashfs_cache_put ( struct squashfs_cache_entry * ) ;
extern int squashfs_copy_data ( void * , struct squashfs_cache_entry * , int , int ) ;
extern int squashfs_read_metadata ( struct super_block * , void * , u64 * ,
int * , int ) ;
extern struct squashfs_cache_entry * squashfs_get_fragment ( struct super_block * ,
u64 , int ) ;
extern struct squashfs_cache_entry * squashfs_get_datablock ( struct super_block * ,
u64 , int ) ;
2011-05-20 05:26:43 +04:00
extern void * squashfs_read_table ( struct super_block * , u64 , int ) ;
2009-01-05 11:46:27 +03:00
2009-10-06 07:04:15 +04:00
/* decompressor.c */
extern const struct squashfs_decompressor * squashfs_lookup_decompressor ( int ) ;
2013-11-13 06:56:26 +04:00
extern void * squashfs_decompressor_setup ( struct super_block * , unsigned short ) ;
/* decompressor_xxx.c */
extern void * squashfs_decompressor_create ( struct squashfs_sb_info * , void * ) ;
extern void squashfs_decompressor_destroy ( struct squashfs_sb_info * ) ;
2013-11-18 06:59:12 +04:00
extern int squashfs_decompress ( struct squashfs_sb_info * , struct buffer_head * * ,
int , int , int , struct squashfs_page_actor * ) ;
2013-11-13 06:56:26 +04:00
extern int squashfs_max_decompressors ( void ) ;
2009-10-06 07:04:15 +04:00
2009-01-05 11:46:27 +03:00
/* export.c */
2011-05-24 07:15:21 +04:00
extern __le64 * squashfs_read_inode_lookup_table ( struct super_block * , u64 , u64 ,
2009-01-05 11:46:27 +03:00
unsigned int ) ;
/* fragment.c */
extern int squashfs_frag_lookup ( struct super_block * , unsigned int , u64 * ) ;
extern __le64 * squashfs_read_fragment_index_table ( struct super_block * ,
2011-05-24 07:33:34 +04:00
u64 , u64 , unsigned int ) ;
2009-01-05 11:46:27 +03:00
2013-10-31 23:24:27 +04:00
/* file.c */
void squashfs_copy_cache ( struct page * , struct squashfs_cache_entry * , int ,
int ) ;
/* file_xxx.c */
extern int squashfs_readpage_block ( struct page * , u64 , int ) ;
2009-01-05 11:46:27 +03:00
/* id.c */
extern int squashfs_get_id ( struct super_block * , unsigned int , unsigned int * ) ;
2011-05-24 07:05:22 +04:00
extern __le64 * squashfs_read_id_index_table ( struct super_block * , u64 , u64 ,
2009-01-05 11:46:27 +03:00
unsigned short ) ;
/* inode.c */
extern struct inode * squashfs_iget ( struct super_block * , long long ,
unsigned int ) ;
extern int squashfs_read_inode ( struct inode * , long long ) ;
2010-05-17 07:06:56 +04:00
/* xattr.c */
extern ssize_t squashfs_listxattr ( struct dentry * , char * , size_t ) ;
2009-01-05 11:46:27 +03:00
/*
2010-05-17 07:06:56 +04:00
* Inodes , files , decompressor and xattr operations
2009-01-05 11:46:27 +03:00
*/
/* dir.c */
extern const struct file_operations squashfs_dir_ops ;
/* export.c */
extern const struct export_operations squashfs_export_ops ;
/* file.c */
extern const struct address_space_operations squashfs_aops ;
2010-05-17 07:06:56 +04:00
/* inode.c */
extern const struct inode_operations squashfs_inode_ops ;
2009-01-05 11:46:27 +03:00
/* namei.c */
extern const struct inode_operations squashfs_dir_inode_ops ;
/* symlink.c */
extern const struct address_space_operations squashfs_symlink_aops ;
2010-05-17 07:06:56 +04:00
extern const struct inode_operations squashfs_symlink_inode_ops ;
/* xattr.c */
2010-05-23 06:29:26 +04:00
extern const struct xattr_handler * squashfs_xattr_handlers [ ] ;