|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.