1 #ifndef SQUASHFS_FS_SB 2 #define SQUASHFS_FS_SB 3 /* 4 * Squashfs 5 * 6 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 7 * Phillip Lougher <phillip@lougher.demon.co.uk> 8 * 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License 11 * as published by the Free Software Foundation; either version 2, 12 * or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, write to the Free Software 21 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 22 * 23 * squashfs_fs_sb.h 24 */ 25 26 #include "squashfs_fs.h" 27 28 struct squashfs_cache { 29 char *name; 30 int entries; 31 int next_blk; 32 int num_waiters; 33 int unused; 34 int block_size; 35 int pages; 36 spinlock_t lock; 37 wait_queue_head_t wait_queue; 38 struct squashfs_cache_entry *entry; 39 }; 40 41 struct squashfs_cache_entry { 42 u64 block; 43 int length; 44 int refcount; 45 u64 next_index; 46 int pending; 47 int error; 48 int num_waiters; 49 wait_queue_head_t wait_queue; 50 struct squashfs_cache *cache; 51 void **data; 52 }; 53 54 struct squashfs_sb_info { 55 const struct squashfs_decompressor *decompressor; 56 int devblksize; 57 int devblksize_log2; 58 struct squashfs_cache *block_cache; 59 struct squashfs_cache *fragment_cache; 60 struct squashfs_cache *read_page; 61 int next_meta_index; 62 __le64 *id_table; 63 __le64 *fragment_index; 64 __le64 *xattr_id_table; 65 struct mutex read_data_mutex; 66 struct mutex meta_index_mutex; 67 struct meta_index *meta_index; 68 void *stream; 69 __le64 *inode_lookup_table; 70 u64 inode_table; 71 u64 directory_table; 72 u64 xattr_table; 73 unsigned int block_size; 74 unsigned short block_log; 75 long long bytes_used; 76 unsigned int inodes; 77 int xattr_ids; 78 }; 79 #endif 80