#include <sys/param.h> #include <sys/types.h> #include <sys/vnode.h> #include <sys/fs/cdfs_inode.h>
The information includes items such as:
The cdfs_inode structure is defined in the cdfs_inode.h header file, and is as follows:
struct cdfs_inode { struct cdfs_inode *i_FreeFwd; /* Free list forward link */ struct cdfs_inode *i_FreeBack; /* Free list backward link */ struct cdfs_inode *i_HashFwd; /* Hash list forward link */ struct cdfs_inode *i_HashBack; /* Hash list backward link */ uint_t i_Flags; /* Inode flags - See CDFS struct */ struct cdfs_fid i_Fid; /* File ID info */ struct cdfs_fid i_ParentFid; /* Parent's File ID info */ uid_t i_UserID; /* User ID */ gid_t i_GroupID; /* Group ID */ uint_t i_Mode; /* File type, Mode, and Perms */ uint_t i_Size; /* Total # of bytes in file */ uint_t i_LinkCnt; /* # of links to file */ dev_t i_DevNum; /* Device # of BLK/CHR file type*/ ulong_t i_LockOwner; /* Process # of owner of lock */ short i_Count; /* # of inode locks by lock owner */ uint_t i_DRcount; /* # of Directory Records */ struct vfs *i_vfs; /* File sys associated with inode */ daddr_t i_NextByte; /* Next read-ahead offset (Byte) */ int i_mapsz; /* kmem_alloc'ed size */ long i_mapcnt; /* mappings to file pages */ struct cdfs_drec *i_DirRec; /* 1st link-list Dir Rec of file */ struct cdfs_xar *i_Xar; /* XAR info from last Dir Rec */ struct cdfs_rrip *i_Rrip; /* RRIP info from last Dir Rec */ struct vnode *i_Vnode; /* Vnode associated with Inode */ timestruc_t i_AccessDate; /* File Access date/time */ timestruc_t i_ModDate; /* File Modification date/time */ timestruc_t i_CreateDate; /* File Creation date/time */ timestruc_t i_ExpireDate; /* File Expiration date/time */ timestruc_t i_EffectDate; /* File Effective date/time */ timestruc_t i_AttrDate; /* File Attribute Change date/time */ timestruc_t i_BackupDate; /* File Backup date/time */ struct pathname i_SymLink; off_t i_DirOffset; /* Dir offset of last ref'd entry */ ulong i_VerCode; /* version code attribute */ daddr_t i_ReadAhead; /* File offset of read-ahead byte */ /* * The following fields cause storage to be allocated for the * corresponding data structures. Since each inode will usually * need each of these structures, this is a simple mechanism for * getting the needed storage. Reference to these structures should * be done via the corresponding pointers allocated above. Thus, * if the storage is to be dynamically allocated, very little * code needs to change. */ struct cdfs_drec i_DirRecStorage; /* Static storage for i_DirRec */ struct cdfs_xar i_XarStorage; /* Static storage for i_Xar */ struct cdfs_rrip i_RripStorage; /* Static storage for i_Rrip */ struct vnode i_VnodeStorage; /* Static storage for i_Vnode */ }