xref: /freebsd/sys/i386/include/vmparam.h (revision 68c1eb1215e4a63a700f88be07c651c701b77600)
15b81b6b3SRodney W. Grimes /*-
25b81b6b3SRodney W. Grimes  * Copyright (c) 1990 The Regents of the University of California.
35b81b6b3SRodney W. Grimes  * All rights reserved.
47f8cb368SDavid Greenman  * Copyright (c) 1994 John S. Dyson
57f8cb368SDavid Greenman  * All rights reserved.
65b81b6b3SRodney W. Grimes  *
75b81b6b3SRodney W. Grimes  * This code is derived from software contributed to Berkeley by
85b81b6b3SRodney W. Grimes  * William Jolitz.
95b81b6b3SRodney W. Grimes  *
105b81b6b3SRodney W. Grimes  * Redistribution and use in source and binary forms, with or without
115b81b6b3SRodney W. Grimes  * modification, are permitted provided that the following conditions
125b81b6b3SRodney W. Grimes  * are met:
135b81b6b3SRodney W. Grimes  * 1. Redistributions of source code must retain the above copyright
145b81b6b3SRodney W. Grimes  *    notice, this list of conditions and the following disclaimer.
155b81b6b3SRodney W. Grimes  * 2. Redistributions in binary form must reproduce the above copyright
165b81b6b3SRodney W. Grimes  *    notice, this list of conditions and the following disclaimer in the
175b81b6b3SRodney W. Grimes  *    documentation and/or other materials provided with the distribution.
185b81b6b3SRodney W. Grimes  * 3. All advertising materials mentioning features or use of this software
195b81b6b3SRodney W. Grimes  *    must display the following acknowledgement:
205b81b6b3SRodney W. Grimes  *	This product includes software developed by the University of
215b81b6b3SRodney W. Grimes  *	California, Berkeley and its contributors.
225b81b6b3SRodney W. Grimes  * 4. Neither the name of the University nor the names of its contributors
235b81b6b3SRodney W. Grimes  *    may be used to endorse or promote products derived from this software
245b81b6b3SRodney W. Grimes  *    without specific prior written permission.
255b81b6b3SRodney W. Grimes  *
265b81b6b3SRodney W. Grimes  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
275b81b6b3SRodney W. Grimes  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
285b81b6b3SRodney W. Grimes  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
295b81b6b3SRodney W. Grimes  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
305b81b6b3SRodney W. Grimes  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
315b81b6b3SRodney W. Grimes  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
325b81b6b3SRodney W. Grimes  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
335b81b6b3SRodney W. Grimes  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
345b81b6b3SRodney W. Grimes  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
355b81b6b3SRodney W. Grimes  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
365b81b6b3SRodney W. Grimes  * SUCH DAMAGE.
375b81b6b3SRodney W. Grimes  *
38d42d25c4SRodney W. Grimes  *	from: @(#)vmparam.h	5.9 (Berkeley) 5/12/91
3968c1eb12SPoul-Henning Kamp  *	$Id: vmparam.h,v 1.19 1996/03/12 15:37:58 davidg Exp $
405b81b6b3SRodney W. Grimes  */
415b81b6b3SRodney W. Grimes 
425b81b6b3SRodney W. Grimes 
436e393973SGarrett Wollman #ifndef _MACHINE_VMPARAM_H_
446e393973SGarrett Wollman #define _MACHINE_VMPARAM_H_ 1
456e393973SGarrett Wollman 
465b81b6b3SRodney W. Grimes /*
475b81b6b3SRodney W. Grimes  * Machine dependent constants for 386.
485b81b6b3SRodney W. Grimes  */
495b81b6b3SRodney W. Grimes 
505b81b6b3SRodney W. Grimes /*
515b81b6b3SRodney W. Grimes  * Virtual memory related constants, all in bytes
525b81b6b3SRodney W. Grimes  */
53e10a6186SDavid Greenman #define	MAXTSIZ		(16UL*1024*1024)	/* max text size */
545b81b6b3SRodney W. Grimes #ifndef DFLDSIZ
55e10a6186SDavid Greenman #define	DFLDSIZ		(64UL*1024*1024)	/* initial data size limit */
565b81b6b3SRodney W. Grimes #endif
575b81b6b3SRodney W. Grimes #ifndef MAXDSIZ
58e10a6186SDavid Greenman #define	MAXDSIZ		(128UL*1024*1024)	/* max data size */
595b81b6b3SRodney W. Grimes #endif
605b81b6b3SRodney W. Grimes #ifndef	DFLSSIZ
6129360eb0SDavid Greenman #define	DFLSSIZ		(8UL*1024*1024)		/* initial stack size limit */
625b81b6b3SRodney W. Grimes #endif
635b81b6b3SRodney W. Grimes #ifndef	MAXSSIZ
64e10a6186SDavid Greenman #define	MAXSSIZ		(64UL*1024*1024)	/* max stack size */
655b81b6b3SRodney W. Grimes #endif
6629360eb0SDavid Greenman #ifndef SGROWSIZ
6729360eb0SDavid Greenman #define SGROWSIZ	(128UL*1024)		/* amount to grow stack */
6829360eb0SDavid Greenman #endif
695b81b6b3SRodney W. Grimes 
70cde72574SDavid Greenman #define USRTEXT		(1*NBPG)		/* base of user text XXX bogus */
71cde72574SDavid Greenman 
725b81b6b3SRodney W. Grimes /*
73b6c78fe4SRodney W. Grimes  * Size of the Shared Memory Pages page table.
74b6c78fe4SRodney W. Grimes  */
7589ccb410SDavid Greenman #ifndef	SHMMAXPGS
76a6cd0a24SDavid Greenman #define	SHMMAXPGS	1024		/* XXX until we have more kmap space */
77b6c78fe4SRodney W. Grimes #endif
78b6c78fe4SRodney W. Grimes 
79b6c78fe4SRodney W. Grimes /*
805b81b6b3SRodney W. Grimes  * The time for a process to be blocked before being very swappable.
815b81b6b3SRodney W. Grimes  * This is a number of seconds which the system takes as being a non-trivial
825b81b6b3SRodney W. Grimes  * amount of real time.  You probably shouldn't change this;
835b81b6b3SRodney W. Grimes  * it is used in subtle ways (fractions and multiples of it are, that is, like
845b81b6b3SRodney W. Grimes  * half of a ``long time'', almost a long time, etc.)
855b81b6b3SRodney W. Grimes  * It is related to human patience and other factors which don't really
865b81b6b3SRodney W. Grimes  * change over time.
875b81b6b3SRodney W. Grimes  */
885b81b6b3SRodney W. Grimes #define	MAXSLP 		20
895b81b6b3SRodney W. Grimes 
9068c1eb12SPoul-Henning Kamp 
915b81b6b3SRodney W. Grimes /*
9268c1eb12SPoul-Henning Kamp  * Virtual addresses of things.  Derived from the page directory and
9368c1eb12SPoul-Henning Kamp  * page table indexes from pmap.h for precision.
9468c1eb12SPoul-Henning Kamp  * Because of the page that is both a PD and PT, it looks a little
9568c1eb12SPoul-Henning Kamp  * messy at times, but hey, we'll do anything to save a page :-)
965b81b6b3SRodney W. Grimes  */
975b81b6b3SRodney W. Grimes 
9868c1eb12SPoul-Henning Kamp #define VM_MAX_KERNEL_ADDRESS	VADDR(KPTDI+NKPDE, 0)
9968c1eb12SPoul-Henning Kamp #define VM_MIN_KERNEL_ADDRESS	VADDR(PTDPTDI, PTDPTDI)
1007f8cb368SDavid Greenman 
10168c1eb12SPoul-Henning Kamp #define	KERNBASE		VADDR(KPTDI, 0)
10268c1eb12SPoul-Henning Kamp 
10368c1eb12SPoul-Henning Kamp #define KPT_MAX_ADDRESS		VADDR(PTDPTDI, APTDPTDI)
10468c1eb12SPoul-Henning Kamp #define KPT_MIN_ADDRESS		VADDR(PTDPTDI, KPTDI)
10568c1eb12SPoul-Henning Kamp 
10668c1eb12SPoul-Henning Kamp #define UPT_MAX_ADDRESS		VADDR(PTDPTDI, PTDPTDI)
10768c1eb12SPoul-Henning Kamp #define UPT_MIN_ADDRESS		VADDR(PTDPTDI, 0)
10868c1eb12SPoul-Henning Kamp 
10968c1eb12SPoul-Henning Kamp #define VM_MAXUSER_ADDRESS	VADDR(KSTKPTDI, KSTKPTEOFF)
11068c1eb12SPoul-Henning Kamp 
1117f8cb368SDavid Greenman #define USRSTACK		VM_MAXUSER_ADDRESS
11268c1eb12SPoul-Henning Kamp 
11368c1eb12SPoul-Henning Kamp #define VM_MAX_ADDRESS		VADDR(PTDPTDI, PTDPTDI)
11468c1eb12SPoul-Henning Kamp #define VM_MIN_ADDRESS		((vm_offset_t)0)
1155b81b6b3SRodney W. Grimes 
1165b81b6b3SRodney W. Grimes /* virtual sizes (bytes) for various kernel submaps */
1170d94caffSDavid Greenman #define VM_KMEM_SIZE		(32 * 1024 * 1024)
1185b81b6b3SRodney W. Grimes 
1196e393973SGarrett Wollman #endif /* _MACHINE_VMPARAM_H_ */
120