| /* | 
 |  * efs_fs_i.h | 
 |  * | 
 |  * Copyright (c) 1999 Al Smith | 
 |  * | 
 |  * Portions derived from IRIX header files (c) 1988 Silicon Graphics | 
 |  */ | 
 |  | 
 | #ifndef	__EFS_FS_I_H__ | 
 | #define	__EFS_FS_I_H__ | 
 |  | 
 | typedef	int32_t		efs_block_t; | 
 | typedef uint32_t	efs_ino_t; | 
 |  | 
 | #define	EFS_DIRECTEXTENTS	12 | 
 |  | 
 | /* | 
 |  * layout of an extent, in memory and on disk. 8 bytes exactly. | 
 |  */ | 
 | typedef union extent_u { | 
 | 	unsigned char raw[8]; | 
 | 	struct extent_s { | 
 | 		unsigned int	ex_magic:8;	/* magic # (zero) */ | 
 | 		unsigned int	ex_bn:24;	/* basic block */ | 
 | 		unsigned int	ex_length:8;	/* numblocks in this extent */ | 
 | 		unsigned int	ex_offset:24;	/* logical offset into file */ | 
 | 	} cooked; | 
 | } efs_extent; | 
 |  | 
 | typedef struct edevs { | 
 | 	__be16		odev; | 
 | 	__be32		ndev; | 
 | } efs_devs; | 
 |  | 
 | /* | 
 |  * extent based filesystem inode as it appears on disk.  The efs inode | 
 |  * is exactly 128 bytes long. | 
 |  */ | 
 | struct	efs_dinode { | 
 | 	__be16		di_mode;	/* mode and type of file */ | 
 | 	__be16		di_nlink;	/* number of links to file */ | 
 | 	__be16		di_uid;		/* owner's user id */ | 
 | 	__be16		di_gid;		/* owner's group id */ | 
 | 	__be32		di_size;	/* number of bytes in file */ | 
 | 	__be32		di_atime;	/* time last accessed */ | 
 | 	__be32		di_mtime;	/* time last modified */ | 
 | 	__be32		di_ctime;	/* time created */ | 
 | 	__be32		di_gen;		/* generation number */ | 
 | 	__be16		di_numextents;	/* # of extents */ | 
 | 	u_char		di_version;	/* version of inode */ | 
 | 	u_char		di_spare;	/* spare - used by AFS */ | 
 | 	union di_addr { | 
 | 		efs_extent	di_extents[EFS_DIRECTEXTENTS]; | 
 | 		efs_devs	di_dev;	/* device for IFCHR/IFBLK */ | 
 | 	} di_u; | 
 | }; | 
 |  | 
 | /* efs inode storage in memory */ | 
 | struct efs_inode_info { | 
 | 	int		numextents; | 
 | 	int		lastextent; | 
 |  | 
 | 	efs_extent	extents[EFS_DIRECTEXTENTS]; | 
 | 	struct inode	vfs_inode; | 
 | }; | 
 |  | 
 | #endif	/* __EFS_FS_I_H__ */ | 
 |  |