40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __PFS_INODE_H__
 | |
| #define __PFS_INODE_H__
 | |
| 
 | |
| /* Inode table.  This table holds inodes that are currently in use. 
 | |
|  */
 | |
| 
 | |
| #include <sys/queue.h>
 | |
| 
 | |
| EXTERN struct inode {
 | |
|   mode_t i_mode;		/* file type, protection, etc. */
 | |
|   nlink_t i_nlinks;		/* how many links to this file */
 | |
|   uid_t i_uid;			/* user id of the file's owner */
 | |
|   gid_t i_gid;			/* group number */
 | |
|   off_t i_size;			/* current file size in bytes */
 | |
|   time_t i_atime;		/* time of last access (V2 only) */
 | |
|   time_t i_mtime;		/* when was file data last changed */
 | |
|   time_t i_ctime;		/* when was inode itself changed (V2 only)*/
 | |
|   
 | |
|   /* The following items are not present on the disk. */
 | |
|   dev_t i_dev;			/* which device is the inode on */
 | |
|   dev_t i_rdev;			/* which special device is the inode on */
 | |
|   ino_t i_num;			/* inode number on its (minor) device */
 | |
|   int i_count;			/* # times inode used; 0 means slot is free */
 | |
|   char i_update;		/* the ATIME, CTIME, and MTIME bits are here */
 | |
| 
 | |
|   LIST_ENTRY(inode) i_hash;     /* hash list */
 | |
|   TAILQ_ENTRY(inode) i_unused;  /* free and unused list */
 | |
| 
 | |
|   
 | |
| } inode[NR_INODES];
 | |
| 
 | |
| /* list of unused/free inodes */ 
 | |
| EXTERN TAILQ_HEAD(unused_inodes_t, inode)  unused_inodes;
 | |
| 
 | |
| /* inode hashtable */
 | |
| EXTERN LIST_HEAD(inodelist, inode)         hash_inodes[INODE_HASH_SIZE];
 | |
| 
 | |
| 
 | |
| #endif
 | 
