1 /* Inode table. This table holds inodes that are currently in use.
7 mode_t i_mode
; /* file type, protection, etc. */
8 nlink_t i_nlinks
; /* how many links to this file */
9 uid_t i_uid
; /* user id of the file's owner */
10 gid_t i_gid
; /* group number */
11 off_t i_size
; /* current file size in bytes */
12 time_t i_atime
; /* time of last access (V2 only) */
13 time_t i_mtime
; /* when was file data last changed */
14 time_t i_ctime
; /* when was inode itself changed (V2 only)*/
16 /* The following items are not present on the disk. */
17 dev_t i_dev
; /* which device is the inode on */
18 ino_t i_num
; /* inode number on its (minor) device */
19 int i_count
; /* # times inode used; 0 means slot is free */
20 char i_update
; /* the ATIME, CTIME, and MTIME bits are here */
22 LIST_ENTRY(inode
) i_hash
; /* hash list */
23 TAILQ_ENTRY(inode
) i_unused
; /* free and unused list */
28 /* list of unused/free inodes */
29 EXTERN
TAILQ_HEAD(unused_inodes_t
, inode
) unused_inodes
;
32 EXTERN
LIST_HEAD(inodelist
, inode
) hash_inodes
[INODE_HASH_SIZE
];
34 #define NIL_INODE (struct inode *) 0 /* indicates absence of inode slot */