Annotation of 3BSD/sys/h/param.h, revision 1.1.1.1

1.1       root        1: /*     param.h 2.1     1/5/80  */
                      2: 
                      3: /*
                      4:  * tunable variables
                      5:  *
                      6:  * NB: NBUF is well known in locore.s
                      7:  */
                      8: 
                      9: #define        NBUF    48              /* size of buffer cache */
                     10: #define        NINODE  200             /* number of in core inodes */
                     11: #define        NFILE   175             /* number of in core file structures */
                     12: #define        NMOUNT  8               /* number of mountable file systems */
                     13: #define        MAXUPRC 25              /* max processes per user */
                     14: #define        SSIZE   4               /* initial stack size (*512 bytes) */
                     15: #define        SINCR   4               /* increment of stack (*512 bytes) */
                     16: #define        NOFILE  20              /* max open files per process */
                     17: #define        CANBSIZ 256             /* max size of typewriter line */
                     18: #define        SMAPSIZ (4*NPROC)       /* size of swap allocation area */
                     19: #define        NCALL   40              /* max simultaneous time callouts */
                     20: #define        NPROC   125             /* max number of processes */
                     21: #define        NTEXT   60              /* max number of pure texts */
                     22: #define        NCLIST  500             /* max total clist size */
                     23: #define        HZ      60              /* Ticks/second of the clock */
                     24: #define        TIMEZONE (8*60)         /* Minutes westward from Greenwich */
                     25: #define        DSTFLAG 1               /* Daylight Saving Time applies in this locality */
                     26: #define        MSGBUFS 128             /* Characters saved from error messages */
                     27: #define        NCARGS  5120            /* # characters in exec arglist */
                     28: /*
                     29:  * priorities
                     30:  * probably should not be
                     31:  * altered too much
                     32:  */
                     33: 
                     34: #define        PSWP    0
                     35: #define        PINOD   10
                     36: #define        PRIBIO  20
                     37: #define        PRIUBA  24
                     38: #define        PZERO   25
                     39: #define        PPIPE   26
                     40: #define        PWAIT   30
                     41: #define        PSLEP   40
                     42: #define        PUSER   50
                     43: 
                     44: #define        NZERO   20
                     45: 
                     46: /*
                     47:  * signals
                     48:  * dont change
                     49:  */
                     50: 
                     51: #define        NSIG    17
                     52: /*
                     53:  * No more than 16 signals (1-16) because they are
                     54:  * stored in bits in a word.
                     55:  */
                     56: #define        SIGHUP  1       /* hangup */
                     57: #define        SIGINT  2       /* interrupt (rubout) */
                     58: #define        SIGQUIT 3       /* quit (FS) */
                     59: #define        SIGINS  4       /* illegal instruction */
                     60: #define        SIGTRC  5       /* trace or breakpoint */
                     61: #define        SIGIOT  6       /* iot */
                     62: #define        SIGEMT  7       /* emt */
                     63: #define        SIGFPT  8       /* floating exception */
                     64: #define        SIGKIL  9       /* kill, uncatchable termination */
                     65: #define        SIGBUS  10      /* bus error */
                     66: #define        SIGSEG  11      /* segmentation violation */
                     67: #define        SIGSYS  12      /* bad system call */
                     68: #define        SIGPIPE 13      /* end of pipe */
                     69: #define        SIGCLK  14      /* alarm clock */
                     70: #define        SIGTRM  15      /* Catchable termination */
                     71: 
                     72: /*
                     73:  * fundamental constants of the implementation--
                     74:  * cannot be changed easily.
                     75:  * note: UPAGES is well known in locore.s
                     76:  */
                     77: 
                     78: #define        NBPW    sizeof(int)     /* number of bytes in an integer */
                     79: 
                     80: #define        UPAGES  6               /* pages of u-area */
                     81: #define        NULL    0
                     82: #define        CMASK   0               /* default mask for file creation */
                     83: #define        NODEV   (dev_t)(-1)
                     84: #define        ROOTINO ((ino_t)2)      /* i number of all roots */
                     85: #define        SUPERB  ((daddr_t)1)    /* block number of the super block */
                     86: #define        DIRSIZ  14              /* max characters per directory */
                     87: 
                     88: /*
                     89:  * Clustering of hardware pages on machines with ridiculously small
                     90:  * page sizes is done here.  The paging subsystem deals with units of
                     91:  * CLSIZE pte's describing NBPG (from vm.h) pages each... BSIZE must
                     92:  * be CLSIZE*NBPG in the current implementation, that is the paging subsystem
                     93:  * deals with the same size blocks that the file system uses.
                     94:  *
                     95:  * NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE
                     96:  */
                     97: #define        CLSIZE  2
                     98: 
                     99: /* give the base virtual address (first of CLSIZE) */
                    100: #define        clbase(i)       ((i) &~ (CLSIZE-1))
                    101: 
                    102: /* round a number of clicks up to a whole cluster */
                    103: #define        clrnd(i)        (((i) + (CLSIZE-1)) &~ (CLSIZE-1))
                    104: 
                    105: #if CLSIZE==1
                    106: #define        BSIZE   512             /* size of secondary block (bytes) */
                    107: #define        INOPB   8               /* 8 inodes per block */
                    108: #define        BMASK   0777            /* BSIZE-1 */
                    109: #define        BSHIFT  9               /* LOG2(BSIZE) */
                    110: #define        NMASK   0177            /* NINDIR-1 */
                    111: #define        NSHIFT  7               /* LOG2(NINDIR) */
                    112: #define        NICINOD 100             /* number of superblock inodes */
                    113: #define        NICFREE 50              /* number of superblock free blocks */
                    114: 
                    115: #endif
                    116: 
                    117: #if CLSIZE==2
                    118: #define        BSIZE   1024
                    119: #define        INOPB   16
                    120: #define        BMASK   01777
                    121: #define        BSHIFT  10
                    122: #define        NMASK   0377
                    123: #define        NSHIFT  8
                    124: #define        NICINOD 100
                    125: #define        NICFREE 178
                    126: #endif
                    127: 
                    128: #if CLSIZE==4
                    129: #define        BSIZE   2048
                    130: #define        INOPB   32
                    131: #define        BMASK   03777
                    132: #define        BSHIFT  11
                    133: #define        NMASK   0777
                    134: #define        NSHIFT  9
                    135: #define        NICINOD 100
                    136: #define        NICFREE 434
                    137: #endif
                    138: 
                    139: /* inumber to disk address and inumber to disk offset */
                    140: #define        itod(x) ((daddr_t)((((unsigned)(x)+2*INOPB-1)/INOPB)))
                    141: #define        itoo(x) ((int)(((x)+2*INOPB-1)%INOPB))
                    142: 
                    143: /* file system blocks to disk blocks and back */
                    144: #define        fsbtodb(b)      ((b)*CLSIZE)
                    145: #define        dbtofsb(b)      ((b)/CLSIZE)
                    146: 
                    147: /* BSLOP can be 0 unless you have a TIU/Spider */
                    148: #define        BSLOP   0               /* In case some device needs bigger buffers */
                    149: #define        NINDIR  (BSIZE/sizeof(daddr_t))
                    150: 
                    151: #define        CBSIZE  28              /* number of chars in a clist block */
                    152: #define        CROUND  0x1F            /* clist rounding; sizeof(int *) + CBSIZE -1*/
                    153: #define        CLKTICK (1000000/(HZ))  /* microseconds in a clock tick */
                    154: 
                    155: /*
                    156:  * Some macros for units conversion
                    157:  */
                    158: /* Core clicks (512 bytes) to segments and vice versa */
                    159: #define        ctos(x) (x)
                    160: #define        stoc(x) (x)
                    161: 
                    162: /* Core clicks (512 bytes) to disk blocks */
                    163: #define        ctod(x) (x)
                    164: 
                    165: /* clicks to bytes */
                    166: #define        ctob(x) ((x)<<9)
                    167: 
                    168: /* bytes to clicks */
                    169: #define        btoc(x) ((((unsigned)(x)+511)>>9))
                    170: 
                    171: /* major part of a device */
                    172: #define        major(x)        ((int)(((unsigned)(x)>>8)&0377))
                    173: 
                    174: /* minor part of a device */
                    175: #define        minor(x)        ((int)((x)&0377))
                    176: 
                    177: /* make a device number */
                    178: #define        makedev(x,y)    ((dev_t)(((x)<<8) | (y)))
                    179: 
                    180: typedef        struct { int r[1]; } *  physadr;
                    181: typedef        int             daddr_t;
                    182: typedef        char *          caddr_t;
                    183: typedef        unsigned short  ino_t;
                    184: typedef        int             swblk_t;
                    185: typedef        int             size_t;
                    186: typedef        int             time_t;
                    187: typedef        int             label_t[10];
                    188: typedef        short           dev_t;
                    189: typedef        int             off_t;
                    190: 
                    191: /*
                    192:  * Machine-dependent bits and macros
                    193:  */
                    194: #define        UMODE   PSL_CURMOD              /* usermode bits */
                    195: #define        USERMODE(ps)    (((ps) & UMODE) == UMODE)
                    196: 
                    197: #define        BASEPRI(ps)     (((ps) & PSL_IPL) != 0)
                    198: 
                    199: #ifdef KERNEL
                    200: #ifdef lint
                    201: int    __void__;
                    202: #define        VOID    __void__ = (int)
                    203: #else
                    204: #define        VOID
                    205: #endif
                    206: #endif

unix.superglobalmegacorp.com

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