xref: /linux/fs/squashfs/squashfs_fs_i.h (revision 93df8a1ed6231727c5db94a80b1a6bd5ee67cec3)
1 #ifndef SQUASHFS_FS_I
2 #define SQUASHFS_FS_I
3 /*
4  * Squashfs
5  *
6  * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
7  * Phillip Lougher <phillip@squashfs.org.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_i.h
24  */
25 
26 struct squashfs_inode_info {
27 	u64		start;
28 	int		offset;
29 	u64		xattr;
30 	unsigned int	xattr_size;
31 	int		xattr_count;
32 	union {
33 		struct {
34 			u64		fragment_block;
35 			int		fragment_size;
36 			int		fragment_offset;
37 			u64		block_list_start;
38 		};
39 		struct {
40 			u64		dir_idx_start;
41 			int		dir_idx_offset;
42 			int		dir_idx_cnt;
43 			int		parent;
44 		};
45 	};
46 	struct inode	vfs_inode;
47 };
48 
49 
50 static inline struct squashfs_inode_info *squashfs_i(struct inode *inode)
51 {
52 	return container_of(inode, struct squashfs_inode_info, vfs_inode);
53 }
54 #endif
55