1 /* $OpenBSD: vmparam.h,v 1.32 2015/11/01 20:10:00 miod Exp $ */ 2 /* $NetBSD: vmparam.h,v 1.18 2001/05/01 02:19:19 thorpej Exp $ */ 3 4 /* 5 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * This software was developed by the Computer Systems Engineering group 9 * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and 10 * contributed to Berkeley. 11 * 12 * All advertising materials mentioning features or use of this software 13 * must display the following acknowledgement: 14 * This product includes software developed by the University of 15 * California, Lawrence Berkeley Laboratory. 16 * 17 * Redistribution and use in source and binary forms, with or without 18 * modification, are permitted provided that the following conditions 19 * are met: 20 * 1. Redistributions of source code must retain the above copyright 21 * notice, this list of conditions and the following disclaimer. 22 * 2. Redistributions in binary form must reproduce the above copyright 23 * notice, this list of conditions and the following disclaimer in the 24 * documentation and/or other materials provided with the distribution. 25 * 3. Neither the name of the University nor the names of its contributors 26 * may be used to endorse or promote products derived from this software 27 * without specific prior written permission. 28 * 29 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 31 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 32 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 33 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 39 * SUCH DAMAGE. 40 * 41 * @(#)vmparam.h 8.1 (Berkeley) 6/11/93 42 */ 43 44 /* 45 * Machine dependent constants for sun4u and sun4v UltraSPARC 46 */ 47 48 #ifndef VMPARAM_H 49 #define VMPARAM_H 50 51 #define USRSTACK 0xffffffffffffe000L 52 53 /* 54 * Virtual memory related constants, all in bytes 55 */ 56 /* 57 * Since the compiler generates `call' instructions we can't 58 * have more than 4GB in a single text segment. 59 * 60 * And since we only have a 40-bit address space, allow half 61 * of that for data and the other half for stack. 62 */ 63 #ifndef MAXTSIZ 64 #define MAXTSIZ (1L*1024*1024*1024) /* max text size */ 65 #endif 66 #ifndef DFLDSIZ 67 #define DFLDSIZ (128L*1024*1024) /* initial data size limit */ 68 #endif 69 #ifndef MAXDSIZ 70 #define MAXDSIZ (8L*1024*1024*1024) /* max data size */ 71 #endif 72 #ifndef BRKSIZ 73 #define BRKSIZ MAXDSIZ /* heap gap size */ 74 #endif 75 #ifndef DFLSSIZ 76 #define DFLSSIZ (2L*1024*1024) /* initial stack size limit */ 77 #endif 78 #ifndef MAXSSIZ 79 #define MAXSSIZ (32L*1024*1024) /* max stack size */ 80 #endif 81 82 #define STACKGAP_RANDOM 256*1024 83 84 /* 85 * Size of shared memory map 86 */ 87 #ifndef SHMMAXPGS 88 #define SHMMAXPGS 4096 /* 32mb */ 89 #endif 90 91 /* 92 * Size of User Raw I/O map 93 */ 94 #define USRIOSIZE 300 95 96 /* 97 * Mach derived constants 98 */ 99 100 /* 101 * User/kernel map constants. 102 */ 103 #define VM_MIN_ADDRESS ((vaddr_t)PAGE_SIZE) 104 #define VM_MAX_ADDRESS ((vaddr_t)-1) 105 #define VM_MAXUSER_ADDRESS ((vaddr_t)-1) 106 107 /* map PIE into the first quarter of the address space before hole */ 108 #define VM_PIE_MIN_ADDR PAGE_SIZE 109 #define VM_PIE_MAX_ADDR 0x10000000000 110 111 #define VM_MIN_KERNEL_ADDRESS ((vaddr_t)KERNBASE) 112 #define VM_MAX_KERNEL_ADDRESS ((vaddr_t)0x000007ffffffffffL) 113 114 /* virtual sizes (bytes) for various kernel submaps */ 115 #define VM_PHYS_SIZE (USRIOSIZE*PAGE_SIZE) 116 117 #define VM_PHYSSEG_MAX 32 /* up to 32 segments */ 118 #define VM_PHYSSEG_STRAT VM_PSTRAT_BSEARCH 119 #define VM_PHYSSEG_NOADD /* can't add RAM after vm_mem_init */ 120 121 #if defined (_KERNEL) && !defined(_LOCORE) 122 struct vm_map; 123 vaddr_t dvma_mapin(struct vm_map *, vaddr_t, int, int); 124 void dvma_mapout(vaddr_t, vaddr_t, int); 125 #endif 126 #endif 127