File Index
Files and directories
Sign in
FILE

squashfs.h

File preview with syntax highlighting.

linux-6.19.14/fs/squashfs/squashfs.h C
  1/* SPDX-License-Identifier: GPL-2.0-or-later */
  2/*
  3 * Squashfs - a compressed read only filesystem for Linux
  4 *
  5 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
  6 * Phillip Lougher <phillip@squashfs.org.uk>
  7 *
  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
 15#define WARNING(s, args...)	pr_warn("SQUASHFS: "s, ## args)
 16
 17#ifdef CONFIG_SQUASHFS_FILE_CACHE
 18#define SQUASHFS_READ_PAGES msblk->max_thread_num
 19#else
 20#define SQUASHFS_READ_PAGES 0
 21#endif
 22
 23/* block.c */
 24extern int squashfs_read_data(struct super_block *, u64, int, u64 *,
 25				struct squashfs_page_actor *);
 26
 27/* cache.c */
 28extern struct squashfs_cache *squashfs_cache_init(char *, int, int);
 29extern void squashfs_cache_delete(struct squashfs_cache *);
 30extern struct squashfs_cache_entry *squashfs_cache_get(struct super_block *,
 31				struct squashfs_cache *, u64, int);
 32extern void squashfs_cache_put(struct squashfs_cache_entry *);
 33extern int squashfs_copy_data(void *, struct squashfs_cache_entry *, int, int);
 34extern int squashfs_read_metadata(struct super_block *, void *, u64 *,
 35				int *, int);
 36extern struct squashfs_cache_entry *squashfs_get_fragment(struct super_block *,
 37				u64, int);
 38extern struct squashfs_cache_entry *squashfs_get_datablock(struct super_block *,
 39				u64, int);
 40extern void *squashfs_read_table(struct super_block *, u64, int);
 41
 42/* decompressor.c */
 43extern const struct squashfs_decompressor *squashfs_lookup_decompressor(int);
 44extern void *squashfs_decompressor_setup(struct super_block *, unsigned short);
 45
 46/* decompressor_xxx.c */
 47
 48struct squashfs_decompressor_thread_ops {
 49	void * (*create)(struct squashfs_sb_info *msblk, void *comp_opts);
 50	void (*destroy)(struct squashfs_sb_info *msblk);
 51	int (*decompress)(struct squashfs_sb_info *msblk, struct bio *bio,
 52			  int offset, int length, struct squashfs_page_actor *output);
 53	int (*max_decompressors)(void);
 54};
 55
 56#ifdef CONFIG_SQUASHFS_DECOMP_SINGLE
 57extern const struct squashfs_decompressor_thread_ops squashfs_decompressor_single;
 58#endif
 59#ifdef CONFIG_SQUASHFS_DECOMP_MULTI
 60extern const struct squashfs_decompressor_thread_ops squashfs_decompressor_multi;
 61#endif
 62#ifdef CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU
 63extern const struct squashfs_decompressor_thread_ops squashfs_decompressor_percpu;
 64#endif
 65
 66/* export.c */
 67extern __le64 *squashfs_read_inode_lookup_table(struct super_block *, u64, u64,
 68				unsigned int);
 69
 70/* fragment.c */
 71extern int squashfs_frag_lookup(struct super_block *, unsigned int, u64 *);
 72extern __le64 *squashfs_read_fragment_index_table(struct super_block *,
 73				u64, u64, unsigned int);
 74
 75/* file.c */
 76void squashfs_copy_cache(struct folio *, struct squashfs_cache_entry *,
 77		size_t bytes, size_t offset);
 78
 79/* file_xxx.c */
 80int squashfs_readpage_block(struct folio *, u64 block, int bsize, int expected);
 81
 82/* id.c */
 83extern int squashfs_get_id(struct super_block *, unsigned int, unsigned int *);
 84extern __le64 *squashfs_read_id_index_table(struct super_block *, u64, u64,
 85				unsigned short);
 86
 87/* inode.c */
 88extern struct inode *squashfs_iget(struct super_block *, long long,
 89				unsigned int);
 90extern int squashfs_read_inode(struct inode *, long long);
 91
 92/* xattr.c */
 93extern ssize_t squashfs_listxattr(struct dentry *, char *, size_t);
 94
 95/*
 96 * Inodes, files,  decompressor and xattr operations
 97 */
 98
 99/* dir.c */
100extern const struct file_operations squashfs_dir_ops;
101
102/* export.c */
103extern const struct export_operations squashfs_export_ops;
104
105/* file.c */
106extern const struct address_space_operations squashfs_aops;
107
108/* inode.c */
109extern const struct inode_operations squashfs_inode_ops;
110extern const struct file_operations squashfs_file_operations;
111
112/* namei.c */
113extern const struct inode_operations squashfs_dir_inode_ops;
114
115/* symlink.c */
116extern const struct address_space_operations squashfs_symlink_aops;
117extern const struct inode_operations squashfs_symlink_inode_ops;
118
119/* xattr.c */
120extern const struct xattr_handler * const squashfs_xattr_handlers[];
~/ Read-only file preview.