xref: /freebsd/sys/i386/include/vmparam.h (revision 95461b450d8d76f79be75d7dd0aee4adec4223fb)
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
3995461b45SJohn Dyson  *	$Id: vmparam.h,v 1.27 1997/10/27 00:38:46 jkh 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 
50d0aea04fSJohn Dyson #define VM_PROT_READ_IS_EXEC	/* if you can read -- then you can exec */
51d0aea04fSJohn Dyson 
525b81b6b3SRodney W. Grimes /*
535b81b6b3SRodney W. Grimes  * Virtual memory related constants, all in bytes
545b81b6b3SRodney W. Grimes  */
55e10a6186SDavid Greenman #define	MAXTSIZ		(16UL*1024*1024)	/* max text size */
565b81b6b3SRodney W. Grimes #ifndef DFLDSIZ
57e10a6186SDavid Greenman #define	DFLDSIZ		(64UL*1024*1024)	/* initial data size limit */
585b81b6b3SRodney W. Grimes #endif
595b81b6b3SRodney W. Grimes #ifndef MAXDSIZ
607416845fSJordan K. Hubbard #define	MAXDSIZ		(512UL*1024*1024)	/* max data size */
615b81b6b3SRodney W. Grimes #endif
625b81b6b3SRodney W. Grimes #ifndef	DFLSSIZ
6329360eb0SDavid Greenman #define	DFLSSIZ		(8UL*1024*1024)		/* initial stack size limit */
645b81b6b3SRodney W. Grimes #endif
655b81b6b3SRodney W. Grimes #ifndef	MAXSSIZ
66e10a6186SDavid Greenman #define	MAXSSIZ		(64UL*1024*1024)	/* max stack size */
675b81b6b3SRodney W. Grimes #endif
6829360eb0SDavid Greenman #ifndef SGROWSIZ
6929360eb0SDavid Greenman #define SGROWSIZ	(128UL*1024)		/* amount to grow stack */
7029360eb0SDavid Greenman #endif
715b81b6b3SRodney W. Grimes 
72e911eafcSPoul-Henning Kamp #define USRTEXT		(1*PAGE_SIZE)		/* base of user text XXX bogus */
73cde72574SDavid Greenman 
745b81b6b3SRodney W. Grimes /*
75b6c78fe4SRodney W. Grimes  * Size of the Shared Memory Pages page table.
76b6c78fe4SRodney W. Grimes  */
7789ccb410SDavid Greenman #ifndef	SHMMAXPGS
78a6cd0a24SDavid Greenman #define	SHMMAXPGS	1024		/* XXX until we have more kmap space */
79b6c78fe4SRodney W. Grimes #endif
80b6c78fe4SRodney W. Grimes 
81b6c78fe4SRodney W. Grimes /*
825b81b6b3SRodney W. Grimes  * The time for a process to be blocked before being very swappable.
835b81b6b3SRodney W. Grimes  * This is a number of seconds which the system takes as being a non-trivial
845b81b6b3SRodney W. Grimes  * amount of real time.  You probably shouldn't change this;
855b81b6b3SRodney W. Grimes  * it is used in subtle ways (fractions and multiples of it are, that is, like
865b81b6b3SRodney W. Grimes  * half of a ``long time'', almost a long time, etc.)
875b81b6b3SRodney W. Grimes  * It is related to human patience and other factors which don't really
885b81b6b3SRodney W. Grimes  * change over time.
895b81b6b3SRodney W. Grimes  */
905b81b6b3SRodney W. Grimes #define	MAXSLP 		20
915b81b6b3SRodney W. Grimes 
9268c1eb12SPoul-Henning Kamp 
935b81b6b3SRodney W. Grimes /*
9468c1eb12SPoul-Henning Kamp  * Virtual addresses of things.  Derived from the page directory and
9568c1eb12SPoul-Henning Kamp  * page table indexes from pmap.h for precision.
9668c1eb12SPoul-Henning Kamp  * Because of the page that is both a PD and PT, it looks a little
9768c1eb12SPoul-Henning Kamp  * messy at times, but hey, we'll do anything to save a page :-)
985b81b6b3SRodney W. Grimes  */
995b81b6b3SRodney W. Grimes 
10068c1eb12SPoul-Henning Kamp #define VM_MAX_KERNEL_ADDRESS	VADDR(KPTDI+NKPDE, 0)
10168c1eb12SPoul-Henning Kamp #define VM_MIN_KERNEL_ADDRESS	VADDR(PTDPTDI, PTDPTDI)
1027f8cb368SDavid Greenman 
10368c1eb12SPoul-Henning Kamp #define	KERNBASE		VADDR(KPTDI, 0)
10468c1eb12SPoul-Henning Kamp 
105e911eafcSPoul-Henning Kamp #define KPT_MAX_ADDRESS		VADDR(PTDPTDI, KPTDI+NKPT)
10668c1eb12SPoul-Henning Kamp #define KPT_MIN_ADDRESS		VADDR(PTDPTDI, KPTDI)
10768c1eb12SPoul-Henning Kamp 
10868c1eb12SPoul-Henning Kamp #define UPT_MAX_ADDRESS		VADDR(PTDPTDI, PTDPTDI)
10968c1eb12SPoul-Henning Kamp #define UPT_MIN_ADDRESS		VADDR(PTDPTDI, 0)
11068c1eb12SPoul-Henning Kamp 
111a0c3795fSPeter Wemm #define VM_MAXUSER_ADDRESS	VADDR(UMAXPTDI, UMAXPTEOFF)
11268c1eb12SPoul-Henning Kamp 
1137f8cb368SDavid Greenman #define USRSTACK		VM_MAXUSER_ADDRESS
11468c1eb12SPoul-Henning Kamp 
11568c1eb12SPoul-Henning Kamp #define VM_MAX_ADDRESS		VADDR(PTDPTDI, PTDPTDI)
11668c1eb12SPoul-Henning Kamp #define VM_MIN_ADDRESS		((vm_offset_t)0)
1175b81b6b3SRodney W. Grimes 
1185b81b6b3SRodney W. Grimes /* virtual sizes (bytes) for various kernel submaps */
1197bcc0f3dSTor Egge #ifndef VM_KMEM_SIZE
1200d94caffSDavid Greenman #define VM_KMEM_SIZE		(32 * 1024 * 1024)
1217bcc0f3dSTor Egge #endif
1225b81b6b3SRodney W. Grimes 
12395461b45SJohn Dyson /* initial pagein size of beginning of executable file */
12495461b45SJohn Dyson #ifndef VM_INITIAL_PAGEIN
12595461b45SJohn Dyson #define	VM_INITIAL_PAGEIN	16
12695461b45SJohn Dyson #endif
12795461b45SJohn Dyson 
1286e393973SGarrett Wollman #endif /* _MACHINE_VMPARAM_H_ */
129