-#define NINDEX 15
-struct group
-{
- short g_state;
- char g_index;
- char g_rot;
- struct group *g_group;
- struct inode *g_inode;
- struct file *g_file;
- short g_rotmask;
- short g_datq;
- struct chan *g_chans[NINDEX];
-};
-struct inode
-{
- char i_flag;
- char i_count; /* reference count */
- dev_t i_dev; /* device where inode resides */
- ino_t i_number; /* i number, 1-to-1 with device address */
- unsigned short i_mode;
- short i_nlink; /* directory entries */
- short i_uid; /* owner */
- short i_gid; /* group of owner */
- off_t i_size; /* size of file */
- union {
- struct {
- daddr_t I_addr[NADDR]; /* if normal file/directory */
- daddr_t I_lastr; /* last read (for read-ahead) */
- } i_f;
-#define i_addr i_f.I_addr
-#define i_lastr i_f.I_lastr
- struct {
- daddr_t I_rdev; /* i_addr[0] */
- struct group I_group; /* multiplexor group file */
- } i_d;
-#define i_rdev i_d.I_rdev
-#define i_group i_d.I_group
- } i_un;
- short i_vfdcnt; /* number of fd's vreading this inode */
- short i_hlink; /* link in hash chain (iget/iput/ifind) */
-};
+/*
+ * A dinode contains all the meta-data associated with a UFS file.
+ * This structure defines the on-disk format of a dinode.
+ */