%H%->%G%
[unix-history] / usr / src / sys / sys / param.h
CommitLineData
f86df66c 1/* param.h 3.6 %G% */
eb401bce
BJ
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 250 /* number of in core inodes */
11#define NFILE 225 /* 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 150 /* 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
92808ee4
BJ
51#ifndef NSIG
52#include <signal.h>
53#endif
31037142
BJ
54
55/*
56 * Return values from tsleep().
57 */
58#define TS_OK 0 /* normal wakeup */
59#define TS_TIME 1 /* timed-out wakeup */
60#define TS_SIG 2 /* asynchronous signal wakeup */
eb401bce
BJ
61
62/*
63 * fundamental constants of the implementation--
64 * cannot be changed easily.
65 * note: UPAGES is well known in locore.s
66 */
67
68#define NBPW sizeof(int) /* number of bytes in an integer */
69
70#define UPAGES 6 /* pages of u-area */
71#define NULL 0
72#define CMASK 0 /* default mask for file creation */
73#define NODEV (dev_t)(-1)
74#define ROOTINO ((ino_t)2) /* i number of all roots */
75#define SUPERB ((daddr_t)1) /* block number of the super block */
76#define DIRSIZ 14 /* max characters per directory */
77
78/*
79 * Clustering of hardware pages on machines with ridiculously small
80 * page sizes is done here. The paging subsystem deals with units of
81 * CLSIZE pte's describing NBPG (from vm.h) pages each... BSIZE must
82 * be CLSIZE*NBPG in the current implementation, that is the paging subsystem
83 * deals with the same size blocks that the file system uses.
84 *
85 * NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE
86 *
87 * NB: CLSIZE is well known in locore.s.
88 */
89#define CLSIZE 2
90
91/* give the base virtual address (first of CLSIZE) */
92#define clbase(i) ((i) &~ (CLSIZE-1))
93
94/* round a number of clicks up to a whole cluster */
95#define clrnd(i) (((i) + (CLSIZE-1)) &~ (CLSIZE-1))
96
97#if CLSIZE==1
98#define BSIZE 512 /* size of secondary block (bytes) */
99#define INOPB 8 /* 8 inodes per block */
100#define BMASK 0777 /* BSIZE-1 */
101#define BSHIFT 9 /* LOG2(BSIZE) */
102#define NMASK 0177 /* NINDIR-1 */
103#define NSHIFT 7 /* LOG2(NINDIR) */
104#define NICINOD 100 /* number of superblock inodes */
105#define NICFREE 50 /* number of superblock free blocks */
106
107#endif
108
109#if CLSIZE==2
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#if CLSIZE==4
121#define BSIZE 2048
122#define INOPB 32
123#define BMASK 03777
124#define BSHIFT 11
125#define NMASK 0777
126#define NSHIFT 9
127#define NICINOD 100
128#define NICFREE 434
129#endif
130
131#ifndef INTRLVE
132/* macros replacing interleaving functions */
133#define dkblock(bp) ((bp)->b_blkno)
134#define dkunit(bp) (minor((bp)->b_dev) >> 3)
135#endif
136
137/* inumber to disk address and inumber to disk offset */
138#define itod(x) ((daddr_t)((((unsigned)(x)+2*INOPB-1)/INOPB)))
139#define itoo(x) ((int)(((x)+2*INOPB-1)%INOPB))
140
141/* file system blocks to disk blocks and back */
142#define fsbtodb(b) ((b)*CLSIZE)
143#define dbtofsb(b) ((b)/CLSIZE)
144
eb401bce
BJ
145#define NINDIR (BSIZE/sizeof(daddr_t))
146
147#define CBSIZE 28 /* number of chars in a clist block */
148#define CROUND 0x1F /* clist rounding; sizeof(int *) + CBSIZE -1*/
149#define CLKTICK (1000000/(HZ)) /* microseconds in a clock tick */
150
151/*
152 * Macros for fast min/max
153 */
154#define MIN(a,b) (((a)<(b))?(a):(b))
155#define MAX(a,b) (((a)>(b))?(a):(b))
156
157/*
158 * Some macros for units conversion
159 */
160/* Core clicks (512 bytes) to segments and vice versa */
161#define ctos(x) (x)
162#define stoc(x) (x)
163
164/* Core clicks (512 bytes) to disk blocks */
165#define ctod(x) (x)
166
167/* clicks to bytes */
168#define ctob(x) ((x)<<9)
169
170/* bytes to clicks */
171#define btoc(x) ((((unsigned)(x)+511)>>9))
172
173/* major part of a device */
174#define major(x) ((int)(((unsigned)(x)>>8)&0377))
175
176/* minor part of a device */
177#define minor(x) ((int)((x)&0377))
178
179/* make a device number */
180#define makedev(x,y) ((dev_t)(((x)<<8) | (y)))
181
182typedef struct { int r[1]; } * physadr;
183typedef int daddr_t;
184typedef char * caddr_t;
185typedef unsigned short ino_t;
186typedef int swblk_t;
187typedef int size_t;
188typedef int time_t;
189typedef int label_t[14];
190typedef short dev_t;
191typedef int off_t;
192
193/*
194 * Machine-dependent bits and macros
195 */
196#define UMODE PSL_CURMOD /* usermode bits */
197#define USERMODE(ps) (((ps) & UMODE) == UMODE)
198
199#define BASEPRI(ps) (((ps) & PSL_IPL) != 0)