|
|
1.1 ! root 1: /* cmap.h 2.1 1/5/80 */ ! 2: ! 3: /* ! 4: * core map entry ! 5: * ! 6: * N.B.: sizeof (struct cmap) is well known in cmap.m ! 7: */ ! 8: struct cmap ! 9: { ! 10: unsigned int c_next:14, /* index of next free list entry */ ! 11: c_page:17, /* virtual page number in segment */ ! 12: c_intrans:1, /* intransit bit */ ! 13: c_prev:14, /* index of previous free list entry */ ! 14: c_ndx:10, /* index of owner proc or text */ ! 15: c_flag:8; /* flags */ ! 16: }; ! 17: ! 18: #define CMHEAD 0 ! 19: ! 20: #ifdef KERNEL ! 21: extern struct cmap *cmap; ! 22: extern struct cmap *ecmap; ! 23: int firstfree, maxfree; ! 24: #endif ! 25: ! 26: /* bits defined in c_flag */ ! 27: ! 28: #define MTEXT 0x01 /* belongs to shared text segment */ ! 29: #define MDATA 0x02 /* belongs to data segment */ ! 30: #define MSTACK 0x04 /* belongs to stack segment */ ! 31: #define MSYS 0x08 /* allocated to u area */ ! 32: #define MGONE 0x10 /* associated page has been released */ ! 33: #define MFREE 0x20 /* on the free list */ ! 34: #define MLOCK 0x40 /* locked for raw i/o or pagein */ ! 35: #define MWANT 0x80 /* wanted */ ! 36: ! 37: #define pgtocm(x) ((((x)-firstfree) / CLSIZE) + 1) ! 38: #define cmtopg(x) ((((x)-1) * CLSIZE) + firstfree)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.