update for new VM
[unix-history] / usr / src / sys / conf / param.c
index bac56bb..bb61aa6 100644 (file)
@@ -1,20 +1,35 @@
-/*     param.c 4.18    83/07/21        */
+/*
+ * Copyright (c) 1980, 1986, 1989 Regents of the University of California.
+ * All rights reserved.
+ *
+ * %sccs.include.redist.c%
+ *
+ *     @(#)param.c     7.15 (Berkeley) %G%
+ */
+
+#ifndef lint
+char copyright[] =
+"@(#) Copyright (c) 1980, 1986, 1989 Regents of the University of California.\n\
+ All rights reserved.\n";
+#endif not lint
+
+#include "../sys/param.h"
+#include "../sys/systm.h"
+#include "../sys/socket.h"
+#include "../sys/user.h"
+#include "../sys/proc.h"
+#include "../sys/vnode.h"
+#include "../sys/file.h"
+#include "../sys/callout.h"
+#include "../sys/clist.h"
+#include "../sys/mbuf.h"
+#include "../ufs/quota.h"
+#include "../sys/kernel.h"
+#ifdef SYSVSHM
+#include "machine/vmparam.h"
+#include "../sys/shm.h"
+#endif
 
 
-#include "../h/param.h"
-#include "../h/systm.h"
-#include "../h/socket.h"
-#include "../h/dir.h"
-#include "../h/user.h"
-#include "../h/proc.h"
-#include "../h/text.h"
-#include "../h/inode.h"
-#include "../h/file.h"
-#include "../h/callout.h"
-#include "../h/clist.h"
-#include "../h/cmap.h"
-#include "../h/mbuf.h"
-#include "../h/quota.h"
-#include "../h/kernel.h"
 /*
  * System parameter formulae.
  *
 /*
  * System parameter formulae.
  *
  * Compiled with -DHZ=xx -DTIMEZONE=x -DDST=x -DMAXUSERS=xx
  */
 
  * Compiled with -DHZ=xx -DTIMEZONE=x -DDST=x -DMAXUSERS=xx
  */
 
+#ifndef HZ
 #define        HZ 100
 #define        HZ 100
+#endif
 int    hz = HZ;
 int    tick = 1000000 / HZ;
 int    hz = HZ;
 int    tick = 1000000 / HZ;
+int    tickadj = 240000 / (60 * HZ);           /* can adjust 240ms in 60s */
 struct timezone tz = { TIMEZONE, DST };
 #define        NPROC (20 + 8 * MAXUSERS)
 int    nproc = NPROC;
 struct timezone tz = { TIMEZONE, DST };
 #define        NPROC (20 + 8 * MAXUSERS)
 int    nproc = NPROC;
-#ifdef INET
-#define        NETSLOP 20                      /* for all the lousy servers*/
-#else
-#define        NETSLOP 0
-#endif
-int    ntext = 24 + MAXUSERS + NETSLOP;
-int    ninode = (NPROC + 16 + MAXUSERS) + 32;
-int    nfile = 16 * (NPROC + 16 + MAXUSERS) / 10 + 32 + 2 * NETSLOP;
+#define NTEXT 100                      /* actually the object cache */
+#define NVNODE (NPROC + NTEXT + 300)
+long   desiredvnodes = NVNODE;
+int    nfile = 16 * (NPROC + 16 + MAXUSERS) / 10 + 32;
 int    ncallout = 16 + NPROC;
 int    ncallout = 16 + NPROC;
-int    nclist = 100 + 16 * MAXUSERS;
-int    nport = NPROC / 2;
+int    nclist = 60 + 12 * MAXUSERS;
 int     nmbclusters = NMBCLUSTERS;
 int     nmbclusters = NMBCLUSTERS;
-#ifdef QUOTA
-int    nquota = (MAXUSERS * 9)/7 + 3;
-int    ndquot = (MAXUSERS*NMOUNT)/4 + NPROC;
+int    fscale = FSCALE;        /* kernel uses `FSCALE', user uses `fscale' */
+
+/*
+ * Values in support of System V compatible shared memory.
+ */
+#ifdef SYSVSHM
+#define        SHMMAX  (SHMMAXPGS*NBPG)
+#define SHMMIN 1
+#define SHMMNI 32                      /* <= SHMMMNI in shm.h */
+#define        SHMSEG  8
+#define SHMALL (SHMMAXPGS/CLSIZE)
+
+struct shminfo shminfo = {
+       SHMMAX,
+       SHMMIN,
+       SHMMNI,
+       SHMSEG,
+       SHMALL
+};
 #endif
 
 /*
 #endif
 
 /*
@@ -56,20 +85,37 @@ int nbuf, nswbuf;
 
 /*
  * These have to be allocated somewhere; allocating
 
 /*
  * These have to be allocated somewhere; allocating
- * them here forces loader errors if this file is omitted.
+ * them here forces loader errors if this file is omitted
+ * (if they've been externed everywhere else; hah!).
  */
 struct proc *proc, *procNPROC;
  */
 struct proc *proc, *procNPROC;
-struct text *text, *textNTEXT;
-struct inode *inode, *inodeNINODE;
 struct file *file, *fileNFILE;
 struct         callout *callout;
 struct cblock *cfree;
 struct buf *buf, *swbuf;
 struct file *file, *fileNFILE;
 struct         callout *callout;
 struct cblock *cfree;
 struct buf *buf, *swbuf;
-short  *swsize;
-int    *swpf;
 char   *buffers;
 char   *buffers;
-struct cmap *cmap, *ecmap;
-#ifdef QUOTA
-struct quota *quota, *quotaNQUOTA;
-struct dquot *dquot, *dquotNDQUOT;
+
+/*
+ * Proc/pgrp hashing.
+ * Here so that hash table sizes can depend on MAXUSERS/NPROC.
+ * Hash size must be a power of two.
+ * NOW omission of this file will cause loader errors!
+ */
+
+#if NPROC > 1024
+#define        PIDHSZ          512
+#else
+#if NPROC > 512
+#define        PIDHSZ          256
+#else
+#if NPROC > 256
+#define        PIDHSZ          128
+#else
+#define        PIDHSZ          64
 #endif
 #endif
+#endif
+#endif
+
+struct proc *pidhash[PIDHSZ];
+struct pgrp *pgrphash[PIDHSZ];
+int    pidhashmask = PIDHSZ - 1;