Commit | Line | Data |
---|---|---|
68252eb5 | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
ffae2cd7 PL |
2 | /* |
3 | * Squashfs - a compressed read only filesystem for Linux | |
4 | * | |
5 | * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 | |
d7f2ff67 | 6 | * Phillip Lougher <phillip@squashfs.org.uk> |
ffae2cd7 | 7 | * |
ffae2cd7 PL |
8 | * squashfs.h |
9 | */ | |
10 | ||
11 | #define TRACE(s, args...) pr_debug("SQUASHFS: "s, ## args) | |
12 | ||
13 | #define ERROR(s, args...) pr_err("SQUASHFS error: "s, ## args) | |
14 | ||
22010836 | 15 | #define WARNING(s, args...) pr_warn("SQUASHFS: "s, ## args) |
ffae2cd7 | 16 | |
ffae2cd7 | 17 | /* block.c */ |
846b730e PL |
18 | extern int squashfs_read_data(struct super_block *, u64, int, u64 *, |
19 | struct squashfs_page_actor *); | |
ffae2cd7 PL |
20 | |
21 | /* cache.c */ | |
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 *, | |
29 | int *, int); | |
30 | extern struct squashfs_cache_entry *squashfs_get_fragment(struct super_block *, | |
31 | u64, int); | |
32 | extern struct squashfs_cache_entry *squashfs_get_datablock(struct super_block *, | |
33 | u64, int); | |
82de647e | 34 | extern void *squashfs_read_table(struct super_block *, u64, int); |
ffae2cd7 | 35 | |
4c0f0bb2 PL |
36 | /* decompressor.c */ |
37 | extern const struct squashfs_decompressor *squashfs_lookup_decompressor(int); | |
9508c6b9 PL |
38 | extern void *squashfs_decompressor_setup(struct super_block *, unsigned short); |
39 | ||
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 *); | |
846b730e PL |
43 | extern int squashfs_decompress(struct squashfs_sb_info *, struct buffer_head **, |
44 | int, int, int, struct squashfs_page_actor *); | |
9508c6b9 | 45 | extern int squashfs_max_decompressors(void); |
4c0f0bb2 | 46 | |
ffae2cd7 | 47 | /* export.c */ |
ac51a0a7 | 48 | extern __le64 *squashfs_read_inode_lookup_table(struct super_block *, u64, u64, |
ffae2cd7 PL |
49 | unsigned int); |
50 | ||
51 | /* fragment.c */ | |
52 | extern int squashfs_frag_lookup(struct super_block *, unsigned int, u64 *); | |
53 | extern __le64 *squashfs_read_fragment_index_table(struct super_block *, | |
1cac63cc | 54 | u64, u64, unsigned int); |
ffae2cd7 | 55 | |
5f55dbc0 | 56 | /* file.c */ |
cdbb65c4 | 57 | void squashfs_fill_page(struct page *, struct squashfs_cache_entry *, int, int); |
5f55dbc0 PL |
58 | void squashfs_copy_cache(struct page *, struct squashfs_cache_entry *, int, |
59 | int); | |
60 | ||
61 | /* file_xxx.c */ | |
a3f94cb9 | 62 | extern int squashfs_readpage_block(struct page *, u64, int, int); |
5f55dbc0 | 63 | |
ffae2cd7 PL |
64 | /* id.c */ |
65 | extern int squashfs_get_id(struct super_block *, unsigned int, unsigned int *); | |
37986f63 | 66 | extern __le64 *squashfs_read_id_index_table(struct super_block *, u64, u64, |
ffae2cd7 PL |
67 | unsigned short); |
68 | ||
69 | /* inode.c */ | |
70 | extern struct inode *squashfs_iget(struct super_block *, long long, | |
71 | unsigned int); | |
72 | extern int squashfs_read_inode(struct inode *, long long); | |
73 | ||
67f66cc6 PL |
74 | /* xattr.c */ |
75 | extern ssize_t squashfs_listxattr(struct dentry *, char *, size_t); | |
76 | ||
ffae2cd7 | 77 | /* |
67f66cc6 | 78 | * Inodes, files, decompressor and xattr operations |
ffae2cd7 PL |
79 | */ |
80 | ||
81 | /* dir.c */ | |
82 | extern const struct file_operations squashfs_dir_ops; | |
83 | ||
84 | /* export.c */ | |
85 | extern const struct export_operations squashfs_export_ops; | |
86 | ||
87 | /* file.c */ | |
88 | extern const struct address_space_operations squashfs_aops; | |
89 | ||
67f66cc6 PL |
90 | /* inode.c */ |
91 | extern const struct inode_operations squashfs_inode_ops; | |
92 | ||
ffae2cd7 PL |
93 | /* namei.c */ |
94 | extern const struct inode_operations squashfs_dir_inode_ops; | |
95 | ||
96 | /* symlink.c */ | |
97 | extern const struct address_space_operations squashfs_symlink_aops; | |
67f66cc6 PL |
98 | extern const struct inode_operations squashfs_symlink_inode_ops; |
99 | ||
100 | /* xattr.c */ | |
f6db25a8 | 101 | extern const struct xattr_handler *squashfs_xattr_handlers[]; |