packages: don't put oss on cd.
[minix.git] / servers / pfs / inode.h
blob8614aa0f70ee25d95e2f56277461113426e02938
1 #ifndef __PFS_INODE_H__
2 #define __PFS_INODE_H__
4 /* Inode table. This table holds inodes that are currently in use.
5 */
7 #include <sys/queue.h>
9 EXTERN struct inode {
10 mode_t i_mode; /* file type, protection, etc. */
11 nlink_t i_nlinks; /* how many links to this file */
12 uid_t i_uid; /* user id of the file's owner */
13 gid_t i_gid; /* group number */
14 off_t i_size; /* current file size in bytes */
15 time_t i_atime; /* time of last access (V2 only) */
16 time_t i_mtime; /* when was file data last changed */
17 time_t i_ctime; /* when was inode itself changed (V2 only)*/
19 /* The following items are not present on the disk. */
20 dev_t i_dev; /* which device is the inode on */
21 dev_t i_rdev; /* which special device is the inode on */
22 ino_t i_num; /* inode number on its (minor) device */
23 int i_count; /* # times inode used; 0 means slot is free */
24 char i_update; /* the ATIME, CTIME, and MTIME bits are here */
26 LIST_ENTRY(inode) i_hash; /* hash list */
27 TAILQ_ENTRY(inode) i_unused; /* free and unused list */
30 } inode[NR_INODES];
32 /* list of unused/free inodes */
33 EXTERN TAILQ_HEAD(unused_inodes_t, inode) unused_inodes;
35 /* inode hashtable */
36 EXTERN LIST_HEAD(inodelist, inode) hash_inodes[INODE_HASH_SIZE];
39 #endif