|
|
1.1 root 1: /* bit fields strike again!! there seems to be an indirection problem */
2:
3: struct cmap
4: {
5: unsigned int c_next:13, /* index of next free list entry */
6: c_prev:13, /* index of previous (6700 for 8Mb) */
7: c_lock:1, /* locked for raw i/o or pagein */
8: c_want:1, /* wanted */
9: c_page:16, /* virtual page number in segment */
10: c_hlink:13, /* hash link for <blkno,mdev> */
11: c_intrans:1, /* intransit bit */
12: c_free:1, /* on the free list */
13: c_gone:1, /* associated page has been released */
14: c_type:2, /* type CSYS or CTEXT or CSTACK or CDATA */
15: c_blkno:20, /* disk block this is a copy of */
16: c_ndx:10, /* index of owner proc or text */
17: c_mdev:6; /* which mounted dev this is from (NMOUNT) */
18: };
19:
20: extern struct cmap *cmap;
21:
22: foo(i)
23: register i;
24: {
25: cmap[i-1].c_next = i;
26: }
27:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.