linux/fs/squashfs/squashfs_fs_sb.h
<<
>>
Prefs
   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        int                                     next_meta_index;
  51        __le64                                  *id_table;
  52        __le64                                  *fragment_index;
  53        __le64                                  *xattr_id_table;
  54        struct mutex                            meta_index_mutex;
  55        struct meta_index                       *meta_index;
  56        struct squashfs_stream                  *stream;
  57        __le64                                  *inode_lookup_table;
  58        u64                                     inode_table;
  59        u64                                     directory_table;
  60        u64                                     xattr_table;
  61        unsigned int                            block_size;
  62        unsigned short                          block_log;
  63        long long                               bytes_used;
  64        unsigned int                            inodes;
  65        unsigned int                            fragments;
  66        int                                     xattr_ids;
  67        unsigned int                            ids;
  68};
  69#endif
  70