2  * Copyright (c) 2006 Apple Computer, Inc. All Rights Reserved. 
   4  * @APPLE_LICENSE_OSREFERENCE_HEADER_START@ 
   6  * This file contains Original Code and/or Modifications of Original Code  
   7  * as defined in and that are subject to the Apple Public Source License  
   8  * Version 2.0 (the 'License'). You may not use this file except in  
   9  * compliance with the License.  The rights granted to you under the  
  10  * License may not be used to create, or enable the creation or  
  11  * redistribution of, unlawful or unlicensed copies of an Apple operating  
  12  * system, or to circumvent, violate, or enable the circumvention or  
  13  * violation of, any terms of an Apple operating system software license  
  16  * Please obtain a copy of the License at  
  17  * http://www.opensource.apple.com/apsl/ and read it before using this  
  20  * The Original Code and all software distributed under the License are  
  21  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER  
  22  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,  
  23  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,  
  24  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.  
  25  * Please see the License for the specific language governing rights and  
  26  * limitations under the License. 
  28  * @APPLE_LICENSE_OSREFERENCE_HEADER_END@ 
  31  * Copyright (c) 1980, 1986, 1989, 1993 
  32  *      The Regents of the University of California.  All rights reserved. 
  33  * (c) UNIX System Laboratories, Inc. 
  34  * All or some portions of this file are derived from material licensed 
  35  * to the University of California by American Telephone and Telegraph 
  36  * Co. or Unix System Laboratories, Inc. and are reproduced herein with 
  37  * the permission of UNIX System Laboratories, Inc. 
  39  * Redistribution and use in source and binary forms, with or without 
  40  * modification, are permitted provided that the following conditions 
  42  * 1. Redistributions of source code must retain the above copyright 
  43  *    notice, this list of conditions and the following disclaimer. 
  44  * 2. Redistributions in binary form must reproduce the above copyright 
  45  *    notice, this list of conditions and the following disclaimer in the 
  46  *    documentation and/or other materials provided with the distribution. 
  47  * 3. All advertising materials mentioning features or use of this software 
  48  *    must display the following acknowledgement: 
  49  *      This product includes software developed by the University of 
  50  *      California, Berkeley and its contributors. 
  51  * 4. Neither the name of the University nor the names of its contributors 
  52  *    may be used to endorse or promote products derived from this software 
  53  *    without specific prior written permission. 
  55  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 
  56  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
  57  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
  58  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 
  59  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
  60  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
  61  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
  62  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
  63  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
  64  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
  67  *      @(#)param.c     8.3 (Berkeley) 8/20/94 
  71 #include <sys/param.h> 
  72 #include <sys/systm.h> 
  73 #include <sys/socket.h> 
  74 #include <sys/vnode_internal.h> 
  75 #include <sys/file_internal.h> 
  76 #include <sys/callout.h> 
  77 #include <sys/clist.h> 
  79 #include <sys/domain.h> 
  80 #include <sys/kernel.h> 
  81 #include <sys/quota.h> 
  82 #include <ufs/ufs/inode.h> 
  83 #include <miscfs/fifofs/fifo.h> 
  84 #include <sys/shm_internal.h> 
  85 #include <sys/aio_kern.h> 
  87 struct  timezone tz 
= { TIMEZONE
, PST 
}; 
  89 #define NPROC (20 + 16 * MAXUSERS) 
  90 #define HNPROC (20 + 64 * MAXUSERS) 
  92 __private_extern__ 
int hard_maxproc 
= HNPROC
;   /* hardcoded limit */ 
  93 int nprocs 
= 0; /* XXX */ 
  95 #define NTEXT (80 + NPROC / 8)                  /* actually the object cache */ 
  96 #define NVNODE (NPROC + NTEXT + 300) 
  97 int     desiredvnodes 
= NVNODE 
+ 700; 
  99 #define MAXFILES (OPEN_MAX + 2048) 
 100 int     maxfiles 
= MAXFILES
; 
 102 unsigned int    ncallout 
= 16 + 2*NPROC
; 
 103 int nmbclusters 
= NMBCLUSTERS
; 
 104 int     nport 
= NPROC 
/ 2; 
 106 #define MAXSOCKETS NMBCLUSTERS 
 107 int     maxsockets 
= MAXSOCKETS
; 
 110  *  async IO (aio) configurable limits 
 112 #define AIO_MAX                         90      /* system wide limit of async IO requests */ 
 113 #define AIO_PROCESS_MAX         AIO_LISTIO_MAX  /* process limit of async IO requests */ 
 114 #define AIO_THREAD_COUNT        4       /* number of async IO worker threads created */ 
 115 int aio_max_requests 
= AIO_MAX
; 
 116 int aio_max_requests_per_process 
= AIO_PROCESS_MAX
; 
 117 int aio_worker_threads 
= AIO_THREAD_COUNT
; 
 120  * These have to be allocated somewhere; allocating 
 121  * them here forces loader errors if this file is omitted 
 122  * (if they've been externed everywhere else; hah!). 
 124 struct  callout 
*callout
; 
 125 struct  cblock 
*cfree
; 
 126 struct  cblock 
*cfreelist 
= 0; 
 129 struct  domain 
*domains
;