vmparam.h revision 1.6
1/* $NetBSD: vmparam.h,v 1.6 2011/08/24 10:57:48 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_ext_end
41#define VM_MIN_ADDRESS		kmem_k_start
42#define VM_MAX_ADDRESS		kmem_user_end
43#define VM_MAXUSER_ADDRESS	kmem_user_end
44
45#define VM_PHYSSEG_STRAT	VM_PSTRAT_BIGFIRST
46#define VM_PHYSSEG_MAX		1
47#define	VM_NFREELIST		1
48#define	VM_FREELIST_DEFAULT	0
49
50#define	USRSTACK		VM_MAXUSER_ADDRESS
51
52#if defined(__i386__)
53#define	PAGE_SHIFT		12
54#define	PAGE_SIZE		(1 << PAGE_SHIFT)
55#define	PAGE_MASK		(PAGE_SIZE - 1)
56#define	MAXSSIZ			(64 * 1024 * 1024)
57#define	MAXTSIZ			(64 * 1024 * 1024)
58#define	MAXDSIZ			(3U * 1024 * 1024 * 1024)
59#define DFLSSIZ			(2 * 1024 * 1024)
60#define	DFLDSIZ			(256 * 1024 * 1024)
61#elif defined(__x86_64__)
62#define	PAGE_SHIFT		12
63#define	PAGE_SIZE		(1 << PAGE_SHIFT)
64#define	PAGE_MASK		(PAGE_SIZE - 1)
65#define	MAXSSIZ			(128 * 1024 * 1024)
66#define	MAXTSIZ			(64 * 1024 * 1024)
67#define	MAXDSIZ			(8L * 1024 * 1024 * 1024)
68#define DFLSSIZ			(4 * 1024 * 1024)
69#define	DFLDSIZ			(256 * 1024 * 1024)
70#else
71#error "platform not supported"
72#endif
73
74#endif /* !_ARCH_USERMODE_INCLUDE_VMPARAM_H */
75