|
|
1.1 root 1: /*
2: * Copyright (c) 1982, 1986 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)param.h 7.1 (Berkeley) 6/4/86
7: */
8:
9: #define BSD 43 /* 4.3 * 10, as cpp doesn't do floats */
10: #define BSD4_3 1
11:
12: /*
13: * Machine type dependent parameters.
14: */
15: #ifdef KERNEL
16: #include "../machine/machparam.h"
17: #else
18: #include <machine/machparam.h>
19: #endif
20:
21: #define NPTEPG (NBPG/(sizeof (struct pte)))
22:
23: /*
24: * Machine-independent constants
25: */
26: #define NMOUNT 20 /* number of mountable file systems */
27: /* NMOUNT must be <= 255 unless c_mdev (cmap.h) is expanded */
28: #define MSWAPX NMOUNT /* pseudo mount table index for swapdev */
29: #define MAXUPRC 40 /* max processes per user */
30: #define NOFILE 64 /* max open files per process */
31: #define CANBSIZ 256 /* max size of typewriter line */
32: #define NCARGS 20480 /* # characters in exec arglist */
33: #define NGROUPS 16 /* max number groups */
34:
35: #define NOGROUP 65535 /* marker for empty group set member */
36:
37: /*
38: * Priorities
39: */
40: #define PSWP 0
41: #define PINOD 10
42: #define PRIBIO 20
43: #define PRIUBA 24
44: #define PZERO 25
45: #define PPIPE 26
46: #define PWAIT 30
47: #define PLOCK 35
48: #define PSLEP 40
49: #define PUSER 50
50:
51: #define NZERO 0
52:
53: /*
54: * Signals
55: */
56: #ifdef KERNEL
57: #include "signal.h"
58: #else
59: #include <signal.h>
60: #endif
61:
62: #define ISSIG(p) \
63: ((p)->p_sig && ((p)->p_flag&STRC || \
64: ((p)->p_sig &~ ((p)->p_sigignore | (p)->p_sigmask))) && issig())
65:
66: #define NBPW sizeof(int) /* number of bytes in an integer */
67:
68: #define NULL 0
69: #define CMASK 022 /* default mask for file creation */
70: #define NODEV (dev_t)(-1)
71:
72: /*
73: * Clustering of hardware pages on machines with ridiculously small
74: * page sizes is done here. The paging subsystem deals with units of
75: * CLSIZE pte's describing NBPG (from vm.h) pages each.
76: *
77: * NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE
78: */
79: #define CLBYTES (CLSIZE*NBPG)
80: #define CLOFSET (CLSIZE*NBPG-1) /* for clusters, like PGOFSET */
81: #define claligned(x) ((((int)(x))&CLOFSET)==0)
82: #define CLOFF CLOFSET
83: #define CLSHIFT (PGSHIFT+CLSIZELOG2)
84:
85: #if CLSIZE==1
86: #define clbase(i) (i)
87: #define clrnd(i) (i)
88: #else
89: /* give the base virtual address (first of CLSIZE) */
90: #define clbase(i) ((i) &~ (CLSIZE-1))
91: /* round a number of clicks up to a whole cluster */
92: #define clrnd(i) (((i) + (CLSIZE-1)) &~ (CLSIZE-1))
93: #endif
94:
95: /* CBLOCK is the size of a clist block, must be power of 2 */
96: #define CBLOCK 64
97: #define CBSIZE (CBLOCK - sizeof(struct cblock *)) /* data chars/clist */
98: #define CROUND (CBLOCK - 1) /* clist rounding */
99:
100: #ifndef KERNEL
101: #include <sys/types.h>
102: #else
103: #ifndef LOCORE
104: #include "types.h"
105: #endif
106: #endif
107:
108: /*
109: * File system parameters and macros.
110: *
111: * The file system is made out of blocks of at most MAXBSIZE units,
112: * with smaller units (fragments) only in the last direct block.
113: * MAXBSIZE primarily determines the size of buffers in the buffer
114: * pool. It may be made larger without any effect on existing
115: * file systems; however making it smaller make make some file
116: * systems unmountable.
117: *
118: * Note that the blocked devices are assumed to have DEV_BSIZE
119: * "sectors" and that fragments must be some multiple of this size.
120: * Block devices are read in BLKDEV_IOSIZE units. This number must
121: * be a power of two and in the range of
122: * DEV_BSIZE <= BLKDEV_IOSIZE <= MAXBSIZE
123: * This size has no effect upon the file system, but is usually set
124: * to the block size of the root file system, so as to maximize the
125: * speed of ``fsck''.
126: */
127: #define MAXBSIZE 8192
128: #define DEV_BSIZE 512
129: #define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
130: #define BLKDEV_IOSIZE 2048
131: #define MAXFRAG 8
132:
133: #define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \
134: ((unsigned)(bytes) >> DEV_BSHIFT)
135: #define dbtob(db) /* calculates (db * DEV_BSIZE) */ \
136: ((unsigned)(db) << DEV_BSHIFT)
137:
138: /*
139: * Map a ``block device block'' to a file system block.
140: * This should be device dependent, and will be after we
141: * add an entry to cdevsw for that purpose. For now though
142: * just use DEV_BSIZE.
143: */
144: #define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
145:
146: /*
147: * MAXPATHLEN defines the longest permissable path length
148: * after expanding symbolic links. It is used to allocate
149: * a temporary buffer from the buffer pool in which to do the
150: * name expansion, hence should be a power of two, and must
151: * be less than or equal to MAXBSIZE.
152: * MAXSYMLINKS defines the maximum number of symbolic links
153: * that may be expanded in a path name. It should be set high
154: * enough to allow all legitimate uses, but halt infinite loops
155: * reasonably quickly.
156: */
157: #define MAXPATHLEN 1024
158: #define MAXSYMLINKS 8
159:
160: /*
161: * bit map related macros
162: */
163: #define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
164: #define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
165: #define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
166: #define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
167:
168: /*
169: * Macros for fast min/max.
170: */
171: #define MIN(a,b) (((a)<(b))?(a):(b))
172: #define MAX(a,b) (((a)>(b))?(a):(b))
173:
174: /*
175: * Macros for counting and rounding.
176: */
177: #ifndef howmany
178: #define howmany(x, y) (((x)+((y)-1))/(y))
179: #endif
180: #define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
181:
182: /*
183: * Maximum size of hostname recognized and stored in the kernel.
184: */
185: #define MAXHOSTNAMELEN 64
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.