|
|
1.1 root 1: /* param.h 4.1 11/9/80 */
2:
3: /*
4: * tunable variables
5: *
6: * NB: NBUF must be less than MAXNBUF in locore.s.
7: */
8:
9: #define NBUF 128 /* size of buffer cache */
10: #define NINODE 400 /* number of in core inodes */
11: #define NFILE 350 /* number of in core file structures */
12: #define NMOUNT 15 /* number of mountable file systems */
13: #define MSWAPX 15 /* pseudo mount table index for swapdev */
14: #define MAXUPRC 25 /* max processes per user */
15: #define SSIZE 4 /* initial stack size (*512 bytes) */
16: #define SINCR 4 /* increment of stack (*512 bytes) */
17: #define NOFILE 20 /* max open files per process */
18: #define CANBSIZ 256 /* max size of typewriter line */
19: #define SMAPSIZ (4*NPROC) /* size of swap allocation area */
20: #define NCALL 40 /* max simultaneous time callouts */
21: #define NPROC 250 /* max number of processes */
22: #define NTEXT 60 /* max number of pure texts */
23: #define NCLIST 500 /* max total clist size */
24: #define HZ 60 /* Ticks/second of the clock */
25: #define TIMEZONE (8*60) /* Minutes westward from Greenwich */
26: #define DSTFLAG 1 /* Daylight Saving Time applies in this locality */
27: #define MSGBUFS 128 /* Characters saved from error messages */
28: #define NCARGS 10240 /* # characters in exec arglist */
29: /*
30: * priorities
31: * probably should not be
32: * altered too much
33: */
34:
35: #define PSWP 0
36: #define PINOD 10
37: #define PRIBIO 20
38: #define PRIUBA 24
39: #define PZERO 25
40: #define PPIPE 26
41: #define PWAIT 30
42: #define PSLEP 40
43: #define PUSER 50
44:
45: #define NZERO 20
46:
47: /*
48: * signals
49: * dont change
50: */
51:
52: #ifndef NSIG
53: #include <signal.h>
54: #endif
55:
56: /*
57: * Return values from tsleep().
58: */
59: #define TS_OK 0 /* normal wakeup */
60: #define TS_TIME 1 /* timed-out wakeup */
61: #define TS_SIG 2 /* asynchronous signal wakeup */
62:
63: /*
64: * fundamental constants of the implementation--
65: * cannot be changed easily.
66: * note: UPAGES is well known in locore.s
67: */
68:
69: #define NBPW sizeof(int) /* number of bytes in an integer */
70:
71: #define UPAGES 6 /* pages of u-area */
72: #define NULL 0
73: #define CMASK 0 /* default mask for file creation */
74: #define NODEV (dev_t)(-1)
75: #define ROOTINO ((ino_t)2) /* i number of all roots */
76: #define SUPERB ((daddr_t)1) /* block number of the super block */
77: #define DIRSIZ 14 /* max characters per directory */
78:
79: /*
80: * Clustering of hardware pages on machines with ridiculously small
81: * page sizes is done here. The paging subsystem deals with units of
82: * CLSIZE pte's describing NBPG (from vm.h) pages each... BSIZE must
83: * be CLSIZE*NBPG in the current implementation, that is the paging subsystem
84: * deals with the same size blocks that the file system uses.
85: *
86: * NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE
87: *
88: * NB: CLSIZE is well known in locore.s.
89: */
90: #define CLSIZE 2
91:
92: /* give the base virtual address (first of CLSIZE) */
93: #define clbase(i) ((i) &~ (CLSIZE-1))
94:
95: /* round a number of clicks up to a whole cluster */
96: #define clrnd(i) (((i) + (CLSIZE-1)) &~ (CLSIZE-1))
97:
98: #if CLSIZE==1
99: #define BSIZE 512 /* size of secondary block (bytes) */
100: #define INOPB 8 /* 8 inodes per block */
101: #define BMASK 0777 /* BSIZE-1 */
102: #define BSHIFT 9 /* LOG2(BSIZE) */
103: #define NMASK 0177 /* NINDIR-1 */
104: #define NSHIFT 7 /* LOG2(NINDIR) */
105: #define NICINOD 100 /* number of superblock inodes */
106: #define NICFREE 50 /* number of superblock free blocks */
107:
108: #endif
109:
110: #if CLSIZE==2
111: #define BSIZE 1024
112: #define INOPB 16
113: #define BMASK 01777
114: #define BSHIFT 10
115: #define NMASK 0377
116: #define NSHIFT 8
117: #define NICINOD 100
118: #define NICFREE 178
119: #endif
120:
121: #if CLSIZE==4
122: #define BSIZE 2048
123: #define INOPB 32
124: #define BMASK 03777
125: #define BSHIFT 11
126: #define NMASK 0777
127: #define NSHIFT 9
128: #define NICINOD 100
129: #define NICFREE 434
130: #endif
131:
132: #ifndef INTRLVE
133: /* macros replacing interleaving functions */
134: #define dkblock(bp) ((bp)->b_blkno)
135: #define dkunit(bp) (minor((bp)->b_dev) >> 3)
136: #endif
137:
138: /* inumber to disk address and inumber to disk offset */
139: #define itod(x) ((daddr_t)((((unsigned)(x)+2*INOPB-1)/INOPB)))
140: #define itoo(x) ((int)(((x)+2*INOPB-1)%INOPB))
141:
142: /* file system blocks to disk blocks and back */
143: #define fsbtodb(b) ((b)*CLSIZE)
144: #define dbtofsb(b) ((b)/CLSIZE)
145:
146: #define NINDIR (BSIZE/sizeof(daddr_t))
147:
148: #define CBSIZE 28 /* number of chars in a clist block */
149: #define CROUND 0x1F /* clist rounding; sizeof(int *) + CBSIZE -1*/
150: #define CLKTICK (1000000/(HZ)) /* microseconds in a clock tick */
151:
152: /*
153: * Macros for fast min/max
154: */
155: #define MIN(a,b) (((a)<(b))?(a):(b))
156: #define MAX(a,b) (((a)>(b))?(a):(b))
157:
158: /*
159: * Some macros for units conversion
160: */
161: /* Core clicks (512 bytes) to segments and vice versa */
162: #define ctos(x) (x)
163: #define stoc(x) (x)
164:
165: /* Core clicks (512 bytes) to disk blocks */
166: #define ctod(x) (x)
167:
168: /* clicks to bytes */
169: #define ctob(x) ((x)<<9)
170:
171: /* bytes to clicks */
172: #define btoc(x) ((((unsigned)(x)+511)>>9))
173:
174: /* major part of a device */
175: #define major(x) ((int)(((unsigned)(x)>>8)&0377))
176:
177: /* minor part of a device */
178: #define minor(x) ((int)((x)&0377))
179:
180: /* make a device number */
181: #define makedev(x,y) ((dev_t)(((x)<<8) | (y)))
182:
183: typedef struct { int r[1]; } * physadr;
184: typedef int daddr_t;
185: typedef char * caddr_t;
186: typedef unsigned short ino_t;
187: typedef int swblk_t;
188: typedef int size_t;
189: typedef int time_t;
190: typedef int label_t[14];
191: typedef short dev_t;
192: typedef int off_t;
193:
194: typedef unsigned char u_char;
195: typedef unsigned short u_short;
196: typedef unsigned int u_int;
197: typedef unsigned long u_long;
198:
199: /*
200: * Machine-dependent bits and macros
201: */
202: #define UMODE PSL_CURMOD /* usermode bits */
203: #define USERMODE(ps) (((ps) & UMODE) == UMODE)
204:
205: #define BASEPRI(ps) (((ps) & PSL_IPL) != 0)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.