1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
/*
* Copyright (c) 1982, 1986 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)param.h 7.1 (Berkeley) 6/4/86
*/
#define BSD 43 /* 4.3 * 10, as cpp doesn't do floats */
#define BSD4_3 1
#define NPTEPG (NBPG/(sizeof (struct pte)))
/*
* Machine-independent constants
*/
#define NMOUNT 20 /* number of mountable file systems */
/* NMOUNT must be <= 255 unless c_mdev (cmap.h) is expanded */
#define MSWAPX NMOUNT /* pseudo mount table index for swapdev */
#define MAXUPRC 40 /* max processes per user */
#define NOFILE 64 /* max open files per process */
#define CANBSIZ 256 /* max size of typewriter line */
#define NCARGS 20480 /* # characters in exec arglist */
#define NGROUPS 16 /* max number groups */
#define NOGROUP 65535 /* marker for empty group set member */
/*
* Priorities
*/
#define PSWP 0
#define PINOD 10
#define PRIBIO 20
#define PRIUBA 24
#define PZERO 25
#define PPIPE 26
#define PWAIT 30
#define PLOCK 35
#define PSLEP 40
#define PUSER 50
#define NZERO 0
#include <signal.h>
#define ISSIG(p) \
((p)->p_sig && ((p)->p_flag&STRC || \
((p)->p_sig &~ ((p)->p_sigignore | (p)->p_sigmask))) && issig())
#define NBPW sizeof(int) /* number of bytes in an integer */
#define NULL 0
#define CMASK 026 /* default mask for file creation */
/* was 022, changed 1/15/87 SMS */
#define NODEV (dev_t)(-1)
/*
* Clustering of hardware pages on machines with ridiculously small
* page sizes is done here. The paging subsystem deals with units of
* CLSIZE pte's describing NBPG (from vm.h) pages each.
*
* NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE
*/
#define CLBYTES (CLSIZE*NBPG)
#define CLOFSET (CLSIZE*NBPG-1) /* for clusters, like PGOFSET */
#define claligned(x) ((((int)(x))&CLOFSET)==0)
#define CLOFF CLOFSET
#define CLSHIFT (PGSHIFT+CLSIZELOG2)
#if CLSIZE==1
#define clbase(i) (i)
#define clrnd(i) (i)
#else
/* give the base virtual address (first of CLSIZE) */
#define clbase(i) ((i) &~ (CLSIZE-1))
/* round a number of clicks up to a whole cluster */
#define clrnd(i) (((i) + (CLSIZE-1)) &~ (CLSIZE-1))
#endif
/* CBLOCK is the size of a clist block, must be power of 2 */
#define CBLOCK 64
#define CBSIZE (CBLOCK - sizeof(struct cblock *)) /* data chars/clist */
#define CROUND (CBLOCK - 1) /* clist rounding */
#ifdef VMS
#include "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.
* Block devices are read in BLKDEV_IOSIZE units. This number must
* be a power of two and in the range of
* DEV_BSIZE <= BLKDEV_IOSIZE <= MAXBSIZE
* This size has no effect upon the file system, but is usually set
* to the block size of the root file system, so as to maximize the
* speed of ``fsck''.
*/
#define MAXBSIZE 8192
#define DEV_BSIZE 512
#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
#define BLKDEV_IOSIZE 2048
#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.
* This should be device dependent, and will be after we
* add an entry to cdevsw for that purpose. For now though
* just use DEV_BSIZE.
*/
#define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
/*
* MAXPATHLEN defines the longest permissable 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.
* 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 8
/*
* 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.
*/
#define MIN(a,b) (((a)<(b))?(a):(b))
#define MAX(a,b) (((a)>(b))?(a):(b))
/*
* Macros for counting and rounding.
*/
#ifndef howmany
#define howmany(x, y) (((x)+((y)-1))/(y))
#endif
#define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
/*
* Maximum size of hostname recognized and stored in the kernel.
*/
#define MAXHOSTNAMELEN 64
|