182 lines
4.8 KiB
C
Executable File
182 lines
4.8 KiB
C
Executable File
/* @(#)param.h 2.40 90/03/30 SMI; from UCB 4.35 83/06/10 */
|
|
|
|
#ifndef __sys_param_h
|
|
#define __sys_param_h
|
|
|
|
/*
|
|
* Machine type dependent parameters.
|
|
*/
|
|
#include <machine/param.h>
|
|
|
|
#define NPTEPG (NBPG/(sizeof (struct pte)))
|
|
|
|
/*
|
|
* Machine-independent constants
|
|
*/
|
|
#define NMOUNT 40 /* est. of # mountable fs for quota calc */
|
|
#define MSWAPX 15 /* pseudo mount table index for swapdev */
|
|
#define MAXUPRC 25 /* max processes per user */
|
|
#define NOFILE 256 /* max open files per process */
|
|
#define MAXPID 30000 /* max process id */
|
|
#define MAXUID 0xfffd /* max user id (from 60000) */
|
|
#define MAXLINK 32767 /* max links */
|
|
#define CANBSIZ 256 /* max size of typewriter line */
|
|
#define VDISABLE 0 /* use this to turn off c_cc[i] */
|
|
#define PIPE_BUF 4096 /* pipe buffer size */
|
|
#ifndef KERNEL
|
|
/*
|
|
* HZ defines the ticks/second for system calls, eg, times(), which
|
|
* return values just in ticks; but not for getrusage(), which returns
|
|
* values in ticks*pages. HZ *must* be 60 for compatibility reasons.
|
|
*/
|
|
#define HZ 60
|
|
#endif
|
|
#define NCARGS 0x100000 /* (absolute) max # characters in exec arglist */
|
|
/* If NGROUPS changes, change <sys/limits.h> NGROUPS_MAX at the same time. */
|
|
#define NGROUPS 16 /* max number groups */
|
|
|
|
#define NOGROUP -1 /* marker for empty group set member */
|
|
|
|
#ifdef KERNEL
|
|
/*
|
|
* Priorities
|
|
*/
|
|
#define PMASK 0177
|
|
#define PCATCH 0400 /* return if sleep interrupted, don't longjmp */
|
|
#define PSWP 0
|
|
#define PINOD 10
|
|
#define PAMAP 10
|
|
#define PRIBIO 20
|
|
#define PRIUBA 24
|
|
#define PZERO 25
|
|
#define PPIPE 26
|
|
#define PVFS 27
|
|
#define PWAIT 30
|
|
#define PLOCK 35
|
|
#define PSLEP 40
|
|
|
|
#ifdef VPIX
|
|
#define PV86 41
|
|
#endif
|
|
|
|
#define PFLCK 42 /* File/Record lock */
|
|
|
|
#define PUSER 50
|
|
|
|
#define NZERO 20
|
|
#endif /* KERNEL */
|
|
|
|
/*
|
|
* Signals
|
|
*/
|
|
#include <sys/signal.h>
|
|
|
|
#define ISSIG(p, flag) \
|
|
((p)->p_sig && ((p)->p_flag&STRC || \
|
|
((p)->p_sig &~ ((p)->p_sigignore | (p)->p_sigmask))) && issig(flag))
|
|
|
|
#define NBPW sizeof (int) /* number of bytes in an integer */
|
|
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
#define CMASK 0 /* default mask for file creation */
|
|
#define NODEV (dev_t)(-1)
|
|
|
|
#ifndef INTRLVE
|
|
/* macros replacing interleaving functions */
|
|
#define dkblock(bp) ((bp)->b_blkno)
|
|
#define dkunit(bp) (minor((bp)->b_dev) >> 3)
|
|
#endif
|
|
|
|
#define CBSIZE 28 /* number of chars in a clist block */
|
|
#define CROUND 0x1F /* clist rounding; sizeof (int *) + CBSIZE-1 */
|
|
|
|
#if !defined(LOCORE) || !defined(KERNEL)
|
|
#include <sys/types.h>
|
|
#endif
|
|
|
|
/*
|
|
* File system parameters and macros.
|
|
*
|
|
* The file system is made out of blocks of at most MAXBSIZE units,
|
|
* with smaller units (fragments) only in the last direct block.
|
|
* MAXBSIZE primarily determines the size of buffers in the buffer
|
|
* pool. It may be made larger without any effect on existing
|
|
* file systems; however making it smaller make make some file
|
|
* systems unmountable.
|
|
*
|
|
* Note that the blocked devices are assumed to have DEV_BSIZE
|
|
* "sectors" and that fragments must be some multiple of this size.
|
|
*/
|
|
#define MAXBSIZE 8192
|
|
#define DEV_BSIZE 512
|
|
#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
|
|
#define MAXFRAG 8
|
|
|
|
#define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \
|
|
((unsigned)(bytes) >> DEV_BSHIFT)
|
|
#define dbtob(db) /* calculates (db * DEV_BSIZE) */ \
|
|
((unsigned)(db) << DEV_BSHIFT)
|
|
|
|
/*
|
|
* Map a ``block device block'' to a file system block.
|
|
* XXX - this is currently only being used for tape drives.
|
|
*/
|
|
#define BLKDEV_IOSIZE 2048
|
|
#define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
|
|
|
|
/*
|
|
* MAXPATHLEN defines the longest permissable path length,
|
|
* including the terminating null, after expanding symbolic links.
|
|
* MAXSYMLINKS defines the maximum number of symbolic links
|
|
* that may be expanded in a path name. It should be set high
|
|
* enough to allow all legitimate uses, but halt infinite loops
|
|
* reasonably quickly.
|
|
*/
|
|
#define MAXPATHLEN 1024
|
|
#define MAXSYMLINKS 20
|
|
|
|
/*
|
|
* bit map related macros
|
|
*/
|
|
#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
|
|
#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
|
|
#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
|
|
#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
|
|
|
|
/*
|
|
* Macros for fast min/max.
|
|
*/
|
|
#ifndef MIN
|
|
#define MIN(a,b) (((a)<(b))?(a):(b))
|
|
#endif
|
|
#ifndef MAX
|
|
#define MAX(a,b) (((a)>(b))?(a):(b))
|
|
#endif
|
|
|
|
/*
|
|
* Macros for counting and rounding.
|
|
*/
|
|
#ifdef sun386
|
|
#define howmany(x, y) ((((u_int)(x))+(((u_int)(y))-1))/((u_int)(y)))
|
|
#define roundup(x, y) ((((u_int)(x)+((u_int)(y)-1))/(u_int)(y))*(u_int)(y))
|
|
#else
|
|
#define howmany(x, y) (((x)+((y)-1))/(y))
|
|
#define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
|
|
#endif
|
|
|
|
/*
|
|
* Scale factor for scaled integers used to count
|
|
* %cpu time and load averages.
|
|
*/
|
|
#define FSHIFT 8 /* bits to right of fixed binary point */
|
|
#define FSCALE (1<<FSHIFT)
|
|
|
|
/*
|
|
* Maximum size of hostname recognized and stored in the kernel.
|
|
*/
|
|
#define MAXHOSTNAMELEN 64
|
|
|
|
#endif /* !__sys_param_h */
|