1: /*
2: * The I node is the focus of all
3: * file activity in unix. There is a unique
4: * inode allocated for each active file,
5: * each current directory, each mounted-on
6: * file, text file, and the root. An inode is 'named'
7: * by its dev/inumber pair. (iget/iget.c)
8: * Data, from mode on, is read in
9: * from permanent inode on volume.
10: */
11:
12: #define NADDR 13
13: #define NINDEX 15
14:
15: struct group {
16: short g_state;
17: char g_index;
18: char g_rot;
19: struct group *g_group;
20: struct inode *g_inode;
21: struct file *g_file;
22: short g_rotmask;
23: short g_datq;
24: struct chan *g_chans[NINDEX];
25: };
26: struct inode
27: {
28: char i_flag;
29: char i_count; /* reference count */
30: dev_t i_dev; /* device where inode resides */
31: ino_t i_number; /* i number, 1-to-1 with device address */
32: unsigned short i_mode;
33: short i_nlink; /* directory entries */
34: short i_uid; /* owner */
35: short i_gid; /* group of owner */
36: off_t i_size; /* size of file */
37: union {
38: struct {
39: daddr_t i_addr[NADDR]; /* if normal file/directory */
40: daddr_t i_lastr; /* last logical block read (for read-ahead) */
41: };
42: struct {
43: daddr_t i_rdev; /* i_addr[0] */
44: struct group i_group; /* multiplexor group file */
45: };
46: } i_un;
47: };
48:
49:
50: extern struct inode inode[]; /* The inode table itself */
51: struct inode *mpxip; /* mpx virtual inode */
52:
53: /* flags */
54: #define ILOCK 01 /* inode is locked */
55: #define IUPD 02 /* file has been modified */
56: #define IACC 04 /* inode access time to be updated */
57: #define IMOUNT 010 /* inode is mounted on */
58: #define IWANT 020 /* some process waiting on lock */
59: #define ITEXT 040 /* inode is pure text prototype */
60: #define ICHG 0100 /* inode has been changed */
61:
62: /* modes */
63: #define IFMT 0170000 /* type of file */
64: #define IFDIR 0040000 /* directory */
65: #define IFCHR 0020000 /* character special */
66: #define IFBLK 0060000 /* block special */
67: #define IFREG 0100000 /* regular */
68: #define IFMPC 0030000 /* multiplexed char special */
69: #define IFMPB 0070000 /* multiplexed block special */
70: #define ISUID 04000 /* set user id on execution */
71: #define ISGID 02000 /* set group id on execution */
72: #define ISVTX 01000 /* save swapped text even after use */
73: #define IREAD 0400 /* read, write, execute permissions */
74: #define IWRITE 0200
75: #define IEXEC 0100
Defined variables
mpxip
defined in line
51; used 13 times
Defined struct's
group
defined in line
15; used 54 times
- in line 19(2),
44(2)
- in /usr/sys/dev/mx1.c line
35(2),
113(2),
149(2),
319(2),
425-431(6),
473(2)
- in /usr/sys/dev/mx2.c line
18(2),
49(2),
66(2),
142(2),
195(2),
219(2),
310(2),
625(2),
703(2),
767-769(4),
798(2),
805(2),
818(2),
839(2),
855(2),
866(2)
inode
defined in line
26; used 147 times
- in line 20,
50-51(4)
- in /usr/src/cmd/mkfs.c line
190(2),
198-200(4),
241(2),
496(2),
551(2)
- in /usr/src/cmd/pstat.c line
114-115(4)
- in /usr/src/cmd/standalone/SYS.c line
78(2),
157(2)
- in /usr/sys/conf/c.c line
79(2),
86(2)
- in /usr/sys/dev/mx1.c line
110(2),
141(2)
- in /usr/sys/dev/mx2.c line
143(2)
- in /usr/sys/dev/tty.c line
134(2)
- in /usr/sys/sys/acct.c line
16(2),
54(2)
- in /usr/sys/sys/alloc.c line
144(2),
150(2),
288(2)
- in /usr/sys/sys/fio.c line
48(2),
103(2),
145(2),
184-187(4)
- in /usr/sys/sys/iget.c line
29-36(6),
93(2),
123(2),
150(2),
205(2),
279-282(4),
306(2)
- in /usr/sys/sys/nami.c line
20-24(4)
- in /usr/sys/sys/pipe.c line
27(2),
64(2),
120(2),
190(2),
208(2)
- in /usr/sys/sys/rdwri.c line
20(2),
84(2)
- in /usr/sys/sys/sig.c line
198(2)
- in /usr/sys/sys/subr.c line
19(2)
- in /usr/sys/sys/sys1.c line
35(2),
145(2)
- in /usr/sys/sys/sys2.c line
34(2),
82(2),
100(2),
125(2),
211(2),
261(2),
293(2)
- in /usr/sys/sys/sys3.c line
38(2),
57(2),
134(2),
200(2),
243(2)
- in /usr/sys/sys/sys4.c line
147(2),
206-208(4),
236(2),
257(2),
409(2)
- in /usr/sys/sys/text.c line
53(2),
85(2),
230(2),
248(2)
Defined macros
IACC
defined in line
56; used 9 times
ICHG
defined in line
60; used 19 times
IEXEC
defined in line
75; used 8 times
IFBLK
defined in line
66; used 10 times
IFCHR
defined in line
65; used 15 times
IFDIR
defined in line
64; used 20 times
IFMPB
defined in line
69; used 3 times
IFMPC
defined in line
68; used 7 times
IFMT
defined in line
63; used 44 times
- in /usr/src/cmd/dcheck.c line
131,
173
- in /usr/src/cmd/dump.c line
262,
309
- in /usr/src/cmd/dumpdir.c line
116
- in /usr/src/cmd/icheck.c line
227
- in /usr/src/cmd/mkfs.c line
247,
580
- in /usr/src/cmd/ncheck.c line
140-143(3),
163,
205
- in /usr/src/cmd/pstat.c line
143(2)
- in /usr/src/cmd/quot.c line
125-128(3)
- in /usr/src/cmd/restor.c line
430,
801
- in /usr/src/cmd/standalone/SYS.c line
164
- in /usr/sys/dev/mx1.c line
247,
265,
360
- in /usr/sys/dev/mx2.c line
170,
192
- in /usr/sys/dev/tty.c line
155
- in /usr/sys/sys/acct.c line
38
- in /usr/sys/sys/fio.c line
75,
110
- in /usr/sys/sys/iget.c line
178-179(2),
211,
290
- in /usr/sys/sys/nami.c line
89
- in /usr/sys/sys/rdwri.c line
37,
97
- in /usr/sys/sys/sig.c line
213
- in /usr/sys/sys/sys1.c line
43
- in /usr/sys/sys/sys2.c line
136,
221
- in /usr/sys/sys/sys3.c line
248
- in /usr/sys/sys/sys4.c line
166,
216
IFREG
defined in line
67; used 14 times
ILOCK
defined in line
54; used 14 times
IREAD
defined in line
73; used 7 times
ISGID
defined in line
71; used 3 times
ISUID
defined in line
70; used 3 times
ISVTX
defined in line
72; used 5 times
ITEXT
defined in line
59; used 12 times
IUPD
defined in line
55; used 16 times
IWANT
defined in line
58; used 5 times
IWRITE
defined in line
74; used 11 times
NADDR
defined in line
12; used 59 times
- in line 39
- in /usr/src/cmd/dcheck.c line
19,
133,
207-214(3)
- in /usr/src/cmd/dump.c line
218-226(6),
619-620(2)
- in /usr/src/cmd/icheck.c line
17,
248-252(3),
264,
276
- in /usr/src/cmd/mkfs.c line
239,
522,
600
- in /usr/src/cmd/ncheck.c line
20,
165,
207,
313-320(3)
- in /usr/src/cmd/restor.c line
66,
380-385(2),
797,
804-805(2),
814-822(3),
911,
922,
935,
950-951(2)
- in /usr/src/cmd/standalone/SYS.c line
28,
91,
105,
121
- in /usr/sys/sys/alloc.c line
168
- in /usr/sys/sys/iget.c line
107,
176,
215,
226-234(3)
- in /usr/sys/sys/subr.c line
38,
49,
62,
78,
84
Usage of this include