1/* SPDX-License-Identifier: GPL-2.0-or-later */
2#ifndef SQUASHFS_FS_SB
3#define SQUASHFS_FS_SB
4/*
5 * Squashfs
6 *
7 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
8 * Phillip Lougher <phillip@squashfs.org.uk>
9 *
10 * squashfs_fs_sb.h
11 */
12
13#include "squashfs_fs.h"
14
15struct squashfs_cache {
16 char *name;
17 int entries;
18 int curr_blk;
19 int next_blk;
20 int num_waiters;
21 int unused;
22 int block_size;
23 int pages;
24 spinlock_t lock;
25 wait_queue_head_t wait_queue;
26 struct squashfs_cache_entry *entry;
27};
28
29struct squashfs_cache_entry {
30 u64 block;
31 int length;
32 int refcount;
33 u64 next_index;
34 int pending;
35 int error;
36 int num_waiters;
37 wait_queue_head_t wait_queue;
38 struct squashfs_cache *cache;
39 void **data;
40 struct squashfs_page_actor *actor;
41};
42
43struct squashfs_sb_info {
44 const struct squashfs_decompressor *decompressor;
45 int devblksize;
46 int devblksize_log2;
47 struct squashfs_cache *block_cache;
48 struct squashfs_cache *fragment_cache;
49 struct squashfs_cache *read_page;
50 struct address_space *cache_mapping;
51 int next_meta_index;
52 __le64 *id_table;
53 __le64 *fragment_index;
54 __le64 *xattr_id_table;
55 struct mutex meta_index_mutex;
56 struct meta_index *meta_index;
57 void *stream;
58 __le64 *inode_lookup_table;
59 u64 inode_table;
60 u64 directory_table;
61 u64 xattr_table;
62 unsigned int block_size;
63 unsigned short block_log;
64 long long bytes_used;
65 unsigned int inodes;
66 unsigned int fragments;
67 unsigned int xattr_ids;
68 unsigned int ids;
69 bool panic_on_errors;
70 const struct squashfs_decompressor_thread_ops *thread_ops;
71 int max_thread_num;
72};
73#endif
74

source code of linux/fs/squashfs/squashfs_fs_sb.h