Annotation of cci/d/io/param.h, revision 1.1.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.