74 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2#ifndef SQUASHFS_FS_SB3#define SQUASHFS_FS_SB4/*5 * Squashfs6 *7 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 20088 * Phillip Lougher <phillip@squashfs.org.uk>9 *10 * squashfs_fs_sb.h11 */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#endif74