Annotation of researchv10dc/lsys/sys/cmap.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * core map entry
                      3:  *
                      4:  * the 20-bit fields imply a maximum of 1GB with 1K pages
                      5:  * which is scant compensation for the enormous space this
                      6:  * damned structure takes.
                      7:  */
                      8: struct cmap
                      9: {
                     10: unsigned int   c_next:20,      /* index of next free list entry */
                     11:                c_lock:1,       /* locked for raw i/o or pagein */
                     12:                c_want:1,       /* wanted */
                     13:                c_intrans:1,    /* intransit bit */
                     14:                c_free:1,       /* on the free list */
                     15:                c_gone:1,       /* associated page has been released */
                     16: 
                     17:                c_prev:20,      /* index of previous */
                     18:                c_type:2,       /* type CSYS or CTEXT or CSTACK or CDATA */
                     19: 
                     20:                c_page:20,      /* virtual page number in segment */
                     21:                c_ndx:10,       /* index of owner proc or text */
                     22: 
                     23:                c_hlink:20,     /* hash link for <blkno,mdev> */
                     24: 
                     25:                c_blkno:20,     /* disk block this is a copy of */
                     26:                c_mdev:6;       /* which mounted dev this is from (NMOUNT) */
                     27: };
                     28: 
                     29: #define        CMHEAD  0
                     30: 
                     31: #ifdef KERNEL
                     32: struct cmap *cmap;
                     33: struct cmap *ecmap;
                     34: int    ncmap;
                     35: struct cmap *mfind();
                     36: int    firstfree, maxfree;
                     37: int    ecmx;                   /* cmap index of ecmap */
                     38: #endif
                     39: 
                     40: /* bits defined in c_type */
                     41: 
                     42: #define        CSYS            0               /* none of below */
                     43: #define        CTEXT           1               /* belongs to shared text segment */
                     44: #define        CDATA           2               /* belongs to data segment */
                     45: #define        CSTACK          3               /* belongs to stack segment */
                     46: 
                     47: #define        pgtocm(x)       ((((x)-firstfree) / CLSIZE) + 1)
                     48: #define        cmtopg(x)       ((((x)-1) * CLSIZE) + firstfree)
                     49: 
                     50: /*
                     51:  * magic for c_mdev
                     52:  */
                     53: #define        MSWAPX  63      /* the swap device */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.