vmparam.h revision 1.9
1/* $NetBSD: vmparam.h,v 1.9 2011/08/26 09:10:41 reinoud Exp $ */
2
3/*-
4 * Copyright (c) 2007 Jared D. McNeill <jmcneill@invisible.ca>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
17 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 * POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#ifndef _ARCH_USERMODE_INCLUDE_VMPARAM_H
30#define _ARCH_USERMODE_INCLUDE_VMPARAM_H
31
32#include <machine/pmap.h>
33#include "opt_memsize.h"
34
35extern paddr_t kmem_k_start, kmem_k_end;
36extern paddr_t kmem_ext_start, kmem_ext_end;
37extern paddr_t kmem_user_start, kmem_user_end;
38
39#define VM_MIN_KERNEL_ADDRESS	kmem_k_start
40#define VM_MAX_KERNEL_ADDRESS 	kmem_k_end
41#define VM_MIN_ADDRESS		kmem_user_start
42#define VM_MAXUSER_ADDRESS	kmem_user_end
43#define VM_MAX_ADDRESS		kmem_ext_end
44
45#define VM_CHECK_MIN_ADDRESS
46
47#define VM_PHYSSEG_STRAT	VM_PSTRAT_BIGFIRST
48#define VM_PHYSSEG_MAX		1
49#define	VM_NFREELIST		1
50#define	VM_FREELIST_DEFAULT	0
51
52#define	USRSTACK		VM_MAXUSER_ADDRESS
53
54#if defined(__i386__)
55#define	PAGE_SHIFT		12
56#define	PAGE_SIZE		(1 << PAGE_SHIFT)
57#define	PAGE_MASK		(PAGE_SIZE - 1)
58#define	MAXSSIZ			(64 * 1024 * 1024)
59#define	MAXTSIZ			(64 * 1024 * 1024)
60#define	MAXDSIZ			(3U * 1024 * 1024 * 1024)
61#define DFLSSIZ			(2 * 1024 * 1024)
62#define	DFLDSIZ			(256 * 1024 * 1024)
63#elif defined(__x86_64__)
64#define	PAGE_SHIFT		12
65#define	PAGE_SIZE		(1 << PAGE_SHIFT)
66#define	PAGE_MASK		(PAGE_SIZE - 1)
67#define	MAXSSIZ			(128 * 1024 * 1024)
68#define	MAXTSIZ			(64 * 1024 * 1024)
69#define	MAXDSIZ			(8L * 1024 * 1024 * 1024)
70#define DFLSSIZ			(4 * 1024 * 1024)
71#define	DFLDSIZ			(256 * 1024 * 1024)
72#else
73#error "platform not supported"
74#endif
75
76#endif /* !_ARCH_USERMODE_INCLUDE_VMPARAM_H */
77