18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci#ifndef SQUASHFS_FS_I 38c2ecf20Sopenharmony_ci#define SQUASHFS_FS_I 48c2ecf20Sopenharmony_ci/* 58c2ecf20Sopenharmony_ci * Squashfs 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008 88c2ecf20Sopenharmony_ci * Phillip Lougher <phillip@squashfs.org.uk> 98c2ecf20Sopenharmony_ci * 108c2ecf20Sopenharmony_ci * squashfs_fs_i.h 118c2ecf20Sopenharmony_ci */ 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cistruct squashfs_inode_info { 148c2ecf20Sopenharmony_ci u64 start; 158c2ecf20Sopenharmony_ci int offset; 168c2ecf20Sopenharmony_ci u64 xattr; 178c2ecf20Sopenharmony_ci unsigned int xattr_size; 188c2ecf20Sopenharmony_ci int xattr_count; 198c2ecf20Sopenharmony_ci union { 208c2ecf20Sopenharmony_ci struct { 218c2ecf20Sopenharmony_ci u64 fragment_block; 228c2ecf20Sopenharmony_ci int fragment_size; 238c2ecf20Sopenharmony_ci int fragment_offset; 248c2ecf20Sopenharmony_ci u64 block_list_start; 258c2ecf20Sopenharmony_ci }; 268c2ecf20Sopenharmony_ci struct { 278c2ecf20Sopenharmony_ci u64 dir_idx_start; 288c2ecf20Sopenharmony_ci int dir_idx_offset; 298c2ecf20Sopenharmony_ci int dir_idx_cnt; 308c2ecf20Sopenharmony_ci int parent; 318c2ecf20Sopenharmony_ci }; 328c2ecf20Sopenharmony_ci }; 338c2ecf20Sopenharmony_ci struct inode vfs_inode; 348c2ecf20Sopenharmony_ci}; 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_cistatic inline struct squashfs_inode_info *squashfs_i(struct inode *inode) 388c2ecf20Sopenharmony_ci{ 398c2ecf20Sopenharmony_ci return container_of(inode, struct squashfs_inode_info, vfs_inode); 408c2ecf20Sopenharmony_ci} 418c2ecf20Sopenharmony_ci#endif 42