xref: /titanic_50/usr/src/lib/libbc/inc/include/sys/param.h (revision c77a61a72b5ecdc507d6cf104142edd371a16c84)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*
23  * Copyright 1989 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #pragma ident	"%Z%%M%	%I%	%E% SMI"
28 
29 #ifndef	__sys_param_h
30 #define	__sys_param_h
31 
32 /*
33  * Machine type dependent parameters.
34  */
35 #include <machine/param.h>
36 
37 #define	NPTEPG		(NBPG/(sizeof (struct pte)))
38 
39 /*
40  * Machine-independent constants
41  */
42 #define	NMOUNT	40		/* est. of # mountable fs for quota calc */
43 #define	MSWAPX	15		/* pseudo mount table index for swapdev */
44 #define	MAXUPRC	25		/* max processes per user */
45 #define	NOFILE	256		/* max open files per process */
46 #define	MAXPID	30000		/* max process id */
47 #define	MAXUID	0xfffd		/* max user id (from 60000)  */
48 #define	MAXLINK	32767		/* max links */
49 #define	CANBSIZ	256		/* max size of typewriter line */
50 #define	VDISABLE 0		/* use this to turn off c_cc[i] */
51 #define	PIPE_BUF 4096		/* pipe buffer size */
52 #ifndef	KERNEL
53 /*
54  * HZ defines the ticks/second for system calls, eg, times(), which
55  * return values just in ticks; but not for getrusage(), which returns
56  * values in ticks*pages.  HZ *must* be 60 for compatibility reasons.
57  */
58 #define	HZ	60
59 #endif
60 #define	NCARGS	0x100000	/* (absolute) max # characters in exec arglist */
61 /* If NGROUPS changes, change <sys/limits.h> NGROUPS_MAX at the same time. */
62 #define	NGROUPS	16		/* max number groups */
63 
64 #define	NOGROUP	-1		/* marker for empty group set member */
65 
66 #ifdef	KERNEL
67 /*
68  * Priorities
69  */
70 #define	PMASK	0177
71 #define	PCATCH	0400		/* return if sleep interrupted, don't longjmp */
72 #define	PSWP	0
73 #define	PINOD	10
74 #define	PAMAP	10
75 #define	PRIBIO	20
76 #define	PRIUBA	24
77 #define	PZERO	25
78 #define	PPIPE	26
79 #define	PVFS	27
80 #define	PWAIT	30
81 #define	PLOCK	35
82 #define	PSLEP	40
83 
84 #ifdef	VPIX
85 #define	PV86	41
86 #endif
87 
88 #define	PFLCK	42	/* File/Record lock */
89 
90 #define	PUSER	50
91 
92 #define	NZERO	20
93 #endif	/* KERNEL */
94 
95 /*
96  * Signals
97  */
98 #include <sys/signal.h>
99 
100 #define	ISSIG(p, flag) \
101 	((p)->p_sig && ((p)->p_flag&STRC || \
102 	 ((p)->p_sig &~ ((p)->p_sigignore | (p)->p_sigmask))) && issig(flag))
103 
104 #define	NBPW	sizeof (int)	/* number of bytes in an integer */
105 
106 #ifndef	NULL
107 #define	NULL	0
108 #endif
109 #define	CMASK	0		/* default mask for file creation */
110 #define	NODEV	(dev_t)(-1)
111 
112 #ifndef	INTRLVE
113 /* macros replacing interleaving functions */
114 #define	dkblock(bp)	((bp)->b_blkno)
115 #define	dkunit(bp)	(minor((bp)->b_dev) >> 3)
116 #endif
117 
118 #define	CBSIZE	28		/* number of chars in a clist block */
119 #define	CROUND	0x1F		/* clist rounding; sizeof (int *) + CBSIZE-1 */
120 
121 #if	!defined(LOCORE) || !defined(KERNEL)
122 #include <sys/types.h>
123 #endif
124 
125 /*
126  * File system parameters and macros.
127  *
128  * The file system is made out of blocks of at most MAXBSIZE units,
129  * with smaller units (fragments) only in the last direct block.
130  * MAXBSIZE primarily determines the size of buffers in the buffer
131  * pool. It may be made larger without any effect on existing
132  * file systems; however making it smaller make make some file
133  * systems unmountable.
134  *
135  * Note that the blocked devices are assumed to have DEV_BSIZE
136  * "sectors" and that fragments must be some multiple of this size.
137  */
138 #define	MAXBSIZE	8192
139 #define	DEV_BSIZE	512
140 #define	DEV_BSHIFT	9		/* log2(DEV_BSIZE) */
141 #define	MAXFRAG 	8
142 
143 #define	btodb(bytes)			/* calculates (bytes / DEV_BSIZE) */ \
144 	((unsigned)(bytes) >> DEV_BSHIFT)
145 #define	dbtob(db)			/* calculates (db * DEV_BSIZE) */ \
146 	((unsigned)(db) << DEV_BSHIFT)
147 
148 /*
149  * Map a ``block device block'' to a file system block.
150  * XXX - this is currently only being used for tape drives.
151  */
152 #define	BLKDEV_IOSIZE	2048
153 #define	bdbtofsb(bn)	((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
154 
155 /*
156  * MAXPATHLEN defines the longest permissable path length,
157  * including the terminating null, after expanding symbolic links.
158  * MAXSYMLINKS defines the maximum number of symbolic links
159  * that may be expanded in a path name. It should be set high
160  * enough to allow all legitimate uses, but halt infinite loops
161  * reasonably quickly.
162  */
163 #define	MAXPATHLEN	1024
164 #define	MAXSYMLINKS	20
165 
166 /*
167  * bit map related macros
168  */
169 #define	setbit(a,i)	((a)[(i)/NBBY] |= 1<<((i)%NBBY))
170 #define	clrbit(a,i)	((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
171 #define	isset(a,i)	((a)[(i)/NBBY] & (1<<((i)%NBBY)))
172 #define	isclr(a,i)	(((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
173 
174 /*
175  * Macros for fast min/max.
176  */
177 #ifndef	MIN
178 #define	MIN(a,b) (((a)<(b))?(a):(b))
179 #endif
180 #ifndef	MAX
181 #define	MAX(a,b) (((a)>(b))?(a):(b))
182 #endif
183 
184 /*
185  * Macros for counting and rounding.
186  */
187 #ifdef	sun386
188 #define	howmany(x, y)   ((((u_int)(x))+(((u_int)(y))-1))/((u_int)(y)))
189 #define	roundup(x, y)   ((((u_int)(x)+((u_int)(y)-1))/(u_int)(y))*(u_int)(y))
190 #else
191 #define	howmany(x, y)	(((x)+((y)-1))/(y))
192 #define	roundup(x, y)	((((x)+((y)-1))/(y))*(y))
193 #endif
194 
195 /*
196  * Scale factor for scaled integers used to count
197  * %cpu time and load averages.
198  */
199 #define	FSHIFT	8		/* bits to right of fixed binary point */
200 #define	FSCALE	(1<<FSHIFT)
201 
202 /*
203  * Maximum size of hostname recognized and stored in the kernel.
204  */
205 #define	MAXHOSTNAMELEN  64
206 
207 #endif	/* !__sys_param_h */
208