162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci#ifndef SQUASHFS_FS_I
362306a36Sopenharmony_ci#define SQUASHFS_FS_I
462306a36Sopenharmony_ci/*
562306a36Sopenharmony_ci * Squashfs
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
862306a36Sopenharmony_ci * Phillip Lougher <phillip@squashfs.org.uk>
962306a36Sopenharmony_ci *
1062306a36Sopenharmony_ci * squashfs_fs_i.h
1162306a36Sopenharmony_ci */
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistruct squashfs_inode_info {
1462306a36Sopenharmony_ci	u64		start;
1562306a36Sopenharmony_ci	int		offset;
1662306a36Sopenharmony_ci	u64		xattr;
1762306a36Sopenharmony_ci	unsigned int	xattr_size;
1862306a36Sopenharmony_ci	int		xattr_count;
1962306a36Sopenharmony_ci	union {
2062306a36Sopenharmony_ci		struct {
2162306a36Sopenharmony_ci			u64		fragment_block;
2262306a36Sopenharmony_ci			int		fragment_size;
2362306a36Sopenharmony_ci			int		fragment_offset;
2462306a36Sopenharmony_ci			u64		block_list_start;
2562306a36Sopenharmony_ci		};
2662306a36Sopenharmony_ci		struct {
2762306a36Sopenharmony_ci			u64		dir_idx_start;
2862306a36Sopenharmony_ci			int		dir_idx_offset;
2962306a36Sopenharmony_ci			int		dir_idx_cnt;
3062306a36Sopenharmony_ci			int		parent;
3162306a36Sopenharmony_ci		};
3262306a36Sopenharmony_ci	};
3362306a36Sopenharmony_ci	struct inode	vfs_inode;
3462306a36Sopenharmony_ci};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_cistatic inline struct squashfs_inode_info *squashfs_i(struct inode *inode)
3862306a36Sopenharmony_ci{
3962306a36Sopenharmony_ci	return container_of(inode, struct squashfs_inode_info, vfs_inode);
4062306a36Sopenharmony_ci}
4162306a36Sopenharmony_ci#endif
42