This commit was generated by cvs2svn to track changes on a CVS vendor
[unix-history] / sys / conf / param.c
CommitLineData
169d8a33
RG
1/*
2 * Copyright (c) UNIX System Laboratories, Inc. All or some portions
3 * of this file are derived from material licensed to the
4 * University of California by American Telephone and Telegraph Co.
5 * or UNIX System Laboratories, Inc. and are reproduced herein with
6 * the permission of UNIX System Laboratories, Inc.
7 */
15637ed4
RG
8/*
9 * Copyright (c) 1980, 1986, 1989 Regents of the University of California.
10 * All rights reserved.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the distribution.
20 * 3. All advertising materials mentioning features or use of this software
21 * must display the following acknowledgement:
22 * This product includes software developed by the University of
23 * California, Berkeley and its contributors.
24 * 4. Neither the name of the University nor the names of its contributors
25 * may be used to endorse or promote products derived from this software
26 * without specific prior written permission.
27 *
28 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
29 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
32 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 * SUCH DAMAGE.
39 *
be581a37 40 * from: @(#)param.c 7.20 (Berkeley) 6/27/91
169d8a33 41 * $Id: param.c,v 1.9 1994/02/02 17:56:54 ache Exp $
15637ed4
RG
42 */
43
44#include "sys/param.h"
45#include "sys/systm.h"
46#include "sys/socket.h"
47#include "sys/proc.h"
48#include "sys/vnode.h"
49#include "sys/file.h"
50#include "sys/callout.h"
51#include "sys/clist.h"
52#include "sys/mbuf.h"
53#include "ufs/quota.h"
54#include "sys/kernel.h"
55#ifdef SYSVSHM
56#include "machine/vmparam.h"
57#include "sys/shm.h"
58#endif
24fd64ab
DG
59#ifdef SYSVSEM
60#include "sys/sem.h"
61#endif
62#ifdef SYSVMSG
63#include "sys/msg.h"
64#endif
15637ed4
RG
65
66/*
67 * System parameter formulae.
68 *
69 * This file is copied into each directory where we compile
70 * the kernel; it should be modified there to suit local taste
71 * if necessary.
72 *
d7f27d01 73 * Compiled with -DHZ=xx -DTIMEZONE=x -DDST=x -DMAXUSERS=xx -DMAXFDESCS=xx
15637ed4
RG
74 */
75
76#ifndef HZ
77#define HZ 100
78#endif
79int hz = HZ;
80int tick = 1000000 / HZ;
e957266e 81#ifndef TICKADJ
15637ed4 82int tickadj = 240000 / (60 * HZ); /* can adjust 240ms in 60s */
e957266e 83#else
8b1f8702 84int tickadj = TICKADJ; /* NTP users may prefer a smaller value */
e957266e 85#endif
15637ed4
RG
86struct timezone tz = { TIMEZONE, DST };
87#define NPROC (20 + 16 * MAXUSERS)
88int maxproc = NPROC;
a200ca2b
DG
89#define NTEXT NPROC /* actually the object cache */
90int vm_cache_max = NTEXT / 2 + 16;
91#define NVNODE (NPROC + NTEXT + 100 + 16)
15637ed4 92long desiredvnodes = NVNODE;
d7f27d01 93int maxfdescs = MAXFDESCS;
15637ed4
RG
94int maxfiles = 3 * (NPROC + MAXUSERS) + 80;
95int ncallout = 16 + NPROC;
96int nclist = 60 + 12 * MAXUSERS;
97int nmbclusters = NMBCLUSTERS;
98int fscale = FSCALE; /* kernel uses `FSCALE', user uses `fscale' */
99
100/*
101 * Values in support of System V compatible shared memory. XXX
102 */
103#ifdef SYSVSHM
104#define SHMMAX (SHMMAXPGS*NBPG)
105#define SHMMIN 1
106#define SHMMNI 32 /* <= SHMMMNI in shm.h */
107#define SHMSEG 8
108#define SHMALL (SHMMAXPGS/CLSIZE)
109
110struct shminfo shminfo = {
111 SHMMAX,
112 SHMMIN,
113 SHMMNI,
114 SHMSEG,
115 SHMALL
116};
117#endif
118
24fd64ab
DG
119/*
120 * Values in support of System V compatible semaphores.
121 */
122
123#ifdef SYSVSEM
124
125struct seminfo seminfo = {
126 SEMMAP, /* # of entries in semaphore map */
127 SEMMNI, /* # of semaphore identifiers */
128 SEMMNS, /* # of semaphores in system */
129 SEMMNU, /* # of undo structures in system */
130 SEMMSL, /* max # of semaphores per id */
131 SEMOPM, /* max # of operations per semop call */
132 SEMUME, /* max # of undo entries per process */
133 SEMUSZ, /* size in bytes of undo structure */
134 SEMVMX, /* semaphore maximum value */
135 SEMAEM /* adjust on exit max value */
136};
137#endif
138
139/*
140 * Values in support of System V compatible messages.
141 */
142
143#ifdef SYSVMSG
144
145struct msginfo msginfo = {
146 MSGMAX, /* max chars in a message */
147 MSGMNI, /* # of message queue identifiers */
148 MSGMNB, /* max chars in a queue */
149 MSGTQL, /* max messages in system */
150 MSGSSZ, /* size of a message segment */
151 /* (must be small power of 2 greater than 4) */
152 MSGSEG /* number of message segments */
153};
154#endif
155
15637ed4
RG
156/*
157 * These are initialized at bootstrap time
158 * to values dependent on memory size
159 */
160int nbuf, nswbuf;
161
162/*
163 * These have to be allocated somewhere; allocating
164 * them here forces loader errors if this file is omitted
165 * (if they've been externed everywhere else; hah!).
166 */
167struct callout *callout;
168struct cblock *cfree;
169struct buf *buf, *swbuf;
170char *buffers;
171
172/*
173 * Proc/pgrp hashing.
174 * Here so that hash table sizes can depend on MAXUSERS/NPROC.
175 * Hash size must be a power of two.
176 * NOW omission of this file will cause loader errors!
177 */
178
179#if NPROC > 1024
180#define PIDHSZ 512
181#else
182#if NPROC > 512
183#define PIDHSZ 256
184#else
185#if NPROC > 256
186#define PIDHSZ 128
187#else
188#define PIDHSZ 64
189#endif
190#endif
191#endif
192
193struct proc *pidhash[PIDHSZ];
194struct pgrp *pgrphash[PIDHSZ];
195int pidhashmask = PIDHSZ - 1;
e957266e
GW
196
197/* From kernel.h: */
198long hostid;
199char hostname[MAXHOSTNAMELEN];
200int hostnamelen;
201char domainname[MAXHOSTNAMELEN];
202int domainnamelen;
203
204struct timeval boottime;
205struct timeval time;
206
207int phz;
208int lbolt;
209
210fixpt_t avenrunnable[3];
211#if defined(COMPAT_43) && (defined(vax) || defined(tahoe))
212double avenrun[3];
213#endif /* COMPAT_43 */
214
215#ifdef GPROF
216u_long s_textsize;
217int profiling;
218u_short *kcount;
219char *s_lowpc;
220#endif