Start development on BSD 4_1_snap
[unix-history] / .ref-79029c32280d78322b4fb003d1cf99489dda7f1c / .ref-BSD-3 / usr / src / sys / h / cmap.h
/* cmap.h 2.1 1/5/80 */
/*
* core map entry
*
* N.B.: sizeof (struct cmap) is well known in cmap.m
*/
struct cmap
{
unsigned int c_next:14, /* index of next free list entry */
c_page:17, /* virtual page number in segment */
c_intrans:1, /* intransit bit */
c_prev:14, /* index of previous free list entry */
c_ndx:10, /* index of owner proc or text */
c_flag:8; /* flags */
};
#define CMHEAD 0
#ifdef KERNEL
extern struct cmap *cmap;
extern struct cmap *ecmap;
int firstfree, maxfree;
#endif
/* bits defined in c_flag */
#define MTEXT 0x01 /* belongs to shared text segment */
#define MDATA 0x02 /* belongs to data segment */
#define MSTACK 0x04 /* belongs to stack segment */
#define MSYS 0x08 /* allocated to u area */
#define MGONE 0x10 /* associated page has been released */
#define MFREE 0x20 /* on the free list */
#define MLOCK 0x40 /* locked for raw i/o or pagein */
#define MWANT 0x80 /* wanted */
#define pgtocm(x) ((((x)-firstfree) / CLSIZE) + 1)
#define cmtopg(x) ((((x)-1) * CLSIZE) + firstfree)