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