Annotation of sys/arch/hppa64/include/vmparam.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: vmparam.h,v 1.3 2006/06/04 17:21:24 miod Exp $ */
! 2:
! 3: /*
! 4: * Copyright (c) 1988-1994, The University of Utah and
! 5: * the Computer Systems Laboratory at the University of Utah (CSL).
! 6: * All rights reserved.
! 7: *
! 8: * Permission to use, copy, modify and distribute this software is hereby
! 9: * granted provided that (1) source code retains these copyright, permission,
! 10: * and disclaimer notices, and (2) redistributions including binaries
! 11: * reproduce the notices in supporting documentation, and (3) all advertising
! 12: * materials mentioning features or use of this software display the following
! 13: * acknowledgement: ``This product includes software developed by the
! 14: * Computer Systems Laboratory at the University of Utah.''
! 15: *
! 16: * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
! 17: * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
! 18: * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
! 19: *
! 20: * CSL requests users of this software to return to csl-dist@cs.utah.edu any
! 21: * improvements that they make and grant CSL redistribution rights.
! 22: *
! 23: * Utah $Hdr: vmparam.h 1.16 94/12/16$
! 24: */
! 25:
! 26: #ifndef _MACHINE_VMPARAM_H_
! 27: #define _MACHINE_VMPARAM_H_
! 28:
! 29: /*
! 30: * Machine dependent constants for HP PA
! 31: */
! 32: /*
! 33: * USRTEXT is the start of the user text/data space, while USRSTACK
! 34: * is the bottm (start) of the user stack.
! 35: */
! 36: #define USRTEXT PAGE_SIZE /* Start of user .text */
! 37: #define USRSTACK 0x68FF3000 /* Start of user stack */
! 38: #define SYSCALLGATE 0xC0000000 /* syscall gateway page */
! 39:
! 40: /*
! 41: * Virtual memory related constants, all in bytes
! 42: */
! 43: #ifndef MAXTSIZ
! 44: #define MAXTSIZ (64*1024*1024) /* max text size */
! 45: #endif
! 46: #ifndef DFLDSIZ
! 47: #define DFLDSIZ (16*1024*1024) /* initial data size limit */
! 48: #endif
! 49: #ifndef MAXDSIZ
! 50: #define MAXDSIZ (1*1024*1024*1024) /* max data size */
! 51: #endif
! 52: #ifndef DFLSSIZ
! 53: #define DFLSSIZ (512*1024) /* initial stack size limit */
! 54: #endif
! 55: #ifndef MAXSSIZ
! 56: #define MAXSSIZ (32*1024*1024) /* max stack size */
! 57: #endif
! 58:
! 59: #define STACKGAP_RANDOM 256*1024
! 60:
! 61: #ifndef USRIOSIZE
! 62: #define USRIOSIZE ((2*HPPA_PGALIAS)/PAGE_SIZE) /* 2mb */
! 63: #endif
! 64:
! 65: /*
! 66: * PTEs for system V style shared memory.
! 67: * This is basically slop for kmempt which we actually allocate (malloc) from.
! 68: */
! 69: #ifndef SHMMAXPGS
! 70: #define SHMMAXPGS 8192 /* 32mb */
! 71: #endif
! 72:
! 73: #define VM_MIN_ADDRESS (0UL)
! 74: #define VM_MAXUSER_ADDRESS (0x20000000000UL)
! 75: #define VM_MAX_ADDRESS VM_MAXUSER_ADDRESS
! 76: #define VM_MIN_KERNEL_ADDRESS (0x1000000000UL)
! 77: #define VM_MAX_KERNEL_ADDRESS (0x10f0000000UL)
! 78:
! 79: /* virtual sizes (bytes) for various kernel submaps */
! 80: #define VM_PHYS_SIZE (USRIOSIZE*PAGE_SIZE)
! 81:
! 82: #define VM_PHYSSEG_MAX 1 /* this many physmem segments */
! 83: #define VM_PHYSSEG_STRAT VM_PSTRAT_RANDOM
! 84:
! 85: #define VM_PHYSSEG_NOADD /* XXX until uvm code is fixed */
! 86:
! 87: #define VM_NFREELIST 2
! 88: #define VM_FREELIST_DEFAULT 0
! 89: #define VM_FREELIST_ARCH 1
! 90:
! 91: #if defined(_KERNEL) && !defined(_LOCORE)
! 92: #define __HAVE_VM_PAGE_MD
! 93: struct pv_entry;
! 94: struct vm_page_md {
! 95: struct simplelock pvh_lock; /* locks every pv on this list */
! 96: struct pv_entry *pvh_list; /* head of list (locked by pvh_lock) */
! 97: u_int pvh_attrs; /* to preserve ref/mod */
! 98: };
! 99:
! 100: #define VM_MDPAGE_INIT(pg) do { \
! 101: simple_lock_init(&(pg)->mdpage.pvh_lock); \
! 102: (pg)->mdpage.pvh_list = NULL; \
! 103: (pg)->mdpage.pvh_attrs = 0; \
! 104: } while (0)
! 105: #endif
! 106:
! 107: #endif /* _MACHINE_VMPARAM_H_ */
CVSweb