/* @(#)param.h 1.2 */ /* * fundamental variables * don't change too often */ #define NOFILE 20 /* max open files per process */ #define MAXPID 30000 /* max process id */ #define MAXUID 60000 /* max user id */ #define MAXLINK 1000 /* max links */ #define MAXMEM (64*32) /* max core per process */ #define SSIZE 12 /* initial stack size (*64 bytes) */ #define SINCR 12 /* increment of stack (*64 bytes) */ #define USIZE 16 /* size of user block (*64 bytes) */ #define USRSTACK 0 /* Start of user stack */ #define NSWB 3 /* size of swap pool */ #define CANBSIZ 256 /* max size of typewriter line */ #define HZ 60 /* Ticks/second of the clock */ #define NCARGS 5120 /* # characters in exec arglist */ /* * priorities * should not be altered too much */ #define PMASK 0177 #define PCATCH 0400 #define PSWP 0 #define PINOD 10 #define PRIBIO 20 #define PZERO 25 #define NZERO 20 #define PPIPE 26 #define PWAIT 30 #define PSLEP 39 #define PUSER 60 #define PIDLE 127 /* * fundamental constants of the implementation-- * cannot be changed easily */ #define NBPW sizeof(int) /* number of bytes in an integer */ #ifndef FsTYPE #define FsTYPE 1 #endif #if FsTYPE==1 /* Original 512 byte file system */ #define BSIZE 512 /* size of file system block (bytes) */ #define SBUFSIZE BSIZE /* system buffer size */ #define BSHIFT 9 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 0777 /* BSIZE-1 */ #define INOPB 8 /* inodes per block */ #define INOSHIFT 3 /* LOG2(INOPB) if exact */ #define NMASK 0177 /* NINDIR-1 */ #define NSHIFT 7 /* LOG2(NINDIR) */ #define FsBSIZE(dev) BSIZE #define FsBSHIFT(dev) BSHIFT #define FsNINDIR(dev) NINDIR #define FsBMASK(dev) BMASK #define FsINOPB(dev) INOPB #define FsLTOP(dev, b) b #define FsPTOL(dev, b) b #define FsNMASK(dev) NMASK #define FsNSHIFT(dev) NSHIFT #define FsITOD(dev, x) itod(x) #define FsITOO(dev, x) itoo(x) #endif #if FsTYPE==2 /* New 1024 byte file system */ #define BSIZE 1024 /* size of file system block (bytes) */ #define SBUFSIZE BSIZE /* system buffer size */ #define BSHIFT 10 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 01777 /* BSIZE-1 */ #define INOPB 16 /* inodes per block */ #define INOSHIFT 4 /* LOG2(INOPB) if exact */ #define NMASK 0377 /* NINDIR-1 */ #define NSHIFT 8 /* LOG2(NINDIR) */ #define FsBSIZE(dev) BSIZE #define FsBSHIFT(dev) BSHIFT #define FsNINDIR(dev) NINDIR #define FsBMASK(dev) BMASK #define FsINOPB(dev) INOPB #define FsLTOP(dev, b) (b<<1) #define FsPTOL(dev, b) (b>>1) #define FsNMASK(dev) NMASK #define FsNSHIFT(dev) NSHIFT #define FsITOD(dev, x) itod(x) #define FsITOO(dev, x) itoo(x) #endif #if FsTYPE==3 /* Dual system */ #define BSIZE 512 /* size of file system block (bytes) */ #define SBUFSIZE (BSIZE*2) /* system buffer size */ #define BSHIFT 9 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 0777 /* BSIZE-1 */ #define INOPB 8 /* inodes per block */ #define INOSHIFT 3 /* LOG2(INOPB) if exact */ #define NMASK 0177 /* NINDIR-1 */ #define NSHIFT 7 /* LOG2(NINDIR) */ #define Fs2BLK 0x2000 #define FsLRG(dev) (dev&Fs2BLK) #define FsBSIZE(dev) (FsLRG(dev) ? (BSIZE*2) : BSIZE) #define FsBSHIFT(dev) (FsLRG(dev) ? 10 : 9) #define FsNINDIR(dev) (FsLRG(dev) ? 256 : 128) #define FsBMASK(dev) (FsLRG(dev) ? 01777 : 0777) #define FsBOFF(dev, x) (FsLRG(dev) ? ((x)&01777) : ((x)&0777)) #define FsBNO(dev, x) (FsLRG(dev) ? ((x)>>10) : ((x)>>9)) #define FsINOPB(dev) (FsLRG(dev) ? 16 : 8) #define FsLTOP(dev, b) (FsLRG(dev) ? b<<1 : b) #define FsPTOL(dev, b) (FsLRG(dev) ? b>>1 : b) #define FsNMASK(dev) (FsLRG(dev) ? 0377 : 0177) #define FsNSHIFT(dev) (FsLRG(dev) ? 8 : 7) #define FsITOD(dev, x) (daddr_t)(FsLRG(dev) ? \ ((unsigned)x+(2*16-1))>>4 : ((unsigned)x+(2*8-1))>>3) #define FsITOO(dev, x) (daddr_t)(FsLRG(dev) ? \ ((unsigned)x+(2*16-1))&017 : ((unsigned)x+(2*8-1))&07) #define FsINOS(dev, x) (FsLRG(dev) ? \ ((x&~017)+1) : ((x&~07)+1)) #endif #define NICFREE 50 /* number of superblock free blocks */ #define NCPS 128 /* Number of clicks per segment */ #define NBPC 64 /* Number of bytes per click */ #define NCPD 8 /* Number of clicks per disk block */ #define BPCSHIFT 6 /* LOG2(NBPC) if exact */ #define NULL 0 #define CMASK 0 /* default mask for file creation */ #define CDLIMIT (1L<<11) /* default max write address */ #define NODEV (dev_t)(-1) #define ROOTINO ((ino_t)2) /* i number of all roots */ #define SUPERB ((daddr_t)1) /* physical block number of the super block */ #define SUPERBOFF 512 /* byte offset of the super block */ #define DIRSIZ 14 /* max characters per directory */ #define NICINOD 100 /* number of superblock inodes */ #define CLKTICK 16667 /* microseconds in a clock tick */ #define UMODE PS_CUR /* usermode bits */ #define USERMODE(ps) ((ps & UMODE) == UMODE) #define BASEPRI(ps) ((ps & PS_IPL) != 0) #define lobyte(X) (((char *)&X)[0]) #define hibyte(X) (((char *)&X)[1]) #define loword(X) (((ushort *)&X)[1]) #define hiword(X) (((ushort *)&X)[0])