Annotation of cci/d/io/param.h, revision 1.1

1.1     ! root        1: /*     param.h 4.12    81/06/11        */
        !             2: /*     Tahoe version 1.0 Nov 5 1982    */
        !             3: 
        !             4: /*
        !             5:  * Tunable variables which do not usually vary per system.
        !             6:  *
        !             7:  * The sizes of most system tables are configured
        !             8:  * into each system description.  The file system buffer
        !             9:  * cache size is assigned based on available memory.
        !            10:  * The tables whose sizes don't vary often are given here.
        !            11:  */
        !            12: 
        !            13: #define        NMOUNT  15              /* number of mountable file systems */
        !            14: #define        MSWAPX  15              /* pseudo mount table index for swapdev */
        !            15: #define        MAXUPRC 25              /* max processes per user */
        !            16: #define        SSIZE   2               /* initial stack size (*1024 bytes) */
        !            17: #define        SINCR   2               /* increment of stack (*1024 bytes) */
        !            18: #define        NOFILE  20              /* max open files per process */
        !            19: /* NOFILE MUST NOT BE >= 31; SEE pte.h */
        !            20: #define        CANBSIZ 256             /* max size of typewriter line */
        !            21: #define        NCARGS  10240           /* # characters in exec arglist */
        !            22: 
        !            23: /*
        !            24:  * priorities
        !            25:  * probably should not be
        !            26:  * altered too much
        !            27:  */
        !            28: 
        !            29: #define        PSWP    0
        !            30: #define        PINOD   10
        !            31: #define        PRIBIO  20
        !            32: #define        PRIUBA  24
        !            33: #define        PZERO   25
        !            34: #define        PPIPE   26
        !            35: #define        PWAIT   30
        !            36: #define        PSLEP   40
        !            37: #define        PUSER   50
        !            38: 
        !            39: #define        NZERO   20
        !            40: 
        !            41: /*
        !            42:  * signals
        !            43:  * dont change
        !            44:  */
        !            45: 
        !            46: #ifndef        NSIG
        !            47: #include <signal.h>
        !            48: #endif
        !            49: 
        !            50: /*
        !            51:  * Return values from tsleep().
        !            52:  */
        !            53: #define        TS_OK   0       /* normal wakeup */
        !            54: #define        TS_TIME 1       /* timed-out wakeup */
        !            55: #define        TS_SIG  2       /* asynchronous signal wakeup */
        !            56: 
        !            57: /*
        !            58:  * fundamental constants of the implementation--
        !            59:  * cannot be changed easily.
        !            60:  */
        !            61: 
        !            62: #define        NBBY            8               /* number of bits in a byte */
        !            63: #define        NBPW            sizeof(int)     /* number of bytes in an integer */
        !            64: #define        NBPG            1024
        !            65: #define        PGOFSET         (NBPG-1)        /* byte offset into page */
        !            66: #define        PGSHIFT         10              /* LOG2(NBPG) */
        !            67: #define        IOBASE          0xfff00000      /* Last Megabyte of 4 giga */
        !            68:                                        /* corresponds to Versabus addresses */
        !            69: 
        !            70: /* 
        !            71:  * The following constant is used to initialize the map of the
        !            72:  * system page table i/o entries.
        !            73:  * It's value should be the highest i/o address used by all the 
        !            74:  * controllers handled in the system as specified in ubminit 
        !            75:  * structure in ioconf.c.
        !            76: */
        !            77: /*     #define MAXIOADDR 0xffff4001    /* highest physical io address */
        !            78: #define MAXIOADDR 0xffffb03c   /* While we are checking performance ! */
        !            79: 
        !            80: /* Number of entries in the system page pable for i/o space */
        !            81: #define IOSIZE (( (MAXIOADDR - IOBASE+ NBPG -1) >> PGSHIFT )+1)
        !            82: 
        !            83: #define        UPAGES  4               /* pages of u-area */
        !            84: #define        NULL    0
        !            85: #define        CMASK   0               /* default mask for file creation */
        !            86: #define        NODEV   (dev_t)(-1)
        !            87: #define        ROOTINO ((ino_t)2)      /* i number of all roots */
        !            88: #define        SUPERB  ((daddr_t)1)    /* block number of the super block */
        !            89: #define        DIRSIZ  14              /* max characters per directory */
        !            90: 
        !            91: /*
        !            92:  * Clustering of hardware pages on machines with ridiculously small
        !            93:  * page sizes is done here.  The paging subsystem deals with units of
        !            94:  * CLSIZE pte's describing NBPG (from vm.h) pages each... BSIZE must
        !            95:  * be CLSIZE*NBPG in the current implementation, that is the paging subsystem
        !            96:  * deals with the same size blocks that the file system uses.
        !            97:  *
        !            98:  * NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE
        !            99:  */
        !           100: #define        CLSIZE  1
        !           101: #define        CLOFSET         (CLSIZE*NBPG-1) /* for clusters, like PGOFSET */
        !           102: 
        !           103: /* give the base virtual address (first of CLSIZE) */
        !           104: #define        clbase(i)       ((i) &~ (CLSIZE-1))
        !           105: 
        !           106: /* round a number of clicks up to a whole cluster */
        !           107: #define        clrnd(i)        (((i) + (CLSIZE-1)) &~ (CLSIZE-1))
        !           108: 
        !           109: #if CLSIZE==1
        !           110: #define        BSIZE   1024
        !           111: #define        INOPB   16
        !           112: #define        BMASK   01777
        !           113: #define        BSHIFT  10
        !           114: #define        NMASK   0377
        !           115: #define        NSHIFT  8
        !           116: #define        NICINOD 100
        !           117: #define        NICFREE 178
        !           118: #endif
        !           119: 
        !           120: #ifndef INTRLVE
        !           121: /* macros replacing interleaving functions */
        !           122: #define        dkblock(bp)     ((bp)->b_blkno)
        !           123: #define        dkunit(bp)      (minor((bp)->b_dev) >> 3)
        !           124: #endif
        !           125: 
        !           126: /* inumber to disk address and inumber to disk offset */
        !           127: #define        itod(x) ((daddr_t)((((unsigned)(x)+2*INOPB-1)/INOPB)))
        !           128: #define        itoo(x) ((int)(((x)+2*INOPB-1)%INOPB))
        !           129: 
        !           130: /* file system blocks to disk blocks and back */
        !           131: #define        fsbtodb(b)      ((b)*CLSIZE)
        !           132: #define        dbtofsb(b)      ((b)/CLSIZE)
        !           133: 
        !           134: #define        NINDIR  (BSIZE/sizeof(daddr_t)) /* # of pointers in indirect block */
        !           135: 
        !           136: #define        CBSIZE  28              /* number of chars in a clist block */
        !           137: #define        CROUND  0x1F            /* clist rounding; sizeof(int *) + CBSIZE -1*/
        !           138: 
        !           139: /*
        !           140:  * Macros for fast min/max
        !           141:  */
        !           142: #define        MIN(a,b) (((a)<(b))?(a):(b))
        !           143: #define        MAX(a,b) (((a)>(b))?(a):(b))
        !           144: 
        !           145: /*
        !           146:  * Some macros for units conversion
        !           147:  */
        !           148: /* Core clicks (1024 bytes) to segments and vice versa */
        !           149: #define        ctos(x) (x)
        !           150: #define        stoc(x) (x)
        !           151: 
        !           152: /* Core clicks (1024 bytes) to disk blocks */
        !           153: #define        ctod(x) (x)
        !           154: 
        !           155: /* clicks to bytes */
        !           156: #define        ctob(x) ((x) << PGSHIFT)
        !           157: 
        !           158: /* bytes to clicks */
        !           159: #define        btoc(x) ((((unsigned)(x)+ NBPG -1) >> PGSHIFT))
        !           160: 
        !           161: #ifndef KERNEL
        !           162: #include       <sys/types.h>
        !           163: #else
        !           164: #include       "types.h"
        !           165: #endif
        !           166: 
        !           167: /*
        !           168:  * Machine-dependent bits and macros
        !           169:  */
        !           170: #define        UMODE   PSL_CURMOD              /* usermode bits */
        !           171: #define        USERMODE(ps)    (((ps) & UMODE) == UMODE)
        !           172: 
        !           173: #define        BASEPRI(ps)     (((ps) & PSL_IPL) != 0)
        !           174: 
        !           175: /*
        !           176:  * Provide about n microseconds of delay
        !           177:  */
        !           178: #define        DELAY(n)        { register int N = 3*(n); while (--N > 0); }

unix.superglobalmegacorp.com

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