1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Squashfs - a compressed read only filesystem for Linux
5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
6 * Phillip Lougher <phillip@squashfs.org.uk>
11 #define TRACE(s, args...) pr_debug("SQUASHFS: "s, ## args)
13 #define ERROR(s, args...) pr_err("SQUASHFS error: "s, ## args)
15 #define WARNING(s, args...) pr_warn("SQUASHFS: "s, ## args)
18 extern int squashfs_read_data(struct super_block
*, u64
, int, u64
*,
19 struct squashfs_page_actor
*);
22 extern struct squashfs_cache
*squashfs_cache_init(char *, int, int);
23 extern void squashfs_cache_delete(struct squashfs_cache
*);
24 extern struct squashfs_cache_entry
*squashfs_cache_get(struct super_block
*,
25 struct squashfs_cache
*, u64
, int);
26 extern void squashfs_cache_put(struct squashfs_cache_entry
*);
27 extern int squashfs_copy_data(void *, struct squashfs_cache_entry
*, int, int);
28 extern int squashfs_read_metadata(struct super_block
*, void *, u64
*,
30 extern struct squashfs_cache_entry
*squashfs_get_fragment(struct super_block
*,
32 extern struct squashfs_cache_entry
*squashfs_get_datablock(struct super_block
*,
34 extern void *squashfs_read_table(struct super_block
*, u64
, int);
37 extern const struct squashfs_decompressor
*squashfs_lookup_decompressor(int);
38 extern void *squashfs_decompressor_setup(struct super_block
*, unsigned short);
40 /* decompressor_xxx.c */
41 extern void *squashfs_decompressor_create(struct squashfs_sb_info
*, void *);
42 extern void squashfs_decompressor_destroy(struct squashfs_sb_info
*);
43 extern int squashfs_decompress(struct squashfs_sb_info
*, struct bio
*,
44 int, int, struct squashfs_page_actor
*);
45 extern int squashfs_max_decompressors(void);
48 extern __le64
*squashfs_read_inode_lookup_table(struct super_block
*, u64
, u64
,
52 extern int squashfs_frag_lookup(struct super_block
*, unsigned int, u64
*);
53 extern __le64
*squashfs_read_fragment_index_table(struct super_block
*,
54 u64
, u64
, unsigned int);
57 void squashfs_fill_page(struct page
*, struct squashfs_cache_entry
*, int, int);
58 void squashfs_copy_cache(struct page
*, struct squashfs_cache_entry
*, int,
62 extern int squashfs_readpage_block(struct page
*, u64
, int, int);
65 extern int squashfs_get_id(struct super_block
*, unsigned int, unsigned int *);
66 extern __le64
*squashfs_read_id_index_table(struct super_block
*, u64
, u64
,
70 extern struct inode
*squashfs_iget(struct super_block
*, long long,
72 extern int squashfs_read_inode(struct inode
*, long long);
75 extern ssize_t
squashfs_listxattr(struct dentry
*, char *, size_t);
78 * Inodes, files, decompressor and xattr operations
82 extern const struct file_operations squashfs_dir_ops
;
85 extern const struct export_operations squashfs_export_ops
;
88 extern const struct address_space_operations squashfs_aops
;
91 extern const struct inode_operations squashfs_inode_ops
;
94 extern const struct inode_operations squashfs_dir_inode_ops
;
97 extern const struct address_space_operations squashfs_symlink_aops
;
98 extern const struct inode_operations squashfs_symlink_inode_ops
;
101 extern const struct xattr_handler
*squashfs_xattr_handlers
[];