|
|
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.