Annotation of sys/arch/m88k/include/vmparam.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: vmparam.h,v 1.8 2006/06/04 17:20:39 miod Exp $ */
! 2: /*
! 3: * Mach Operating System
! 4: * Copyright (c) 1992 Carnegie Mellon University
! 5: * All Rights Reserved.
! 6: *
! 7: * Permission to use, copy, modify and distribute this software and its
! 8: * documentation is hereby granted, provided that both the copyright
! 9: * notice and this permission notice appear in all copies of the
! 10: * software, derivative works or modified versions, and any portions
! 11: * thereof, and that both notices appear in supporting documentation.
! 12: *
! 13: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
! 14: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
! 15: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
! 16: *
! 17: * Carnegie Mellon requests users of this software to return to
! 18: *
! 19: * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
! 20: * School of Computer Science
! 21: * Carnegie Mellon University
! 22: * Pittsburgh PA 15213-3890
! 23: *
! 24: * any improvements or extensions that they make and grant Carnegie Mellon
! 25: * the rights to redistribute these changes.
! 26: */
! 27:
! 28: /*
! 29: * machine dependent virtual memory parameters.
! 30: */
! 31:
! 32:
! 33: #ifndef _MACHINE_VM_PARAM_
! 34: #define _MACHINE_VM_PARAM_
! 35:
! 36: /*
! 37: * USRTEXT is the start of the user text/data space, while USRSTACK
! 38: * is the top (end) of the user stack.
! 39: */
! 40: #define USRTEXT 0x1000 /* Start of user text */
! 41: #define USRSTACK VM_MAXUSER_ADDRESS /* Start of user stack */
! 42:
! 43: /*
! 44: * Virtual memory related constants, all in bytes
! 45: */
! 46: #ifndef MAXTSIZ
! 47: #define MAXTSIZ (8*1024*1024) /* max text size */
! 48: #endif
! 49: #ifndef DFLDSIZ
! 50: #define DFLDSIZ (32*1024*1024) /* initial data size limit */
! 51: #endif
! 52: #ifndef MAXDSIZ
! 53: #define MAXDSIZ (64*1024*1024) /* max data size */
! 54: #endif
! 55: #ifndef DFLSSIZ
! 56: #define DFLSSIZ (2*1024*1024) /* initial stack size limit */
! 57: #endif
! 58: #ifndef MAXSSIZ
! 59: #define MAXSSIZ MAXDSIZ /* max stack size */
! 60: #endif
! 61:
! 62: #define STACKGAP_RANDOM 256*1024
! 63:
! 64: /*
! 65: * Size of shared memory map
! 66: */
! 67: #ifndef SHMMAXPGS
! 68: #define SHMMAXPGS 1024
! 69: #endif
! 70:
! 71: #define VM_MIN_ADDRESS ((vaddr_t)0)
! 72: #define VM_MAX_ADDRESS ((vaddr_t)0xfffff000)
! 73: #define VM_MAXUSER_ADDRESS VM_MAX_ADDRESS
! 74:
! 75: /*
! 76: * Although user and supervisor address spaces are separate, we limit
! 77: * ourselves to 512KB KVM because the kernel page table is statically
! 78: * allocated.
! 79: */
! 80: #define VM_MIN_KERNEL_ADDRESS ((vaddr_t)0)
! 81: #define VM_MAX_KERNEL_ADDRESS ((vaddr_t)0x20000000)
! 82:
! 83: /* virtual sizes (bytes) for various kernel submaps */
! 84: #define VM_PHYS_SIZE (1 * NPTEPG * PAGE_SIZE)
! 85:
! 86: /*
! 87: * Constants which control the way the VM system deals with memory segments.
! 88: * The mvme88k only has one physical memory segment.
! 89: */
! 90: #define VM_PHYSSEG_MAX 1
! 91: #define VM_PHYSSEG_STRAT VM_PSTRAT_RANDOM
! 92: #define VM_PHYSSEG_NOADD
! 93:
! 94: #define VM_NFREELIST 1
! 95: #define VM_FREELIST_DEFAULT 0
! 96:
! 97: #ifndef _LOCORE
! 98: /*
! 99: * pmap-specific data stored in the vm_physmem[] array.
! 100: */
! 101:
! 102: /* XXX - belongs in pmap.h, but put here because of ordering issues */
! 103: struct pv_entry {
! 104: struct pv_entry *pv_next; /* next pv_entry */
! 105: struct pmap *pv_pmap; /* pmap where mapping lies */
! 106: vaddr_t pv_va; /* virtual address for mapping */
! 107: int pv_flags;
! 108: };
! 109:
! 110: #define __HAVE_VM_PAGE_MD
! 111: struct vm_page_md {
! 112: struct pv_entry pvent;
! 113: };
! 114:
! 115: #define VM_MDPAGE_INIT(pg) do { \
! 116: (pg)->mdpage.pvent.pv_next = NULL; \
! 117: (pg)->mdpage.pvent.pv_pmap = NULL; \
! 118: (pg)->mdpage.pvent.pv_va = 0; \
! 119: (pg)->mdpage.pvent.pv_flags = 0; \
! 120: } while (0)
! 121:
! 122: #endif /* _LOCORE */
! 123:
! 124: #endif /* _MACHINE_VM_PARAM_ */
CVSweb