/** @file ../include/sys/param.h
@internalComponent
*/

/** @def NOFILE

max open files per process

@publishedAll
@externallyDefinedApi
*/


/** @def MAXCOMLEN	

max command name remembered

@publishedAll
@externallyDefinedApi
*/


/** @def MAXINTERP	

max interpreter file name length

@publishedAll
@externallyDefinedApi
*/

/** @def MAXLOGNAME	

max login name length (incl. NUL)

@publishedAll
@externallyDefinedApi
*/

/** @def MAXUPRC	

max simultaneous processes
	
@publishedAll
@externallyDefinedApi
*/


/** @def NCARGS		

max bytes for an exec function

@publishedAll
@externallyDefinedApi
*/

/** @def NGROUPS	

max number groups
	
@publishedAll
@externallyDefinedApi
*/


/** @def NOFILE	

max open files per process
	
@publishedAll
@externallyDefinedApi
*/


/** @def NOGROUP		

marker for empty group set member

@publishedAll
@externallyDefinedApi
*/

/** @def MAXHOSTNAMELEN	

max hostname size

@publishedAll
@externallyDefinedApi
*/

/** @def SPECNAMELEN	

max length of devicename 

@publishedAll
@externallyDefinedApi
*/

/** @def DEV_BSHIFT	

log2(DEV_BSIZE)

@publishedAll
@externallyDefinedApi
*/

/** @def DEV_BSIZE

(1<<DEV_BSHIFT)

@publishedAll
@externallyDefinedApi
*/

/** @def BLKDEV_IOSIZE  

default block device I/O size

@publishedAll
@externallyDefinedApi
*/

/** @def DFLTPHYS	

default max raw IO transfer size

@publishedAll
@externallyDefinedApi
*/

/** @def MAXPHYS

max raw IO transfer size
		
@publishedAll
@externallyDefinedApi
*/

/** @def MAXDUMPPGS	

(DFLTPHYS by PAGE_SIZE)

@publishedAll
@externallyDefinedApi
*/


/** @def MSIZE		

size of an mbuf 

@publishedAll
@externallyDefinedApi
*/

/** @def ctob(x)	

clicks to bytes

@publishedAll
@externallyDefinedApi
*/


/** @def btoc(x)

bytes to clicks

@publishedAll
@externallyDefinedApi
*/

/** @def btodb(bytes)

calculates (bytes by DEV_BSIZE)

@publishedAll
@externallyDefinedApi
*/

/** @def dbtob(db)

calculates (db)(DEV_BSIZE)

@publishedAll
@externallyDefinedApi
*/


/** @def PRIMASK	

Primary mask

@publishedAll
@externallyDefinedApi
*/

/** @def PCATCH	

ORd with pri for tsleep to check signals

@publishedAll
@externallyDefinedApi
*/

/** @def PDROP	

ORd with pri to stop re-entry of interlock mutex 

@publishedAll
@externallyDefinedApi
*/
 

/** @def NZERO	

default "nice"

@publishedAll
@externallyDefinedApi
*/


/** @def NBBY	

number of bits in a byte

@publishedAll
@externallyDefinedApi
*/


/** @def NBPW	

number of bytes per word (integer)

@publishedAll
@externallyDefinedApi
*/


/** @def CMASK	

default file mask: S_IWGRP OR S_IWOTH

@publishedAll
@externallyDefinedApi
*/


/** @def NODEV	

non-existent device

@publishedAll
@externallyDefinedApi
*/


/** @def CBLOCK	

Clist block size, must be a power of 2.

@publishedAll
@externallyDefinedApi
*/



/** @def CBQSIZE

Quote bytes or cblock 
	
@publishedAll
@externallyDefinedApi
*/

/** @def CBSIZE	

Data chars or clist

@publishedAll
@externallyDefinedApi
*/


/** @def CROUND	

Clist rounding.

@publishedAll
@externallyDefinedApi
*/

/** @def MAXBSIZE

Filesystems are made out of blocks of at most MAXBSIZE bytes per block.  
MAXBSIZE may be made larger without effecting any existing filesystems as long as it does not exceed MAXPHYS, and may be made smaller at the risk of not being able to use filesystems which require a block size exceeding MAXBSIZE.
	
@publishedAll
@externallyDefinedApi
*/

/** @def BKVASIZE	

Nominal buffer space per buffer, in bytes.  BKVASIZE is the minimum KVM memory reservation the kernel is willing to make.
Filesystems can of course request smaller chunks.  Actual  backing memory uses a chunk size of a page (PAGE_SIZE).

@publishedAll
@externallyDefinedApi
*/

/** @def BKVAMASK

File system parameter and macros
	
@publishedAll
@externallyDefinedApi
*/


/** @def MAXPATHLEN	

MAXPATHLEN defines the longest permissible path length after expanding symbolic links. 
It is used to allocate a temporary buffer from the buffer pool in which to do the name expansion, hence should be a power of two,and must be less than or equal to MAXBSIZE.  

@publishedAll
@externallyDefinedApi
*/

/** @def MAXSYMLINKS	

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.

@publishedAll
@externallyDefinedApi
*/

/** @def howmany(x, y)

Macros for counting and rounding.

@publishedAll
@externallyDefinedApi
*/


/** @def rounddown(x, y)

Macros for counting and rounding.

@publishedAll
@released
*/

/** @def roundup(x, y)

Macros for counting and rounding.

@publishedAll
@released
*/


/** @def roundup2(x, y)

Macros for counting and rounding.

@publishedAll
@released
*/


/** @def powerof2(x)	

Macros for counting and rounding.

@publishedAll
@externallyDefinedApi
*/


/** @def MIN(a,b)

Macros for min or max.

@publishedAll
@externallyDefinedApi
*/


/** @def MAX(a,b) 

Macros for min or max.

@publishedAll
@externallyDefinedApi
*/



/** @def MINBUCKET	

min allocation of 32 bytes or 16 bytes

@publishedAll
@externallyDefinedApi
*/


/** @def MAXALLOCSAVE	

(2)(PAGE_SIZE)

@publishedAll
@externallyDefinedApi
*/

/** @def FSHIFT

bits to right of fixed binary point

@publishedAll
@externallyDefinedApi
*/

/** @def FSCALE

bits to right 1 shift

@publishedAll
@externallyDefinedApi
*/





