#sccs "@(#)uts/kern/sys:cmap.h 1.1" /* Convergent Technologies - System V - May 1983 */ /* modified to remove MHASH stuff */ /* modified for kernel shared lib - 6/1/84 BG */ #ifndef cmap_h #define cmap_h /* * core map entry */ struct cmap { unsigned int c_next:12, /* index of next free list entry */ c_prev:12, /* index of previous free list entry */ /*--------- byte 3 --------------------*/ c_lock:1, /* locked for raw i/o or pagein */ c_want:1, /* wanted */ c_intrans:1, /* intransit bit */ c_free:1, /* on the free list */ c_gone:1, /* associated page has been released */ c_type:3, /* type CSYS,CTEXT,CSTACK,CDATA,CKVMEM */ /*--------- byte 4 --------------------*/ c_pgacc:2, /* access status of the physical page */ c_dummy:2, c_page:12, /* virtual page number in segment */ /*--------- byte 6 --------------------*/ c_reserve:6, /* reserved */ c_ndx:10; /* when valid, contains index of owner proc */ /* or text. The file inode no is in either */ /* proc or text. */ /* when invalid, contains file inode no */ }; #define CMHEAD 0 extern struct cmap *cmap; extern struct cmap *ecmap; extern int ncmap; /* bits defined in c_type */ #define CSYS 0 /* none of below */ #define CTEXT 1 /* belongs to shared text segment */ #define CDATA 2 /* belongs to data segment */ #define CSTACK 3 /* belongs to stack segment */ #define CKVMEM 4 /* kernel virtual memory */ #define CLDATA 5 /* shared lib data */ #define CLTEXT 6 /* shared lib text */ /* * pgtocm, cmtopg now subroutines in machdep.c - BG 8/24/84 * * #define pgtocm(x) ((short)((x) - firstfree + 1)) * #define cmtopg(x) ((x) -1 + firstfree) * */ #endif cmap_h